<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on saku note</title>
    <link>https://sakuya712.github.io/post/</link>
    <description>Recent content in Posts on saku note</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja-jp</language>
    <copyright>Copyright © 2020–2021, sakuya712.</copyright>
    <lastBuildDate>Thu, 18 Jul 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://sakuya712.github.io/post/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>KubeJSでGregTechの機械を追加する</title>
      <link>https://sakuya712.github.io/post/kubejs02/</link>
      <pubDate>Thu, 18 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/kubejs02/</guid>
      <description>
        
          &lt;p&gt;KubeJSとGregTechの連携&lt;/p&gt;
&lt;p&gt;gregtechは、マテリアル、機械などを容易に追加できるように作成されています。&lt;br&gt;
それをKubeJSでもいじれるようにして、MODPACK制作ができるようになっています。&lt;br&gt;
今回は新しい機械を作る方法をメモしておく&lt;/p&gt;
&lt;p&gt;なおこの情報は1.20のgregtechの情報である。&lt;/p&gt;
&lt;h3 id=&#34;前提知識&#34;&gt;前提知識&lt;/h3&gt;
&lt;h4 id=&#34;使用ライブラリ&#34;&gt;使用ライブラリ&lt;/h4&gt;
&lt;p&gt;現在のgregtechは&lt;code&gt;LDLib&lt;/code&gt;というライブラリを使用しています。&lt;br&gt;
調べるときはこちら参照する場合があります。&lt;br&gt;
LDLib Docs&lt;br&gt;
&lt;a href=&#34;https://github.com/Low-Drag-MC/LDLib-Architectury/wiki&#34;&gt;https://github.com/Low-Drag-MC/LDLib-Architectury/wiki&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;オーバーロード&#34;&gt;オーバーロード&lt;/h4&gt;
&lt;p&gt;どのように定義されているかを確認する際、javaのコードを確認することになりますが&lt;br&gt;
javaにはオーバーロードが採用されています。&lt;br&gt;
オーバーロードがない言語もあるので知らなければ読んでください。&lt;/p&gt;
&lt;p&gt;オーバーロードは同じメソッド名でも引数の数や型が異なると複数の定義が可能です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;setTime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hours&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;setTime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hours&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;minutes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;setTime&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hours&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;minutes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;seconds&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいなイメージ&lt;/p&gt;
&lt;p&gt;なのでメソッドを検索したとき複数定義されていることがありますがそれらは引数の数で使い分けすることができます。&lt;/p&gt;
&lt;h3 id=&#34;新しい機械を追加する&#34;&gt;新しい機械を追加する&lt;/h3&gt;
&lt;p&gt;新しい機械を作るためには以下を作成が必要&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;レシピタイプを追加する&lt;/li&gt;
&lt;li&gt;機械を定義を追加する&lt;/li&gt;
&lt;li&gt;機械本体、機械を使ったのレシピを追加する&lt;/li&gt;
&lt;li&gt;langファイルを追加する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;今回はプランター、自動栽培機を作成するとします。&lt;/p&gt;
&lt;h3 id=&#34;レシピタイプを追加する&#34;&gt;レシピタイプを追加する&lt;/h3&gt;
&lt;p&gt;レシピタイプとは「精錬」とか「醸造」とか「粉砕」とかに当たる部分&lt;br&gt;
レシピ内容の定義ではなく、どのような処理をするかの定義するイメージ。&lt;br&gt;
&lt;strong&gt;※機械の作成の前にこの定義が必須です。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;KubeJSの定義&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/builders/GTRecipeTypeBuilder.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/builders/GTRecipeTypeBuilder.java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MOD内の設定&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;保存場所&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;./kubejs/startup_scripts/recipes/planter.js
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;※recipesのサブフォルダは無くても問題ありません
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;lt;例&amp;gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTCEuStartupEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;registry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:recipe_type&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;category&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setEUIO&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;in&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setMaxIOSize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setProgressBar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GuiTextures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;PROGRESS_BAR_ARROW&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;FillDirection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;LEFT_TO_RIGHT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setSound&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTSoundEntries&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;BATH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上から順に説明&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;レシピタイプ名の設定。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;カテゴリ名を設定できるみたいですが、このプロパティは使われていなさそうなので適当で問題ないと思います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;category&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;電力の入出力設定。&lt;br&gt;
通常の機械は「in」で発電機は「out」&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setEUIO&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;in&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;スロットの個数設定。&lt;br&gt;
左から、アイテム搬入、アイテム搬出、液体搬入、液体搬出&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setMaxIOSize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;GUIの中央にある進捗状況のアイコンとプログレスバーがどの方向に進むかの設定&lt;/p&gt;
&lt;p&gt;テクスチャの定義&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/api/gui/GuiTextures.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/api/gui/GuiTextures.java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;方向設定は&lt;a href=&#34;https://github.com/Low-Drag-MC/LDLib-Architectury/blob/1.20.1/common/src/main/java/com/lowdragmc/lowdraglib/gui/texture/ProgressTexture.java&#34;&gt;これ&lt;/a&gt;によると&lt;br&gt;
「LEFT_TO_RIGHT」「RIGHT_TO_LEFT」「UP_TO_DOWN」「DOWN_TO_UP」「ALWAYS_FULL」があるみたいです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setProgressBar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GuiTextures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;PROGRESS_BAR_ARROW&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;FillDirection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;LEFT_TO_RIGHT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;動作音の設定&lt;/p&gt;
&lt;p&gt;効果音の定義&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTSoundEntries.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTSoundEntries.java&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setSound&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTSoundEntries&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;BATH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;今回は使用していないがスロットのオーバーレイすテクスチャの設定&lt;br&gt;
(isOutput, isFluid, テクスチャの定義)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setSlotOverlay&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GuiTextures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;BOX_OVERLAY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;基本はこれらを設定していれば問題なさそうです。&lt;/p&gt;
&lt;h3 id=&#34;機械を定義を追加する&#34;&gt;機械を定義を追加する&lt;/h3&gt;
&lt;p&gt;次は機械を作成していきます。&lt;br&gt;
なお、今回は電気機械とします。&lt;br&gt;
蒸気機械やマルチブロックはまた異なります。&lt;/p&gt;
&lt;p&gt;KubeJSの定義&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/builders/machine/MachineFunctionPresets.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/integration/kjs/builders/machine/MachineFunctionPresets.java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MOD内の設定&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTMachines.java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;保存場所&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;./kubejs/startup_scripts/machines/planter.js
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;※machinesのサブフォルダは無くても問題ありません
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;lt;例&amp;gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTCEuStartupEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;registry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:machine&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;electric&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;LV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;MV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;HV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rotationState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;RotationState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipeType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tankScalingFunction&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;workableTieredHullRenderer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gtceu:block/machines/compressor&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上から順に説明&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;機械ID、機械タイプ、ティア設定を行う&lt;br&gt;
機械IDは、アイテムIDにもなります。基本的にはレシピタイプ名と同じにして良いと思います。&lt;br&gt;
機械タイプは、&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java&#34;&gt;これ&lt;/a&gt;によると&lt;br&gt;
「steam」「electric」「generator」「multiblock」「kinetic」を使えばよさそう&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;electric&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;LV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;MV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;HV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ティアは&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/api/GTValues.java&#34;&gt;ここ&lt;/a&gt;にある通り&lt;br&gt;
自分もIV辺りからランクが分からなくなるのでメモとして残す&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ULV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;LV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;HV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;EV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;LuV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ZPM&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;UV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;UHV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;UEV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;UIV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;UXV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OpV&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;final&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MAX&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;レンチで回せる方向の設定&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/api/data/RotationState.java&#34;&gt;これ&lt;/a&gt;によると「ALL」「NONE」「Y_AXIS」「NON_Y_AXIS」が設定できるようです。&lt;br&gt;
自分は自由に回せるほうがいいのでALLにしています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rotationState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;RotationState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;レシピタイプを設定&lt;br&gt;
レシピタイプ名、ツールチップの使用、デフォルトGUIを使用&lt;br&gt;
実は&lt;code&gt;LDLib UI Editor&lt;/code&gt;をつかって完全にオリジナルのGUIも作成できるみたいだが、特にこだわりがなければデフォルトのGUIで問題ないと思います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipeType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;液体が入る容量の設定&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tankScalingFunction&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;テクスチャ設定&lt;/p&gt;
&lt;p&gt;MODで使用しているテクスチャはここにあります&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/tree/1.20.1/src/main/resources/assets/gtceu/textures&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/tree/1.20.1/src/main/resources/assets/gtceu/textures&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;workableTieredHullRenderer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gtceu:block/machines/compressor&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;自分で用意すればオリジナルのテクスチャも可能です。&lt;br&gt;
テスクチャのファイルは&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;./kubejs/assets/kubejs/textures/block/machines/planter
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように置いて&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;workableTieredHullRenderer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;kubejs:block/machines/planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように指定します。&lt;/p&gt;
&lt;h3 id=&#34;機械本体機械を使ったのレシピを追加する&#34;&gt;機械本体、機械を使ったのレシピを追加する&lt;/h3&gt;
&lt;p&gt;ここまで来たらあとは前回やった通り、レシピを追加するだけです。&lt;br&gt;
レシピ追加の詳細は&lt;a href=&#34;https://sakuya712.github.io/post/kubejs01/&#34;&gt;こちら&lt;/a&gt;を参照&lt;br&gt;
レシピタイプを&#39;planter&#39;で登録したので&lt;code&gt;.planter&lt;/code&gt;で呼び出せます。&lt;br&gt;
機械本体のレシピも忘れずに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;./kubejs/server_scripts/planter.js
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;lt;例&amp;gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ServerEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;    &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;gtceu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;planter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:planter_1&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemInputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:wheat_seeds&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;chancedInput&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:fertilizer&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;inputFluids&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:water 100&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemOutputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;2x minecraft:wheat_seeds&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:wheat&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;EUt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;langファイルを追加する&#34;&gt;langファイルを追加する&lt;/h3&gt;
&lt;p&gt;追加したブロックには表示する名前が設定されていないのでlang(言語ファイル)を追加する&lt;br&gt;
ファイルは以下の場所&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;./kubejs/assets/gtceu/lang/en_us.json
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;./kubejs/assets/gtceu/lang/ja_jp.json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;jsonファイルの内容は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.lv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Basic Planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.mv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Advanced Planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.hv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Advanced Planter II&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;gtceu.planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Planter&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;日本語なら&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.lv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;基本型自動栽培機&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.mv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;発展型自動栽培機&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.hv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;発展型自動栽培機 II&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;gtceu.planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;栽培機&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上はアイテム名&lt;br&gt;
下はレシピタイプ名(JEIの上タブの部分)&lt;/p&gt;
&lt;p&gt;ここまで来たら、あとはちゃんとテスクチャを用意すれば立派な自動栽培機、アドオンとして公開できるはずです。&lt;/p&gt;
&lt;h3 id=&#34;サンプル&#34;&gt;サンプル&lt;/h3&gt;
&lt;p&gt;最終的にはこのようになりました。&lt;br&gt;
&lt;a href=&#34;https://github.com/sakuya712/gregtech120_KubeJS&#34;&gt;GitHub&lt;/a&gt;に残しておきます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;kubejs&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;startup_scripts&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;machines&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;planter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;js&lt;/span&gt;  
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTCEuStartupEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;registry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:machine&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;electric&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;LV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;MV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;GTValues&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;HV&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rotationState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;RotationState&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ALL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipeType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tankScalingFunction&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;workableTieredHullRenderer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gtceu:block/machines/compressor&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;kubejs&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;startup_scripts&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;planter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;js&lt;/span&gt;  
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTCEuStartupEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;registry&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:recipe_type&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;planter&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;category&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setEUIO&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;in&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setMaxIOSize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setProgressBar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GuiTextures&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;PROGRESS_BAR_ARROW&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;FillDirection&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;LEFT_TO_RIGHT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;setSound&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;GTSoundEntries&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;BATH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;.\kubejs\assets\gtceu\lang\en_us.json&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.lv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Basic Planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.mv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Advanced Planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;block.gtceu.hv_planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Advanced Planter II&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;gtceu.planter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Planter&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;kubejs&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;server_scripts&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;planter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;js&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ServerEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;    &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;gtceu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// machine
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;tiers&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;lv&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;steel&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;mv&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;aluminium&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;hv&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;stainless_steel&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;tiers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;forEach&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;shaped&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;            &lt;span class=&#34;sb&#34;&gt;`gtceu:&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;_planter`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;                &lt;span class=&#34;s1&#34;&gt;&amp;#39;GGG&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;                &lt;span class=&#34;s1&#34;&gt;&amp;#39;PHA&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;                &lt;span class=&#34;s1&#34;&gt;&amp;#39;DDD&amp;#39;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;                &lt;span class=&#34;nx&#34;&gt;H&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`gtceu:&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;_machine_hull`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;                &lt;span class=&#34;nx&#34;&gt;G&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;#forge:glass&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;                &lt;span class=&#34;nx&#34;&gt;P&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`gtceu:&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;_electric_pump`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;                &lt;span class=&#34;nx&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`gtceu:&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;tier&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;_robot_arm`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;                &lt;span class=&#34;nx&#34;&gt;D&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;#minecraft:dirt&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// recipes
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// seeds plant
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;plantSeeds&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:pumpkin_seeds&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:pumpkin&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;32&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:beetroot_seeds&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:beetroot&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;33&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:wheat_seeds&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:wheat&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;34&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:melon_seeds&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:melon&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;35&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;36&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;plantSeeds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;forEach&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;37&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;38&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;planter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;39&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemInputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;40&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;chancedInput&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:fertilizer&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;41&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;inputFluids&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:water 100&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;42&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemOutputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`2x &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;43&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;44&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;EUt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;45&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;46&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// none seeds plant
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;47&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;plants&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;48&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:sweet_berries&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;49&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:glow_berries&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;50&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:carrot&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;51&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:sugar_cane&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;52&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:kelp&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;53&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:cactus&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;54&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:brown_mushroom&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;55&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:red_mushroom&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;56&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:nether_wart&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;57&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;58&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;plants&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;forEach&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;59&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;60&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;planter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;61&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemInputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;62&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;chancedInput&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:fertilizer&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;63&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;inputFluids&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:water 100&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;64&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemOutputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`2x &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;plant&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;65&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1200&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;66&lt;/span&gt;            &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;EUt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;67&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;});&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;68&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
        
      </description>
    </item>
    
    <item>
      <title>KubeJSでレシピの追加・削除を行う</title>
      <link>https://sakuya712.github.io/post/kubejs01/</link>
      <pubDate>Sat, 13 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/kubejs01/</guid>
      <description>
        
          &lt;p&gt;最近のレシピ追加はこれ&lt;/p&gt;
&lt;h3 id=&#34;前置き&#34;&gt;前置き&lt;/h3&gt;
&lt;p&gt;久々にマイクラ工業MODをやってみようと調べていたらMC1.20にgregtechがあるということで環境を作って遊んでいました。&lt;br&gt;
で、遊んでいる内にどうしてもレシピを独自に追加してみたくなるのですが、&lt;br&gt;
こういうときMC1.12時代はCraftTweakerを使うのが一般的だったのですが、 &lt;br&gt;
今はKubeJSっていうので書くのが一般的になっているみたいです。&lt;br&gt;
ということでKubeJSについて勉強してみた。&lt;/p&gt;
&lt;h3 id=&#34;kubejsとは&#34;&gt;KubeJSとは&lt;/h3&gt;
&lt;p&gt;名前からお察しの通りJavaScriptでスクリプトを作成するMODです。&lt;br&gt;
CraftTweakerと異なり、基本構文はJSの知識があれば書けるというはメリット &lt;br&gt;
あとはドキュメントとにらめっこして書いていくって感じか&lt;/p&gt;
&lt;p&gt;KubeJS公式ドキュメント&lt;br&gt;
&lt;a href=&#34;https://kubejs.com/wiki&#34;&gt;https://kubejs.com/wiki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;gregtechの話もしたいので &lt;br&gt;
GregTech CEu modpack開発者向けドキュメント&lt;br&gt;
&lt;a href=&#34;https://gregtechceu.github.io/gtceu-modern-docs/Modpacks/&#34;&gt;https://gregtechceu.github.io/gtceu-modern-docs/Modpacks/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なおこの記事は全てMC1.20時点の情報です。&lt;/p&gt;
&lt;h3 id=&#34;とりあえずレシピを追加してみる&#34;&gt;とりあえずレシピを追加してみる&lt;/h3&gt;
&lt;p&gt;まずMODを入れたら一度MCを起動してみる。&lt;br&gt;
すると&lt;code&gt;kubejs&lt;/code&gt;のフォルダができて、その配下にサンプル等が生成されています。&lt;br&gt;
今回行いたいレシピ追加は「server_scripts」のフォルダに入れるので作成しておきます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;.\kubejs\server_scripts
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここにスクリプトを書いていきます。&lt;br&gt;
test.jsというファイルを作成して&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ServerEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;shaped&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;10x minecraft:stone&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;            &lt;span class=&#34;s1&#34;&gt;&amp;#39;A B&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;            &lt;span class=&#34;s1&#34;&gt;&amp;#39; C &amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;            &lt;span class=&#34;s1&#34;&gt;&amp;#39;B A&amp;#39;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;            &lt;span class=&#34;nx&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:andesite&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;            &lt;span class=&#34;nx&#34;&gt;B&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:diorite&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;            &lt;span class=&#34;nx&#34;&gt;C&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:granite&amp;#39;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これを保存すると、焼石のレシピが追加できました。簡単！&lt;/p&gt;
&lt;p&gt;なお、MCのコマンドで&lt;code&gt;/reload&lt;/code&gt;すれば起動中でもリロードできます。&lt;/p&gt;
&lt;p&gt;で、上記のコードを一ずつ解説すると&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ServerEvents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// ここに追加レシピ追加削除していく
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この中にレシピを書いていきます。レシピ毎にこれをつける必要はなくカッコ内で&lt;code&gt;event&lt;/code&gt;を何度もつかっていけばよい。&lt;/p&gt;
&lt;p&gt;今回は固定形クラフトなので&lt;code&gt;event.shaped()&lt;/code&gt;を使っていく&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;shaped&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;クラフト形状&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;【&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;配列&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;】&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;材料&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;【&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;連想配列&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;】）&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;完成品は&lt;br&gt;
&lt;code&gt;&#39;10x minecraft:stone&#39;&lt;/code&gt;で個数とアイテム名を設定できる。&lt;br&gt;
1個の場合は個数の部分は不要で単純にアイテム名だけでよい&lt;/p&gt;
&lt;p&gt;クラフト形状【配列】は&lt;br&gt;
一つの文字をクラフトのマスとしてあてはめて、
3文字ずつ入った(空白含み)[上段,中段,下段]の配列を作成する。&lt;br&gt;
これをぱっと見でわかるように改行しています。&lt;/p&gt;
&lt;p&gt;材料【連想配列】は&lt;br&gt;
クラフト形状で設定した文字の材料を連想配列で指定します。&lt;br&gt;
{ 文字A: 材料1, 文字B: 材料2, 文字C: 材料3}のように作成する。&lt;br&gt;
文字はA-Z a-z 自由に使えるので実際は頭文字なんかが使われると思います。&lt;/p&gt;
&lt;p&gt;これでレシピの完成&lt;/p&gt;
&lt;h3 id=&#34;アイテム指定&#34;&gt;アイテム指定&lt;/h3&gt;
&lt;p&gt;アイテム名を調べたい場合は、CraftTweakerと同じように&lt;br&gt;
調べたいアイテムを持った状態でMC内コマンドで&lt;code&gt;/kubejs hand&lt;/code&gt;で表示され、チャットをクリックするとコピーもできます。&lt;/p&gt;
&lt;p&gt;基本的に&lt;code&gt;/kubejs hand&lt;/code&gt;で調べれば大抵は解決できるはず&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一般的な方法。アイテムIDを指定する。&lt;code&gt;F3+H&lt;/code&gt;で表示されるもの。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:stone&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;複数個数指定する場合、&lt;code&gt;個数x&lt;/code&gt;&lt;br&gt;
焼石64個なら&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;64x minecraft:stone&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実は&lt;code&gt;Item.of()&lt;/code&gt;を使って第二引数に個数は指定でき&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:stone&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のようにも書けます。&lt;br&gt;
ただ単純にアイテムを指定するだけなら&lt;code&gt;Item.of()&lt;/code&gt;は不要&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;鉱石辞書で指定したい場合は＃から始まっているもの&lt;br&gt;
羊毛いずれかでよいなら&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;#minecraft:wool&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但し完成品には指定できません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;エンチャントブックならこんな感じ&lt;br&gt;
このような特殊な指定をするときは&lt;code&gt;Item.of()&lt;/code&gt;が必須となります。&lt;br&gt;
※1や3の部分は個数ではなくエンチャントレベルです。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:enchanted_book&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;enchant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:silk_touch&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:enchanted_book&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;enchant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:looting&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;あまりないかもしれませんが耐久値の指定もできます。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:stone_axe&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;{Damage:0}&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;基本的にはこれくらいか&lt;/p&gt;
&lt;p&gt;あとこれはJSの仕様ですが、文字列を表すクォーテーションはシングル、ダブルどちらでも問題ありません。&lt;/p&gt;
&lt;h3 id=&#34;追加できるレシピ&#34;&gt;追加できるレシピ&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;固定形クラフト&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;shaped&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;クラフト形状&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;【&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;配列&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;】&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;材料&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;【&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;連想配列&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;】）&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これは上記で説明したので省略&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不定形クラフト&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;shapeles&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;クラフト素材&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;【&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;配列&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;】&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;クラフト素材は固定形と異なり、形が重要ではないため単純に素材名を列挙するだけの配列になります。&lt;br&gt;
当たり前ですが、9個以上を列挙することはできません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;精錬レシピ&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// かまど
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;smelting&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 溶鉱炉
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;blasting&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 燻製器
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;smoking&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 焚き火
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;campfireCooking&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;形はどれも一緒。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;石切台レシピ&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;stonecutting&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これも製錬レシピと同じ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;鍛冶台レシピ&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;smithing&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;鍛冶型テンプレート&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;ベースアイテム&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;アップグレード素材&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ネザライト製のアイテムの作成に必要(らしい…)&lt;br&gt;
1.20から鍛冶型テンプレートが必要になっているので4つ引数がある。&lt;/p&gt;
&lt;h3 id=&#34;レシピ削除&#34;&gt;レシピ削除&lt;/h3&gt;
&lt;p&gt;追加できるようになると今度は元のレシピは削除したくなる。&lt;br&gt;
ということで削除方法は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// レシピIDで特定のレシピ削除
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:glowstone&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 特定のアイテムのレシピ全て削除(鉱石辞書で指定も可)
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;output&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:stone_pickaxe&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;output&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;#minecraft:wool&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この二種類が使いやすいと思われる。&lt;br&gt;
レシピIDは、&lt;code&gt;F3+H&lt;/code&gt;でデバック有効にしている状態でJEIで確認できます。&lt;/p&gt;
&lt;p&gt;大型MODPACKを作っていて特定のMOD加工で全てやらせたいんだってときは&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 特定のMODのレシピ全て削除
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;mod&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;farmersdelight&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 特定のクラフト方法のレシピ全て削除
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;remove&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:campfire_cooking&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のような削除方法も可能。&lt;/p&gt;
&lt;h3 id=&#34;modで追加されたクラフト方法のレシピを追加する&#34;&gt;MODで追加されたクラフト方法のレシピを追加する&lt;/h3&gt;
&lt;p&gt;MODで追加されるクラフト方法&lt;br&gt;
JEIでレシピ確認しているときの上タブの部分&lt;br&gt;
上で少し触れていますがクラフト方法は&lt;code&gt;type&lt;/code&gt;で管理されています。&lt;br&gt;
このtype名調べる方法ですが、、、&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kubejs.com/wiki/tutorials/recipes#custom-modded-json-recipes&#34;&gt;公式ドキュメント&lt;/a&gt;に書かれている通り、MOD側のレシピのjsonを見てtypeを見つけるという方法があります&lt;br&gt;
Farmer&#39;s Delightのまな板を使うレシピは&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;farmersdelight:cutting&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;ingredients&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;item&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;minecraft:cake&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;tool&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;tag&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;forge:tools/knives&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;result&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;item&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;farmersdelight:cake_slice&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;count&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;7&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これを&lt;code&gt;event.custom()&lt;/code&gt;で同じように作成してみる&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;custom&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;farmersdelight:cutting&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;ingredients&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:honeycomb_block&amp;#39;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;}],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;tool&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;tag&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;forge:tools/knives&amp;#39;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;minecraft:honeycomb&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;        &lt;span class=&#34;nx&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;}]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでFarmer&#39;s Delightのまな板でハニカムブロックからハニカムに戻すレシピが追加できます。&lt;/p&gt;
&lt;p&gt;ただぶっちゃけ&lt;a href=&#34;https://github.com/AllTheMods/ATM-9/tree/main/kubejs/server_scripts/mods&#34;&gt;大型MODPACK&lt;/a&gt;を覗くのが早いと思います。&lt;br&gt;
jsonファイルはMODによって構成が違うと思うのですぐには見つからないと思います。&lt;br&gt;
確認して書き方さえわかればあとは自由にレシピを作成するだけです。&lt;/p&gt;
&lt;p&gt;gregtechは特殊で追加が容易にできるようになっています。これはCraftTweakerの時とほぼ一緒。&lt;br&gt;
作ろうと思えば機械やマテリアルも追加できる。&lt;br&gt;
ただ今回はレシピ関係だけの例&lt;br&gt;
参考&lt;br&gt;
&lt;a href=&#34;https://gregtechceu.github.io/gtceu-modern-docs/Modpacks/Other-Topics/Adding-and-Removing-Recipes/&#34;&gt;https://gregtechceu.github.io/gtceu-modern-docs/Modpacks/Other-Topics/Adding-and-Removing-Recipes/&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;kr&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;event&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;gtceu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 合金かまどでAE2のクォーツガラスのレシピを追加する
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;greg&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;alloy_smelter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:quartz_glass&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;//レシピID(被らなければなんでもいい)
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemInputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;4x #forge:glass&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;5x gtceu:certus_quartz_dust&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;//素材
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;itemOutputs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;4x ae2:quartz_glass&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;//完成品
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;duration&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// 加工時間(tick) 20tick=1秒
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;EUt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// 必要電圧
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// メモ
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// その他 入出力関係
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;inputFluids&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:rocket_fuel 1000&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;//液体素材
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;outputFluids&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:rocket_fuel 1000&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;//液体完成品
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;notConsumable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gtceu:rubber_sapling&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;//消費しないアイテム(鋳型等)
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;circuit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;                            &lt;span class=&#34;c1&#34;&gt;//回路番号
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// アイテム、 確率、ティアブースト
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;//確率消費 20%の確率で消費する 機械ティアによるブーストはなし
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;chancedInput&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:fertilizer&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;//確率生成 20%の確率で生成する 機械ティアが上がる毎に10%UP
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;chancedOutput&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:fertilizer&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 機械
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;assembler&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;//組立機
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;macerator&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;//粉砕機
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// .etc 下記の「各機械のレシピタイプ」を確認
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// その他、クラフトで使いそうなアイテム
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:orange_glass_lens&amp;#39;&lt;/span&gt;   &lt;span class=&#34;c1&#34;&gt;//レンズ
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:plate_casting_mold&amp;#39;&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;//鋳型
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;s1&#34;&gt;&amp;#39;gtceu:gear_extruder_mold&amp;#39;&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;//金型
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;s1&#34;&gt;&amp;#39;#forge:tools/wrench&amp;#39;&lt;/span&gt;       &lt;span class=&#34;c1&#34;&gt;//レンチ 
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;33&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;各機械のレシピタイプ&lt;br&gt;
&lt;a href=&#34;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java&#34;&gt;https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeTypes.java&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;完全に自分用のメモになっちゃってるけど とりあえずレシピについては終わり&lt;br&gt;
MODPACK作る気力が出たらアイテム追加やブロック追加も調べていく。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>【2022年版】自分が使用しているCDDBにメタデータを登録する方法</title>
      <link>https://sakuya712.github.io/post/cddbregister/</link>
      <pubDate>Sat, 15 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/cddbregister/</guid>
      <description>
        
          &lt;p&gt;いまどきのCD取り込みの話&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#freedb%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AF%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B&#34;&gt;FreeDBのサーバは停止している&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#gnudb%E3%81%A8freedb%E6%97%A5%E6%9C%AC%E7%89%88%E3%81%AF%E4%B8%80%E9%95%B7%E4%B8%80%E7%9F%AD&#34;&gt;&amp;quot;gnudb&amp;quot;と&amp;quot;freedb日本版&amp;quot;は一長一短&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#eac%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E8%87%AA%E5%88%86%E3%81%8C%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8Bcddb%E3%81%AB%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&#34;&gt;EACを使って自分が使用しているCDDBに登録する方法&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#1-eac%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&#34;&gt;1. EACをインストール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B&#34;&gt;2. メタデータオプションで取得するサーバーアドレスを設定する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E5%88%A5%E3%81%AEdb%E3%81%AB%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B&#34;&gt;3. メタデータを取得し、別のDBに登録する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-%E7%99%BB%E9%8C%B2%E3%81%AE%E7%A2%BA%E8%AA%8D&#34;&gt;4. 登録の確認&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;freedbのサーバは停止している&#34;&gt;FreeDBのサーバは停止している&lt;/h2&gt;
&lt;p&gt;久々にCDリッピングする方向け情報&lt;br&gt;
CDを取り込むときのタグはiTunesやWMPだと&amp;quot;gracenote&amp;quot;社が運営するCDDBを使用しています。&lt;br&gt;
しかしこれには使用料があるようでフリーソフト系では採用されず、かわりに&amp;quot;FreeDB&amp;quot;というDBが長年使われていました。&lt;br&gt;
ただこのFreeDB &lt;a href=&#34;https://forest.watch.impress.co.jp/docs/serial/yajiuma/1238939.html&#34;&gt;2020年3月31日でサーバを閉じて&lt;/a&gt;しまっています。&lt;br&gt;
昔のフリーソフトを使い続ける方はこの影響でタグが取得できなくなっている状態になっていると思います。&lt;br&gt;
そこで後釜となった所は&lt;a href=&#34;https://gnudb.org/&#34;&gt;gnudb&lt;/a&gt;というDBです。&lt;br&gt;
また日本には&lt;a href=&#34;https://freedbtest.dyndns.org/&#34;&gt;freedb 日本語&lt;/a&gt;というDBも存在します。こちらは本家がなくなった今でも維持し続けてくれています。&lt;br&gt;
今後はこれらに乗り換える必要があります。&lt;/p&gt;
&lt;h3 id=&#34;gnudbとfreedb日本版は一長一短&#34;&gt;&amp;quot;gnudb&amp;quot;と&amp;quot;freedb日本版&amp;quot;は一長一短&lt;/h3&gt;
&lt;p&gt;gnudbはFreeDBを受け継いだDBなので外国人はここを使用していると思います。&lt;br&gt;
そのため洋楽が強いのですが、邦楽や洋楽でも「～日本版」にみたいなものは取得できないことが多いです。&lt;br&gt;
freedb日本版は逆でいままで日本人が使い続けていたDBのためマイナーな洋楽はヒットしませんが、洋楽の「～日本版」や○○年代ヒットオムニバスCDなんかも取得できたりします。&lt;br&gt;
ただ多くのソフトは1つしかDBを見れないことが多いためどちらかのDBを使うしかないということになります。&lt;br&gt;
そこで他のDBにあるタグを自分が使っているDBに登録させるという作業がまれに発生するわけです。&lt;/p&gt;
&lt;h2 id=&#34;eacを使って自分が使用しているcddbに登録する方法&#34;&gt;EACを使って自分が使用しているCDDBに登録する方法&lt;/h2&gt;
&lt;p&gt;自分はCDをリッピングするときは&lt;a href=&#34;http://cue.tools/wiki/CUETools_Download&#34;&gt;CUERipper&lt;/a&gt;を使っています。&lt;br&gt;
シンプルかつmp3、wav+cue、flac+cueでリッピングできる所が気に入っています。&lt;br&gt;
このソフトのDB設定は&lt;code&gt;CUERipper.exe.config&lt;/code&gt;の&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;value&amp;gt;&lt;/span&gt;gnudb.gnudb.org&lt;span class=&#34;nt&#34;&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この部分にあります。&lt;br&gt;
見ての通りgnudbを使用しているみたいです。&lt;br&gt;
ですが今回データを取得できないCDがありましたので、gnudbにこのCDを情報を登録したいと思います。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/01.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;それでは本題に入ります。&lt;/p&gt;
&lt;h3 id=&#34;1-eacをインストール&#34;&gt;1. EACをインストール&lt;/h3&gt;
&lt;p&gt;まず登録するためのソフトとして、大昔から開発されているExact Audio Copy(EAC)を使用します。&lt;br&gt;
ただ今回はこれでリッピングするのではなく、あくまでもDBに登録するために使います。&lt;br&gt;
新しいバージョンだと上手くいかないときがあるので自分は&lt;a href=&#34;https://www.exactaudiocopy.de/en/index.php/resources/download/older-versions-for-download/&#34;&gt;Ver1.3&lt;/a&gt;を使用しています。&lt;br&gt;
DLしたらインストールして起動します。&lt;br&gt;
セットアップウィザードとかでますが無視してキャンセルしてください。&lt;/p&gt;
&lt;h3 id=&#34;2-メタデータオプションで取得するサーバーアドレスを設定する&#34;&gt;2. メタデータオプションで取得するサーバーアドレスを設定する&lt;/h3&gt;
&lt;p&gt;[F12]でメタデータオプションを開くと以下のようなダイアログがでるのでfreedbタブを開きます。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/02.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;メールアドレスをいれる欄がありますが、適当で構いません。&lt;br&gt;
ただ&amp;quot;example.com&amp;quot;にはしておきましょう。(出鱈目なドメインでも使用されている可能性があります。)&lt;br&gt;
&amp;quot;Freedb server&amp;quot;にサーバーアドレスを設定します。&lt;/p&gt;
&lt;p&gt;↓各サイトの情報&lt;br&gt;
&lt;a href=&#34;https://freedbtest.dyndns.org/test.html&#34;&gt;freedb日本版&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://gnudb.org/howto.php&#34;&gt;gnudb&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;// 2022/1/15時点での情報
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;gnudb
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;http://gnudb.gnudb.org:80/~cddb/cddb.cgi
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;freedb日本版
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;http://freedbtest.dyndns.org:80/~cddb/cddb.cgi
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;今回の場合はfreedb日本版から取得したいので&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;http://freedbtest.dyndns.org:80/~cddb/cddb.cgi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を設定します。
OKを押すと完了&lt;/p&gt;
&lt;h3 id=&#34;3-メタデータを取得し別のdbに登録する&#34;&gt;3. メタデータを取得し、別のDBに登録する&lt;/h3&gt;
&lt;p&gt;左上にあるCDアイコンを押すと、今のタグは消えるけどいいのかって聞かれるので&lt;code&gt;OK&lt;/code&gt;を押してDBを見に行きます。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/03.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;先ほどの画像では&amp;quot;freedb日本版&amp;quot;を設定したのですが、データが見つかったようです。&lt;br&gt;
はやり「～日本版」のCDはfreedb日本版が強い！&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/04.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;OKを押すとタグが取得されていると思います。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/05.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;極まれだと思いますが、どちらのサーバに存在しない場合は自分でデータを入れていくしかないです。。。&lt;/p&gt;
&lt;p&gt;次にDBに送る方法ですが、2.でやったサーバーアドレス設定を今度は送るDBを設定します。
今回の場合はgnudbに送るので&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;http://gnudb.gnudb.org:80/~cddb/cddb.cgi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;です。&lt;br&gt;
そしてポストアイコンを押すとこのデータを送りますか？とでるのでOK&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/06.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;これで登録完了。&lt;br&gt;
あとはサーバが反映されるの待つだけ&lt;/p&gt;
&lt;h3 id=&#34;4-登録の確認&#34;&gt;4. 登録の確認&lt;/h3&gt;
&lt;p&gt;サーバ反映のために数分開けて、CUERipperを起動します。&lt;br&gt;
Reloadボタンを押すと先ほどまで取得できなかったメタデータが発見、選択すると&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/CDdbRegister/07.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;無事、タグが反映されました。&lt;/p&gt;
&lt;p&gt;結局どのサーバが生き残るかなんてわからないので自分はなるべくどちらでも取得できるように登録しています。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>【cmd】サブディレクトリにある全てのファイルを上位にコピーする</title>
      <link>https://sakuya712.github.io/post/cmd03/</link>
      <pubDate>Tue, 17 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/cmd03/</guid>
      <description>
        
          &lt;p&gt;これもたまにやりたいときがあるのでメモ&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E3%81%82%E3%82%8B%E5%85%A8%E3%81%A6%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%B8%8A%E4%BD%8D%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC&#34;&gt;サブディレクトリにある全てのファイルを上位にコピー&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;サブディレクトリにある全てのファイルを上位にコピー&#34;&gt;サブディレクトリにある全てのファイルを上位にコピー&lt;/h2&gt;
&lt;p&gt;ファイル整理したいときとかファイルを１つのフォルダにまとめたいときに使えるbatです。&lt;br&gt;
以下のような場合&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;.
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;├batファイル.bat
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;├AAAフォルダ ─DDDフォルダ ─ foo.txt
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;├BBBフォルダ ─ bar.txt
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;└CCCフォルダ ─ baz.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下のようになります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;.
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;├batファイル.bat &amp;lt;- 実行
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;├AAAフォルダ ─DDDフォルダ ─ foo.txt
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;├BBBフォルダ ─ bar.txt
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;├CCCフォルダ ─ baz.txt
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;├foo.txt
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;├bar.txt
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;└baz.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;コピーするファイルの拡張子を&lt;br&gt;
&lt;code&gt;set extension=.txt&lt;/code&gt;で設定できます。&lt;br&gt;
拡張子を設定しない場合は&lt;code&gt;set extension=.*&lt;/code&gt;でOK&lt;br&gt;
(bat自身もコピーしようとしてエラーが出ますが実害はありません。)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem &amp;#34;Set file extension&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;extension&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;.txt
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; /r &lt;span class=&#34;se&#34;&gt;%%&lt;/span&gt;d &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;*&lt;span class=&#34;nv&#34;&gt;%extension%&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;	&lt;span class=&#34;k&#34;&gt;copy&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;%%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;d&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%~dp0&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pause&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
        
      </description>
    </item>
    
    <item>
      <title>VSCodeでGASの開発をできるようにする</title>
      <link>https://sakuya712.github.io/post/vscode-gas01/</link>
      <pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/vscode-gas01/</guid>
      <description>
        
          &lt;p&gt;GASをVSCodeで書きたい&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#gas%E3%81%AFtypescript%E3%81%A7%E6%9B%B8%E3%81%91%E3%82%8B&#34;&gt;GASはTypeScriptで書ける&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B&#34;&gt;開発環境を構築する&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#1-nodejs%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B&#34;&gt;1. Node.jsをインストールする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-typescripttslinstclasp%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&#34;&gt;2. TypeScript、TSLinst、claspをインストール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-google-apps-script-api%E3%82%92%E3%82%AA%E3%83%B3%E3%81%AB%E3%81%99%E3%82%8B&#34;&gt;3. Google Apps Script APIをオンにする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B&#34;&gt;4. ワークスペースを作成する。&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#5-clasp%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D%E5%BC%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B&#34;&gt;5. claspを使っていろいろ弄ってみる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#6-%E5%AE%9F%E9%9A%9B%E3%81%AB%E6%9B%B8%E3%81%84%E3%81%A6push-pull%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&#34;&gt;6. 実際に書いてpush, pullしてみる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;gasはtypescriptで書ける&#34;&gt;GASはTypeScriptで書ける&lt;/h2&gt;
&lt;p&gt;Google Apps Scripts（GAS）はJavaScriptベースで作れた言語です。&lt;br&gt;
初期のころはブラウザ上でコーディングしていく感じでしたがgoogleが&lt;a href=&#34;https://github.com/google/clasp&#34;&gt;clasp&lt;/a&gt;というツールを開発したおかげでローカル環境で開発、TypeScriptを変換してGASを書けるようになりました。&lt;br&gt;
これによりVSCodeでも簡単に開発可能になりました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;TypeScriptを知らない方へ&lt;/p&gt;
&lt;p&gt;TypeScriptはJavaScriptを静的型付をしてメンテナンス性を向上させた言語です。&lt;br&gt;
型推論がある程度されるのでエディタが対応していれば入力補完がいい感じになります。&lt;br&gt;
そしてVSCodeはTypeScriptの入力補完は高性能です。&lt;br&gt;
(VSCode自体, Electron + Node.js + TypeScriptで作成されています)&lt;/p&gt;
&lt;p&gt;このページではTypeScript(.ts)前提で進めますが、JavaScript(.js)でもプッシュできます。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;開発環境を構築する&#34;&gt;開発環境を構築する&lt;/h2&gt;
&lt;h3 id=&#34;1-nodejsをインストールする&#34;&gt;1. Node.jsをインストールする&lt;/h3&gt;
&lt;p&gt;npmを使うのでNode.jsを使います。&lt;br&gt;
LTS(推奨版)が無難です。この記事を書いたときは14.17.4でした&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://nodejs.org/ja/&#34;&gt;https://nodejs.org/ja/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;2-typescripttslinstclaspをインストール&#34;&gt;2. TypeScript、TSLinst、claspをインストール&lt;/h3&gt;
&lt;p&gt;TypeScriptで使うこの２つをインストール&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;npm install -g typescript
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;npm install -g tslint
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で、今回の要であるclaspをインストール
これにより、googleと通信可能になります&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;npm install -g @google/clasp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;3-google-apps-script-apiをオンにする&#34;&gt;3. Google Apps Script APIをオンにする&lt;/h3&gt;
&lt;p&gt;初期設定ではAPIは使えないようになっています。&lt;br&gt;
Googleにログインして以下のURLからAPIをオンに変更してください。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://script.google.com/home/usersettings&#34;&gt;https://script.google.com/home/usersettings&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;4-ワークスペースを作成する&#34;&gt;4. ワークスペースを作成する。&lt;/h3&gt;
&lt;p&gt;ワークスペースとなるディレクトリを作成します。&lt;br&gt;
ここでは分かりやすくC直下にGASディレクトリを作成し、&lt;code&gt;C:\GAS\test1&lt;/code&gt;で開発したいと思います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; \
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;mkdir&lt;/span&gt; GAS
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; GAS
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;mkdir&lt;/span&gt; test1
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; test1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;作成できたら&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;npm init --y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でpackage.jsonを作成します。
そのあと定義ファイルが入ったファイルを取得します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;npm i @types/google-apps-script --save-dev
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでVSCode上でも入力補完が使えるようになります。&lt;/p&gt;
&lt;h3 id=&#34;5-claspを使っていろいろ弄ってみる&#34;&gt;5. claspを使っていろいろ弄ってみる&lt;/h3&gt;
&lt;p&gt;GASを弄るには最初にログインします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;clasp login
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を実行するとブラウザが立ち上がり、アクセス許可を聞いてくるので許可します。&lt;/p&gt;
&lt;p&gt;次にプロジェクトを作成してみます。&lt;br&gt;
&amp;quot;Hello&amp;quot;はプロジェクト名になります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;clasp create --title &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt; --rootDir ./src
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;すると以下のように聞いてくるので矢印キーで作成したいものを選びます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;? Create which script? (Use arrow keys)
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; standalone
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;  docs
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;  sheets
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;  slides
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;  forms
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;  webapp
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;  api
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここではテストをしたいだけなのでstandaloneを選ぶことにします。&lt;/p&gt;
&lt;p&gt;作成されたか確認してみます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;clasp open
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を実行するとブラウザで作成したプロジェクトが開かれます。&lt;/p&gt;
&lt;h3 id=&#34;6-実際に書いてpush-pullしてみる&#34;&gt;6. 実際に書いてpush, pullしてみる&lt;/h3&gt;
&lt;p&gt;ここからはVSCodeを使って実際に書いてみます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;code .
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このディレクトリをワークスペースとして開きます。
srcフォルダにHelloWorld.tsを作成し&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Hello() {&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;Logger&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;HelloWorld&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;をコピペして保存します。
このとき&lt;code&gt;log&lt;/code&gt;を選択すると&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;(method) GoogleAppsScript.Base.Logger.log(data: any): GoogleAppsScript.Base.Logger (+1 overload)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ちゃんとGASのメソッドの説明が読み込めていることが分かります。もちろん補完もされます。&lt;/p&gt;
&lt;p&gt;これをプロジェクト側に反映したいと思います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;clasp push
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を実行するとpushします。&lt;br&gt;
ブラウザでプロジェクトを確認するとHelloWorld.gsが作成されています&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// Compiled using test1 1.0.0 (TypeScript 4.3.5)
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;Logger&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;HelloWorld&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;逆にpullしたい場合は&lt;code&gt;clasp pull&lt;/code&gt;をするだけです。&lt;br&gt;
ブラウザ側で&lt;code&gt;こんにちは&lt;/code&gt;に変えて保存&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// Compiled using test1 1.0.0 (TypeScript 4.3.5)
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;nx&#34;&gt;Logger&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;こんにちは&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;pullすると&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;clasp pull
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;HelloWorld.js&lt;/code&gt;がローカルに作成されます。&lt;/p&gt;
&lt;p&gt;これでVSCodeで開発できるようになりました。&lt;br&gt;
自分もこれで本格的にスプレッドシートのスクリプトを作成していきたいと思います。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>【cmd】毎日決まった時間にバックアップし、一定期間経つと削除する方法</title>
      <link>https://sakuya712.github.io/post/cmd02/</link>
      <pubDate>Sun, 20 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/cmd02/</guid>
      <description>
        
          &lt;p&gt;毎日自動でバックアップする方法&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BD%9C%E3%82%8B%E3%81%8D%E3%81%A3%E3%81%8B%E3%81%91&#34;&gt;作るきっかけ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#windows%E3%81%AF%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%A9%E3%81%A7%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%A7%E3%81%8D%E3%82%8B&#34;&gt;windowsはタスクスケジューラで自動化できる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#bat%E4%BD%9C%E6%88%90&#34;&gt;bat作成&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#gitea%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E3%82%B7%E3%83%A3%E3%83%83%E3%83%88%E3%83%80%E3%82%A6%E3%83%B3%E3%81%99%E3%82%8B&#34;&gt;Giteaのサーバーをシャットダウンする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#gitea%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B&#34;&gt;Giteaのデータをバックアップする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%8F%A4%E3%81%84%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B&#34;&gt;古いバックアップを削除する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#gitea%E3%81%AE%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E5%86%8D%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B&#34;&gt;Giteaのサーバーを再起動する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B&#34;&gt;スケジュールを登録する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;作るきっかけ&#34;&gt;作るきっかけ&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://sakuya712.github.io/post/gitea/&#34;&gt;前の記事&lt;/a&gt;でローカルにGiteaを立ち上げてたのですが、さすがにバックアップはしておこうということで自動でバックアップする方法調べました。&lt;br&gt;
ただ、無尽蔵のバックアップしてもストレージを圧迫するだけなので、一定のバックアップ個数になると古いものを消すような細工をしたいと思います。&lt;/p&gt;
&lt;p&gt;なおこの記事はGiteaのバックアップを前提に書いていますが、普通のバックアップにももちろん使用できます。&lt;/p&gt;
&lt;h2 id=&#34;windowsはタスクスケジューラで自動化できる&#34;&gt;windowsはタスクスケジューラで自動化できる&lt;/h2&gt;
&lt;p&gt;あまり使っている方は少ないかもしれませんが、windowsにはタスクスケジューラという便利ツールが最初からインストールされています。&lt;br&gt;
これを使用することで特定のタイミングでbatを走らせたりできます。&lt;br&gt;
今回の場合は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Giteaのサーバーをシャットダウンする&lt;/li&gt;
&lt;li&gt;Giteaのデータをバックアップする&lt;/li&gt;
&lt;li&gt;古いバックアップを削除する&lt;/li&gt;
&lt;li&gt;Giteaのサーバーを再起動する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これを毎日自動的にやらせます。&lt;/p&gt;
&lt;h2 id=&#34;bat作成&#34;&gt;bat作成&lt;/h2&gt;
&lt;p&gt;では実際に自動化するためのbatを作成してみます。&lt;br&gt;
なお通常のバックアップの場合は、サーバーのシャットダウン、再起動の部分は飛ばして問題ありません&lt;/p&gt;
&lt;h3 id=&#34;giteaのサーバーをシャットダウンする&#34;&gt;Giteaのサーバーをシャットダウンする&lt;/h3&gt;
&lt;p&gt;Giteaを立ち上げたままだとコピーできないので、最初はサーバーを落とす必要があります。&lt;br&gt;
そのbatファイルはこのように書きます。&lt;br&gt;
「Gitea」の部分はサービスに登録されている名前です。&lt;/p&gt;
&lt;p&gt;ServerShutdown.bat&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sc stop Gitea
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;giteaのデータをバックアップする&#34;&gt;Giteaのデータをバックアップする&lt;/h3&gt;
&lt;p&gt;次に実際にバックアップを取ります。
今日の日付を取得して、&lt;code&gt;20210620&lt;/code&gt;のようなフォルダを作成しそこにコピーしてきます。&lt;/p&gt;
&lt;p&gt;※バックアップするフォルダとバックアップ先のパスを設定してください&lt;br&gt;
Backup.bat&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%date:/=%&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem コピー元&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;SourcePath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;C:\foo
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem コピー先&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;Set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;CopyToPath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;D:\bar\GiteaBackup\&lt;span class=&#34;nv&#34;&gt;%now%&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;robocopy /e /xo &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%SourcePath%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;  &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%CopyToPath%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;古いバックアップを削除する&#34;&gt;古いバックアップを削除する&lt;/h3&gt;
&lt;p&gt;今度は古いバックアップを削除するbatです。&lt;br&gt;
バックアップしている親ディレクトリを設定して、&lt;code&gt;count&lt;/code&gt;で残して置く個数を設定しておきます。&lt;/p&gt;
&lt;p&gt;DelOldBackup.bat&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem バックアップしているディレクトリ&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;BackupDir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;D:\bar\GiteaBackup
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem 保存するファイル世代の数&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;count&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;10
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;%BackupDir%&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;/f&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;skip=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%count%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;%%&lt;/span&gt;f &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;dir &amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%BackupDir%&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#34; /b /ad /o-n&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;    &lt;span class=&#34;k&#34;&gt;rmdir&lt;/span&gt; rd /s /q &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%BackupDir%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;%%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;f&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これについて少し解説しておくと&lt;br&gt;
&lt;code&gt;dir &amp;quot;%BackupDir%&amp;quot; /b /ad /o-n&lt;/code&gt;はBackupDirにあるフォルダを降順で列挙します。&lt;br&gt;
つまり&lt;code&gt;202106020, 202106021, 202106022&lt;/code&gt;のフォルダがあれば&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;202106022
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;202106021
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;202106020
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように列挙されす。
それを&lt;code&gt;count&lt;/code&gt;で設定した分だけスキップして、for文内にある&lt;code&gt;rmdir&lt;/code&gt;のディレクトリ削除を行うので&lt;br&gt;
&lt;code&gt;count&lt;/code&gt;で設定したバックアップ数より多い場合、古いフォルダが削除されるということになります。&lt;/p&gt;
&lt;h3 id=&#34;giteaのサーバーを再起動する&#34;&gt;Giteaのサーバーを再起動する&lt;/h3&gt;
&lt;p&gt;最後にGiteaを再起動します。&lt;/p&gt;
&lt;p&gt;ServerBoot.bat&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sc start Gitea
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;スケジュールを登録する&#34;&gt;スケジュールを登録する&lt;/h2&gt;
&lt;p&gt;タスクスケジューラはスタートからでもできますが、GUIだと面倒なのでこれもcmdでやってしまいましょう。
先ほど作成したbatファイルをバックアップしているディレクトリに置きます。&lt;br&gt;
イメージとしてはこんな感じ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;GiteaBackup
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    ├20210620 ─ バックアップデータ
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    ...
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;    ├Backup.bat
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;    ├DelOldBackup.bat
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;    ├ServerBoot.bat
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;    └ServerShutdown.bat
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そして新たに以下のようなbatファイルを作成し、バックアップ頻度や時間を指定(後述)を修正、完成したら&lt;code&gt;管理者として実行&lt;/code&gt;で実行します。 &lt;br&gt;
TaskAdd.bat&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;batDir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;D:\bar\GiteaBackup\
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;schtasks /create /tn &lt;span class=&#34;s2&#34;&gt;&amp;#34;Giteaシャットダウン&amp;#34;&lt;/span&gt; /tr &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%batDir%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;ServerShutdown.bat&amp;#34;&lt;/span&gt; /sc DAILY /st 12:05 /rl highest /F
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;schtasks /create /tn &lt;span class=&#34;s2&#34;&gt;&amp;#34;Giteaバックアップ&amp;#34;&lt;/span&gt; /tr &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%batDir%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;Backup.bat&amp;#34;&lt;/span&gt; /sc DAILY /st 12:06 /rl highest /F
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;schtasks /create /tn &lt;span class=&#34;s2&#34;&gt;&amp;#34;Gitea旧バックアップ削除&amp;#34;&lt;/span&gt; /tr &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%batDir%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;DelOldBackup.bat&amp;#34;&lt;/span&gt; /sc DAILY /st 12:09 /rl highest /F
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;schtasks /create /tn &lt;span class=&#34;s2&#34;&gt;&amp;#34;Gitea再起動&amp;#34;&lt;/span&gt; /tr &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%batDir%&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;ServerBoot.bat&amp;#34;&lt;/span&gt; /sc DAILY /st 12:10 /rl highest /F
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pause&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;なにも問題なければタスクスケジューラに登録されています。&lt;/p&gt;
&lt;p&gt;意味を解説すると&lt;/p&gt;
&lt;p&gt;&lt;code&gt;schtasks /create&lt;/code&gt;でタスクスケジューラに新規登録&lt;br&gt;
&lt;code&gt;/tn &amp;quot;Giteaシャットダウン&amp;quot;&lt;/code&gt;でタスク名を設定&lt;br&gt;
&lt;code&gt;/tr &amp;quot;%batDir%ServerShutdown.bat&amp;quot;&lt;/code&gt;で実行するものを設定&lt;br&gt;
&lt;code&gt;/sc DAILY&lt;/code&gt;(1日ごと)で実行頻度を設定&lt;br&gt;
これには他にも、&lt;code&gt;HOURLY&lt;/code&gt;(1時間ごと),&lt;code&gt;WEEKLY&lt;/code&gt;(一週間ごと),&lt;code&gt;MONTHLY&lt;/code&gt;(1か月ごと)などがあります&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/st 12:05&lt;/code&gt;で実行する時間を指定&lt;br&gt;
自分は12:00から昼休みなので、
12:05にサーバーをシャットダウン-&amp;gt;12:06にバックアップ-&amp;gt;12:09に重複削除、12:10にサーバー再起動としています。&lt;br&gt;
これはお好みで弄ってください。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/rl highest&lt;/code&gt;で管理者として実行します。サービスの停止/実行には管理者実行が必要です。&lt;br&gt;
&lt;code&gt;/F&lt;/code&gt;同名のタスクがある場合は上書きします。&lt;/p&gt;
&lt;p&gt;指定した時間に実行されれば成功です。&lt;/p&gt;
&lt;p&gt;これで万が一メインPCがぶっ壊れてもGiteaのリポジトリは生存できる状態になりました。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>【cmd】ベースフォルダの中身を同じ階層のフォルダに一括コピー</title>
      <link>https://sakuya712.github.io/post/cmd01/</link>
      <pubDate>Sun, 06 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/cmd01/</guid>
      <description>
        
          &lt;p&gt;たまにやりたいときがあるので&lt;/p&gt;
&lt;h2 id=&#34;ベースフォルダの中身を一括コピー&#34;&gt;ベースフォルダの中身を一括コピー&lt;/h2&gt;
&lt;p&gt;仕事やMOD作成のときたまにあるのですが&lt;br&gt;
ベースとなるフォルダに原紙的なのがあってその中身を各フォルダにコピーしたい場合&lt;br&gt;
例を挙げるとこんな感じ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;.
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;├baseフォルダ ─ foo.txt , bar.jpg , etc. &amp;lt;=このファイルを各フォルダ等に各コピーしたい
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;├AAAフォルダ
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;├BBBフォルダ
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;├CCCフォルダ
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;...
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;└ZZZフォルダ
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;もちろん手動でコピペしてもできますが、フォルダが多いほどこれは面倒になります。&lt;br&gt;
ということでこういうは自動化しようということでBATファイルを作成&lt;br&gt;
忘れないようにメモ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem &amp;#34;Drag And Drop the copy folder&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;%1&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; ..
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;/f&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;%%&lt;/span&gt;f &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;dir /b /ad&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;    xcopy /e /y &lt;span class=&#34;nv&#34;&gt;%1&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;%%&lt;/span&gt;f
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;pause&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ベースとなるフォルダをドラッグアンドドロップでBATを実行してください。&lt;br&gt;
(普通にダブルクリックしてもなにも起こりません)&lt;br&gt;
するとベースと同じ階層にある各フォルダにコピーしてくれます。&lt;br&gt;
xcopyのオプションは&lt;code&gt;/e /y&lt;/code&gt;にしているのでベース配下のフォルダ全てコピーし、上書きをします。&lt;br&gt;
BAT後&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;.
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;├baseフォルダ ─ foo.txt , bar.jpg , etc.
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;├AAAフォルダ ─ foo.txt , bar.jpg , etc.
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;├BBBフォルダ ─ foo.txt , bar.jpg , etc.
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;├CCCフォルダ ─ foo.txt , bar.jpg , etc.
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;...
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;└ZZZフォルダ ─ foo.txt , bar.jpg , etc.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;自分自身もコピー先にしようとするので&lt;code&gt;サイクリック コピーは実行できません&lt;/code&gt;と出てしまいますが実害はないのでこれでいいかな&lt;br&gt;
お試しあれ&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>MineCraft GTCE(GregTech)の日本語化</title>
      <link>https://sakuya712.github.io/post/gtcejapanese/</link>
      <pubDate>Sat, 05 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/gtcejapanese/</guid>
      <description>
        
          &lt;p&gt;MineCraftのMODのGTCE(GregTech)の日本語化&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#gtcegregtech-community-edition%E3%81%A8%E3%81%AF&#34;&gt;GTCE(GregTech Community Edition)とは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96&#34;&gt;日本語化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%81%A9%E7%94%A8%E6%96%B9%E6%B3%95&#34;&gt;適用方法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96%E3%81%99%E3%82%8B%E3%81%AB%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B5%E3%82%A4%E3%83%88%E3%83%84%E3%83%BC%E3%83%AB&#34;&gt;日本語化するに使ったサイト・ツール&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;gtcegregtech-community-editionとは&#34;&gt;GTCE(GregTech Community Edition)とは&lt;/h2&gt;
&lt;p&gt;GTCEはMineCraft ver1.12の大型工業MODです。&lt;br&gt;
割と有名なMODですが大規模MODなので日本語がありません&lt;/p&gt;
&lt;h2 id=&#34;日本語化&#34;&gt;日本語化&lt;/h2&gt;
&lt;p&gt;需要があるかわかりませんがこのGTCEの日本語のlangファイルを作成しました。&lt;br&gt;
全部は翻訳できていないですが、ゲーム上で表示される部分の9.5割くらいは完成しています。&lt;br&gt;
※ GT5Uから引き継いでいるファイルみたいなのでGTCEでは未実装で使われていない箇所もあります。&lt;br&gt;
そのような箇所はまだ翻訳していません。&lt;/p&gt;
&lt;p&gt;リポジトリ&lt;br&gt;
&lt;a href=&#34;https://github.com/sakuya712/GTCE_JapaneseLocalize&#34;&gt;https://github.com/sakuya712/GTCE_JapaneseLocalize&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;リポジトリにも書いている通りUnlicenseにしているので自由に加工してもらって構いません。&lt;/p&gt;
&lt;h2 id=&#34;適用方法&#34;&gt;適用方法&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;MODファイルの拡張子をjarからzipに変更する&lt;/li&gt;
&lt;li&gt;エクスプローラーで開いて&lt;code&gt;\assets\gregtech\lang&lt;/code&gt;まで進んでいく&lt;/li&gt;
&lt;li&gt;ここに&lt;code&gt;ja_jp.lang&lt;/code&gt;ファイルを追加する&lt;/li&gt;
&lt;li&gt;拡張子をjarに戻してマイクラを起動する&lt;/li&gt;
&lt;li&gt;マイクラの言語設定を日本語に設定する&lt;/li&gt;
&lt;li&gt;日本語化完了&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;日本語化するに使ったサイトツール&#34;&gt;日本語化するに使ったサイト・ツール&lt;/h2&gt;
&lt;p&gt;これは余談になりますが、今回に日本語化するとき調べ方を書き留めて置きます。&lt;/p&gt;
&lt;p&gt;実は直訳でいいなら簡単に作れてしまいます。&lt;br&gt;
VScodeには&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=funkyremi.vscode-google-translate&#34;&gt;Vscode Google Translate&lt;/a&gt;などの翻訳ツールがあるのでこれをインストール&lt;br&gt;
翻訳するところをマルチ選択すれば一括で翻訳できます。&lt;/p&gt;
&lt;p&gt;ですが、これで完成とはならないことが多いです。&lt;br&gt;
はやり自動翻訳だと意味がわかりにくい、訳す必要がないものまで訳してしまいます。&lt;/p&gt;
&lt;p&gt;なので結局おかしい所は個々で修正しました。&lt;br&gt;
自分がこの作業をやっていて参考にしていたのはキクタンでお馴染みのアルクが提供する&lt;a href=&#34;https://eow.alc.co.jp/&#34;&gt;英辞郎&lt;/a&gt;でした。&lt;br&gt;
単語の意味が多く書かれていて例文も多いのでいい感じの翻訳を作りやすかったです。&lt;/p&gt;
&lt;p&gt;あとはたまに&lt;a href=&#34;https://ejje.weblio.jp/&#34;&gt;Weblio辞書&lt;/a&gt;も使っていました。&lt;br&gt;
今回翻訳したものが化学などの専門用語が多いものでしたのでそういう時に使えます。&lt;br&gt;
ただ、個々の意味を調べるときははやり英辞郎の方が優秀かと思います。&lt;/p&gt;
&lt;p&gt;長文のときは&lt;a href=&#34;https://www.deepl.com/ja/translator&#34;&gt;DeepL翻訳&lt;/a&gt;も使います。&lt;br&gt;
ただこれは補助で使う場合が多く、結局自分で文章を変えることが多かったです。&lt;/p&gt;
&lt;p&gt;最終的には実際にゲームを起動して確認することも大事です。結局使われる場面で翻訳も変わるので、ここから修正というパターンもありました。&lt;/p&gt;
&lt;p&gt;今回初めて日本語化ファイルをやってみてやっぱりゲームの翻訳って大変だなと思いました。&lt;br&gt;
普通の文書を翻訳するより数倍疲れます。&lt;br&gt;
PCゲームだとよく「日本語化はよ」とか言っている方がいますがやっぱり簡単にできるものではありません。&lt;br&gt;
作成者には感謝して使っていきたいと思いました。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>【Python】C#から機能を逆引きメモ</title>
      <link>https://sakuya712.github.io/post/cspython/</link>
      <pubDate>Tue, 11 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/cspython/</guid>
      <description>
        
          &lt;p&gt;普段C#を知っていて、Pythonをたまに使う人向けのメモ&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E9%80%90%E8%AA%9E%E7%9A%84%E6%96%87%E5%AD%97%E5%88%97%E3%81%AFr&#34;&gt;文字列の@(逐語的文字列)はr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#contains%E3%81%AF-%E5%80%A4-in-%E3%83%AA%E3%82%B9%E3%83%88&#34;&gt;Containsは 値 in リスト&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h3 id=&#34;文字列の逐語的文字列はr&#34;&gt;文字列の@(逐語的文字列)はr&lt;/h3&gt;
&lt;p&gt;特殊文字を無視したい場合エスケープ文字を使いますが、パス名など複数出る場合は面倒なのでこの文字列は&lt;code&gt;文字として扱え&lt;/code&gt;と指定することができます。&lt;br&gt;
それをC#では逐語的文字列といいます。&lt;/p&gt;
&lt;p&gt;C#&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cs&#34; data-lang=&#34;cs&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;myStr&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;@&amp;#34;C:\foo\bar.png&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Python&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;myStr&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\foo\bar.png&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但し、Pythonでは逐語的文字列内でも&lt;code&gt;\&lt;/code&gt;はエスケープになるので&lt;code&gt;\&lt;/code&gt;を末尾につけることはできません。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# ダブルクォーテーションをエスケープしてしまうのでエラーになる&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\foo\bar&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&amp;#34;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;#これならOK&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\foo\bar&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\\&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# C:\foo\bar\&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;containsは-値-in-リスト&#34;&gt;Containsは 値 in リスト&lt;/h3&gt;
&lt;p&gt;リストに存在するかどうかを調べたい場合は&lt;/p&gt;
&lt;p&gt;C#&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cs&#34; data-lang=&#34;cs&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;List&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;myList&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;List&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;()&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;B&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;C&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;D&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;E&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;};&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Diagnostics&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Debug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteLine&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;myList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Contains&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;B&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// true
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Python&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mylist&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;A&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;B&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;C&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;D&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;E&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;B&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mylist&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これは文字列から文字が存在するかどうかを調べたい場合も同じです&lt;/p&gt;
&lt;p&gt;C#&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cs&#34; data-lang=&#34;cs&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;myStr&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;HelloWorld&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Diagnostics&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Debug&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WriteLine&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;myStr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Contains&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// true
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Python&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;myStr&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;HelloWorld&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;myStr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
        
      </description>
    </item>
    
    <item>
      <title>CraftTweakerの構文メモ</title>
      <link>https://sakuya712.github.io/post/crafttweaker01/</link>
      <pubDate>Sun, 09 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/crafttweaker01/</guid>
      <description>
        
          &lt;p&gt;MineCraftのMODのお話&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB&#34;&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#112%E3%81%A7%E3%81%AF%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AF%E3%81%AA%E3%81%84&#34;&gt;1.12ではリロードコマンドはない&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#var%E3%81%A8val%E3%81%AE%E9%81%95%E3%81%84&#34;&gt;varとvalの違い&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%85%8D%E5%88%97%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%AB%E3%83%BC%E3%83%97%E3%81%95%E3%81%9B%E3%82%8B&#34;&gt;配列を使用してループさせる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%80%A3%E6%83%B3%E9%85%8D%E5%88%97%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B&#34;&gt;連想配列を使用する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%96%87%E5%AD%97%E3%81%AE%E9%80%A3%E7%B5%90&#34;&gt;文字の連結&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#if%E6%96%87&#34;&gt;If文&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%BC%94%E7%AE%97%E5%AD%90&#34;&gt;演算子&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%95%B0%E5%80%A4%E8%A8%88%E7%AE%97&#34;&gt;数値計算&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%95%B0%E5%BC%8F%E6%BC%94%E7%AE%97%E5%AD%90&#34;&gt;数式演算子&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%82%A8%E3%83%A9%E3%83%BC%E9%9B%86&#34;&gt;エラー集&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;MineCraftのMOD、CraftTweakerの解説記事です。&lt;br&gt;
CraftTweakerとはレシピなどをスクリプトで書き換えることができるMODです。&lt;br&gt;
スクリプトはZenScriptというものですが、日本語で構文の説明までかかれているものがあまりなかったので記事にしようかなとました。自分のメモのためにも。&lt;br&gt;
超初歩的なことは他の方がすでに書かれているのでここでは書きません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;この情報はMinecraft 1.12、&lt;code&gt;CraftTweaker2-1.12-4.1.20.646.jar&lt;/code&gt;時点での情報です。最新のバージョンでは異なる箇所があるかもしれません。&lt;/li&gt;
&lt;li&gt;説明のために日本語で書いていますが、実際にスクリプトを書くときは日本語をいれることはできません。(コメント含む)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;112ではリロードコマンドはない&#34;&gt;1.12ではリロードコマンドはない&lt;/h2&gt;
&lt;p&gt;昔はリロードコマンドがあり、修正したスクリプトをすぐに反映できていましたが、現在のバージョンではなくっています。&lt;br&gt;
これはCurseの仕様らしいので今後このコマンドが実装されることもありません。&lt;br&gt;
おとなしく再起動して反映させてください。&lt;/p&gt;
&lt;h2 id=&#34;varとvalの違い&#34;&gt;varとvalの違い&lt;/h2&gt;
&lt;p&gt;CraftTweakerでは変数の宣言には二種類あります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;varは一度設定しても値を変更することができます。&lt;/li&gt;
&lt;li&gt;valは一度設定したら値を変更することはできません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;CraftTweakerではvalは定数と思ってもらって構いません。途中で変えてほしくない場合に使います。&lt;br&gt;
実際に使う場面として、最初によく使うアイテムを予め宣言しておきたいときに使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;val&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;certusQuartzDust&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;appliedenergistics2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//certusQuartzDustを使った処理を書く
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//間違ってセットしようとしてもエラーになるので間違いに気づく
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;certusQuartzDust&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;appliedenergistics2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;;&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;// error
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;逆にそれ以外はvarで構いません。&lt;br&gt;
初歩的なミスですが、varは再設定は可能ですが同じ変数名を二回宣言することはできないので注意。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Count1&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 値を変えたい場合はこのように変える
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Count2&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 二回目の宣言はNG
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Count3&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// error
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;配列を使用してループさせる&#34;&gt;配列を使用してループさせる&lt;/h2&gt;
&lt;p&gt;CraftTweakerには配列が用意されていてこれをForやWhileで回すことができます。&lt;/p&gt;
&lt;p&gt;実は配列自体は、最初のレシピ登録のときから知らず知らずにつかっています。あのレシピ追加の[]は変数に入れずに直接入れているのです。&lt;/p&gt;
&lt;p&gt;わざわざ変数にいれて配列を使用する場合はループ処理をしたいときです。
最初に&lt;code&gt;import crafttweaker.item.IItemStack&lt;/code&gt;を宣言して配列を使えるようにします。
配列の書き方は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;crafttweaker.item.IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;変数名&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// 配列に入れる要素
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;item&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そしてループさせるときはfor文を使います。これは他の言語のforeachに当たるもので、配列内の要素を全て反復処理を行います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;配列内の要素&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;配列の変数名&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// ループさせたい内容
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;またカウンタを使って他の言語のforに当たる処理も行えます&lt;br&gt;
&lt;code&gt;配列の変数名[i]&lt;/code&gt;として要素にアクセスできるけどそれなら上記の方法がいいです。&lt;br&gt;
こちらは単純に指定した回数分ループさせるときに使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// 10回ループする処理
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最後に実際の例&lt;br&gt;
&amp;lt;例&amp;gt; 木材製ツールの耐久度を5にする&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;crafttweaker.item.IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// Create an array
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vanillaTools&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;minecraft&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wooden_sword&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;minecraft&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wooden_shovel&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;minecraft&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wooden_pickaxe&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;minecraft&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wooden_axe&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;minecraft&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wooden_hoe&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;];&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// Loop the array
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tool&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vanillaTools&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;	&lt;span class=&#34;n&#34;&gt;tool&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;maxDamage&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;	&lt;span class=&#34;n&#34;&gt;tool&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;addTooltip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;darkRed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Use craft material only. Durability is only 5&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;));&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Whileループもありますが、これは無限ループに陥りやすいので使わないほうが無難です。&lt;/li&gt;
&lt;li&gt;2次配列にすることも可能ですが、ループ目的でやる場合は次の連想配列を使用しましょう。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;連想配列を使用する&#34;&gt;連想配列を使用する&lt;/h2&gt;
&lt;p&gt;連想配列は他の言語だとMapやDictionaryともいわれます。&lt;br&gt;
配列を2つ用意して同じような処理は可能ですが、こちらはセットになっているのでわかりやすいし、処理も早いです。&lt;/p&gt;
&lt;p&gt;イメージとしてはこんな感じ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;//配列を2つ用意する
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;id[] = [1, 2, 3]
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;value[] = [&amp;#34;石&amp;#34;, &amp;#34;草&amp;#34;, &amp;#34;土&amp;#34;]
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;//連想配列
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;Dic = { (1,&amp;#34;石&amp;#34;)
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;        (2,&amp;#34;草&amp;#34;)
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;        (3,&amp;#34;土&amp;#34;)
&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;    }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このidとなる部分は重複させることはできません。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;import crafttweaker.item.IIngredient&lt;/code&gt;を追加して&lt;code&gt;IItemStack&lt;/code&gt;の中に入る型を&lt;code&gt;IIngredient&lt;/code&gt;として宣言しておきましょう。&lt;/p&gt;
&lt;p&gt;CraftTweakerでよくある使い方としてクラフトの形は決まっていて、素材で完成品が変わるものに使います。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;crafttweaker.item.IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;crafttweaker.item.IIngredient&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;連想配列の変数名&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IIngredient&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;	&lt;span class=&#34;n&#34;&gt;素材1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;完成品1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;	&lt;span class=&#34;n&#34;&gt;素材2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;完成品2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;etc&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と連想配列を作成していれば&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;完成品&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;連想配列の変数名&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;addShaped&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;完成品&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ore&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ironIngot&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;素材&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;]);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;という風にかけます。&lt;br&gt;
具体的な例を記載します。&lt;br&gt;
&amp;lt;例&amp;gt; ThermalFoundationのギアのレシピ追加&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;crafttweaker.item.IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;crafttweaker.item.IIngredient&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;newGearRecipes&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;IItemStack&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IIngredient&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ore&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ingotIron&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;thermalfoundation&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ore&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ingotGold&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;thermalfoundation&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ore&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gemDiamond&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;thermalfoundation&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;};&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;gear&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;newGearRecipes&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;recipes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;addShaped&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gear&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ore&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ingotIron&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;],&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;        &lt;span class=&#34;o&#34;&gt;]);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで、鉄と金とダイアのギアのレシピが追加されました。&lt;/p&gt;
&lt;p&gt;バニラに近い環境だと余り出番が少ないかもしれませんが、工業MODで金属がたくさんあるときなんかでこれがあると便利です。&lt;/p&gt;
&lt;h2 id=&#34;文字の連結&#34;&gt;文字の連結&lt;/h2&gt;
&lt;p&gt;文字の連結は&lt;code&gt;~&lt;/code&gt;で行うことができます。&lt;br&gt;
例として鉄、金、銅、錫、ブロンズに&amp;quot;Metal ingot&amp;quot;というツールチップを追加します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;materialNames&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;	&lt;span class=&#34;s&#34;&gt;&amp;#34;Iron&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;	&lt;span class=&#34;s&#34;&gt;&amp;#34;Gold&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;	&lt;span class=&#34;s&#34;&gt;&amp;#34;Copper&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;	&lt;span class=&#34;s&#34;&gt;&amp;#34;Tin&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;	&lt;span class=&#34;s&#34;&gt;&amp;#34;Bronze&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;,&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;];&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;material&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;materialNames&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;//&amp;#34;ingotIron&amp;#34;,&amp;#34;ingotGold&amp;#34; ... と取得している
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;oreDict&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;ingot&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;material&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;].&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;addTooltip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;format&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;darkRed&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Metal ingot&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;));&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;	&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;if文&#34;&gt;If文&lt;/h2&gt;
&lt;p&gt;条件分岐です。&lt;br&gt;
レシピを作成するという性質上CraftTweakerでIf使うことは少ないかもしれませんが一応つかえます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;条件式&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// trueの処理
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// falseの処理 elseはなくてもいい
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;演算子は以下の通りです。&lt;/p&gt;
&lt;h3 id=&#34;演算子&#34;&gt;演算子&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;演算子&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;意味&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;例&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;!&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Not。trueとfalseを反転&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;!(条件) //～ではない&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;!=&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;前後の値が等しくないかを評価&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;1 !=2 // true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;==&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;前後の値が等しいかを評価&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;1 ==1 // true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&amp;amp;&amp;amp;, &amp;amp;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;AND。 2個書くと短絡評価&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;true &amp;amp;&amp;amp; true // true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;||, |&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;OR。2個書くと短絡評価&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;true || false // true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&amp;gt; , &amp;gt;=&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;前の値が後ろの値より大きい(以上)かどうかの評価&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;2 &amp;gt; 1 // true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&amp;lt;, &amp;lt;=&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;前の値が後ろの値より小さい(以下)かどうかの評価&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;1 &amp;lt;= 2 // true&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;短絡評価とはANDやORで、後の評価をせずとも前の評価で結果が決定してしまっている状態のとき、後の評価をせずしないことです。普通はこの短絡評価のほうを使います。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// 1 == 1の条件式がtrueなため、1 == 2を条件式を見ずにtrueの処理を行います。
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; 
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;c1&#34;&gt;// trueの処理
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;数値計算&#34;&gt;数値計算&lt;/h2&gt;
&lt;p&gt;これもあまり使うことはないかもしれませんが、一応&lt;/p&gt;
&lt;h3 id=&#34;数式演算子&#34;&gt;数式演算子&lt;/h3&gt;
&lt;p&gt;これはいたって普通、+=と書けば代入演算子もできます  &lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;演算子&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;意味&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;+&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;加算&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;-&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;減算&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;*&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;乗算&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;/&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;除算&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;%&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;剰余&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一番を気をつけないといけないときは小数点がある計算です。&lt;br&gt;
例えば以下のように11/5.5をして余りを出す場合です。&lt;br&gt;
下記を見ると一見0が表示されるように思えます。&lt;br&gt;
しかし結果は1となります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;11&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これは1番目の値の型で計算をしているためです。&lt;br&gt;
つまり&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//略さず書くと
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;11&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;5&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//つまりパソコンが計算しているのは
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;11&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;となってしまいます。&lt;br&gt;
なので、小数点を使う場合は必ず型をつけてあげましょう。&lt;br&gt;
以下の場合は0.0となります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;11&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;double&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//パソコンは11.0%5.5の計算している
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;エラー集&#34;&gt;エラー集&lt;/h2&gt;
&lt;p&gt;crafttweaker.logのログを見れば大抵のエラーは分かります。&lt;br&gt;
エラーになっている行が出ているのでその周辺を見直してください。&lt;/p&gt;
&lt;p&gt;随時追加予定&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;エラー&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;意味&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;-- ; expected&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;;をつけ忘れてる&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
        
      </description>
    </item>
    
    <item>
      <title>コマンド【code】後コマンドプロンプトを閉じたい</title>
      <link>https://sakuya712.github.io/post/vscode01/</link>
      <pubDate>Fri, 07 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/vscode01/</guid>
      <description>
        
          &lt;p&gt;VSCodeのコマンドcodeの話&lt;/p&gt;
&lt;h2 id=&#34;コマンドcode後コマンドプロンプトを閉じたい&#34;&gt;コマンド【code】後コマンドプロンプトを閉じたい&lt;/h2&gt;
&lt;p&gt;VSCodeにはコマンドプロンプトから呼び出せるように&lt;code&gt;code&lt;/code&gt;というコマンドが用意されています。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;code .
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と入力すれば現在のディレクトリをワークスペースとしてVSCodeを開けるので便利です。&lt;br&gt;
しかしこの方法、VSCodeが開いてもコマンドプロンプトは起動したままです。&lt;br&gt;
これは恐らくnanoやviみたいにCUIで操作する人が使うイメージを想定しているんだと思いますが、&lt;br&gt;
バッチファイルなどの何らかの処理をcmdで返してVSCodeを起動したいだけの場合はコマンドプロンプトが残るのは邪魔でしかありません。&lt;br&gt;
そこでVSCodeを起動したらコマンドプロンプトが閉じるようなコマンドを追加したいと思います。&lt;/p&gt;
&lt;h2 id=&#34;解決方法&#34;&gt;解決方法&lt;/h2&gt;
&lt;p&gt;調べてみると同様のことが&lt;a href=&#34;https://github.com/Microsoft/vscode/issues/6608&#34;&gt;issue&lt;/a&gt;にありました。&lt;br&gt;
要約すると&lt;br&gt;
windowsの場合特に弄ってなければcodeを実行させている実態は以下の場所にあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;%LOCALAPPDATA%\Programs\Microsoft VS Code\bin
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;フルパスは
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;C:\Users\[ユーザー名]\AppData\Local\Programs\Microsoft VS Code\bin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そこにある&lt;code&gt;code.cmd&lt;/code&gt;をコピーして適当にリネームします。&lt;br&gt;
ここでは&lt;code&gt;codeExit.cmd&lt;/code&gt;とします。&lt;br&gt;
これをエディタなどで開いて5行目を修正する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%~dp0&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;..\Code.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%~dp0&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;..\resources\app\out\cli.js&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;%*&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;を
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;start&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%~dp0&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;..\Code.exe&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%~dp0&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;..\resources\app\out\cli.js&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;%*&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;に変更する
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで完了&lt;br&gt;
試しに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cmd&#34; data-lang=&#34;cmd&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;codeExit .
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;というバッチを作成して実行するとVSCodeが開き、コマンドプロンプトは閉じてくれました。&lt;/p&gt;
&lt;p&gt;念のため修正したところを解説すると&lt;br&gt;
どうやら通常のcodeは(省略されていますが)callで呼んでいるみたいです。&lt;br&gt;
callは呼んだルーチンが終了するのを待つのでVSCodeが閉じられるまでコマンドプロンプトが開きっぱなしということが起こります。&lt;br&gt;
しかし、startで呼ぶと新しいプロセスとして実行されるため、VScodeを開く命令をしたあと最終行に到達し、コマンドプロンプトが閉じるということらしいです。&lt;br&gt;
なお&amp;quot;&amp;quot;の空文字は新しいプロセスを実行するときのウィンドウ名です。なので特に意味はありません。(但し、無くすことはできない)&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>VBA メモ</title>
      <link>https://sakuya712.github.io/post/vbamemo/</link>
      <pubDate>Thu, 06 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/vbamemo/</guid>
      <description>
        
          &lt;p&gt;VBAに関するちょっとしたメモ&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#formula%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%99%82%E3%82%92%E3%81%A4%E3%81%91%E3%82%8C%E3%81%B0%E7%9B%B8%E5%AF%BE%E5%8F%82%E7%85%A7%E3%81%A7%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%93%E3%81%A7%E3%81%8F%E3%82%8C%E3%82%8B&#34;&gt;Formulaの設定時、=をつければ相対参照で書き込んでくれる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%85%A5%E5%8A%9B%E8%A6%8F%E5%88%B6%E3%81%8C%E3%81%86%E3%81%BE%E3%81%8F%E3%81%84%E3%81%8B%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D&#34;&gt;入力規制がうまくいかないとき&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%9C%80%E5%88%9D%E3%81%ABdelete%E3%81%97%E3%82%88%E3%81%86&#34;&gt;最初にDeleteしよう&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%8F%82%E7%85%A7%E5%BD%A2%E5%BC%8F%E3%81%8C%E5%90%88%E3%81%A3%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84&#34;&gt;参照形式が合っていない&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#sortorientation%E3%81%AFxlsortorientation%E5%88%97%E6%8C%99%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84&#34;&gt;Sort.OrientationはXlSortOrientation列挙を使わない&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h3 id=&#34;formulaの設定時をつければ相対参照で書き込んでくれる&#34;&gt;Formulaの設定時、=をつければ相対参照で書き込んでくれる&lt;/h3&gt;
&lt;p&gt;A列は、B列の同じ行を参照するという処理をしたい場合&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A1:A100&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Formula&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;=B1&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と書けば、 セルA1は&amp;quot;=B1&amp;quot;、セルA2は&amp;quot;=B2&amp;quot;と処理してくれる。&lt;br&gt;
逆に絶対参照したい場合は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A1:A100&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Formula&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;=$B$1&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば全部B1を参照してくれる。&lt;br&gt;
これは入力規制などでセル範囲を指定する場合も同じで&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;With&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A1:A100&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Validation&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Delete&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Add&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xlValidateList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Formula1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;=B1:B3&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;End&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;With&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と指定してもちゃんと相対的に入力規制を設定してくれる&lt;br&gt;
またこれらは【R1C1参照形式】を使用するとしているとちゃんと処理も変わる&lt;br&gt;
渡すのはただの文字列だが、思ってた以上に賢く処理しているみたいです。&lt;/p&gt;
&lt;h3 id=&#34;入力規制がうまくいかないとき&#34;&gt;入力規制がうまくいかないとき&lt;/h3&gt;
&lt;h4 id=&#34;最初にdeleteしよう&#34;&gt;最初にDeleteしよう&lt;/h4&gt;
&lt;p&gt;既に入力規制があるところにAddしようとすると&lt;code&gt;「1004：アプリケーション定義またはオブジェクト定義のエラーです」&lt;/code&gt;がでます。&lt;br&gt;
逆に入力規制がない状態でDeleteしても特になにも言ってこないので、とりあえず最初はDeleteしとけば問題ないと思います&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;With&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Validation&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Delete&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Add&lt;/span&gt; &lt;span class=&#34;c&#34;&gt;&amp;#39;入力規制内容
&lt;/span&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;End&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;With&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;参照形式が合っていない&#34;&gt;参照形式が合っていない&lt;/h4&gt;
&lt;p&gt;通常の設定では&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;With&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Validation&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Delete&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Add&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xlValidateList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Formula1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;=B1:B3&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;End&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;With&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;は設定できるのですが、【R1C1参照形式】に設定している場合、参照できずにエラーを出してしまいます。&lt;/p&gt;
&lt;p&gt;そこで&lt;a href=&#34;https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.convertformula&#34;&gt;Application.ConvertFormulaメソッド&lt;/a&gt;を使って置換を行います。&lt;br&gt;
さらに現在の設定を&lt;a href=&#34;https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.referencestyle&#34;&gt;Application.ReferenceStyleプロパティ&lt;/a&gt;で取得できます。&lt;/p&gt;
&lt;p&gt;ですので&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Application&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ConvertFormula&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;参照内容&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;←&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;の参照の形式&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Application&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ReferenceStyle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすればどちらでも対応できるマクロになります。&lt;/p&gt;
&lt;p&gt;&amp;lt;例&amp;gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;With&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Validation&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Delete&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Add&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xlValidateList&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; _
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;        &lt;span class=&#34;n&#34;&gt;Formula1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Application&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ConvertFormula&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt; _
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;                    &lt;span class=&#34;s&#34;&gt;&amp;#34;=B1:B3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; _
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;                    &lt;span class=&#34;n&#34;&gt;xlA1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; _
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;                    &lt;span class=&#34;n&#34;&gt;Application&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ReferenceStyle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;End&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;With&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;sortorientationはxlsortorientation列挙を使わない&#34;&gt;Sort.OrientationはXlSortOrientation列挙を使わない&lt;/h3&gt;
&lt;p&gt;Sort.Orientationはソートを行か列かの設定を行うプロパティである。&lt;br&gt;
この引数はXlSortOrientationを指定しているが、この列挙の変数名がややこしいということで使われていません。→&lt;a href=&#34;https://docs.microsoft.com/ja-jp/office/vba/api/excel.sort&#34;&gt;Sortオブジェクトのドキュメントにも使われていない&lt;/a&gt;&lt;br&gt;
そこで代わりに&lt;code&gt;xlTopToBottom&lt;/code&gt;(行方向の並び替え)、&lt;code&gt;xlLeftToRight&lt;/code&gt;(列方向の並び替え)を使います。この列挙はエクセルのConstantsにあります。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-vb&#34; data-lang=&#34;vb&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Excel&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Constants&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;xlTopToBottom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;恐らく後付けでこの定数を作成したんだとおもいます。(新しい列挙型作ってそれを引数にすればいいのに…)&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>Giteaを使ってローカルでGitHubライクサーバーを作成する</title>
      <link>https://sakuya712.github.io/post/gitea/</link>
      <pubDate>Mon, 22 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/gitea/</guid>
      <description>
        
          &lt;p&gt;GitHubには上げたくなけど専用サーバーをつくるのしんどい方は必見&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%AF%BE%E8%B1%A1%E8%80%85&#34;&gt;対象者&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BD%9C%E3%82%8B%E3%81%8D%E3%81%A3%E3%81%8B%E3%81%91&#34;&gt;作るきっかけ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#gitea%E3%81%A8%E3%81%AF&#34;&gt;Giteaとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#gitea%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&#34;&gt;Giteaを使って構築してみる&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#1-%E5%89%8D%E6%BA%96%E5%82%99&#34;&gt;1. 前準備&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-gitea%E3%82%92dl%E3%81%99%E3%82%8B&#34;&gt;2. GiteaをDLする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-gitea%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&#34;&gt;3. Giteaを起動してみる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%82%92%E8%A1%8C%E3%81%86&#34;&gt;4. 初期設定を行う&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#5-%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E8%B5%B7%E5%8B%95%E3%81%95%E3%81%9B%E3%82%8B&#34;&gt;5. 自動的に起動させる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB&#34;&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;対象者&#34;&gt;対象者&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;会社のデータなのでGitHubに上げることができない&lt;/li&gt;
&lt;li&gt;1人もしくは小規模でGitを使用する&lt;/li&gt;
&lt;li&gt;専用サーバー機を用意してまで大それたことはしたくない&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;作るきっかけ&#34;&gt;作るきっかけ&lt;/h2&gt;
&lt;p&gt;現在のGitHubではプライベートリポジトリも無料でできますが、それでも社内ツールみないなものは上げたくないものです。&lt;br&gt;
一応ローカルにリモートリポジトリを作成自体はできるのですが、単純にリポジトリがあるだけなのでGitHubみたいにイシューやプルリクのような便利なものはありません。&lt;br&gt;
これを実現するにはGitLabみたいなのを使って専用サーバーをつくるできるのですが、それはしんどい。そんな大それたことはしたくない。。。&lt;br&gt;
どうにか簡単にできないものかと調べていたところGiteaというものたどりついた&lt;br&gt;
で、少しいじってみたか滅茶苦茶簡単に作れたのでぜひ広まって欲しいと思い記事にしました。&lt;/p&gt;
&lt;h2 id=&#34;giteaとは&#34;&gt;Giteaとは&lt;/h2&gt;
&lt;p&gt;特徴として&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gitHubライクなサイトを作成できる→&lt;a href=&#34;https://try.gitea.io/&#34;&gt;サンプル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ローカルサーバー内で完結できる&lt;/li&gt;
&lt;li&gt;SQLite3に対応しているので手軽&lt;/li&gt;
&lt;li&gt;軽い。ラズパイでも余裕らしい。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;があります。&lt;/p&gt;
&lt;p&gt;恐らくこの手のもので一番有名なのはGitLabですが、あれはアカウントが必要でスペックも結構必要な感じで自分もあきらめていましたが、&lt;br&gt;
これなら誰かがホストになればわざわざ専用サーバーを用意しなくてもよさそうな感じです。&lt;br&gt;
手軽にできるので1人Gitしてる方にもオススメです&lt;/p&gt;
&lt;h2 id=&#34;giteaを使って構築してみる&#34;&gt;Giteaを使って構築してみる&lt;/h2&gt;
&lt;h3 id=&#34;1-前準備&#34;&gt;1. 前準備&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Gitのインストール&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://support.eonet.jp/connect/net/multi_bbr/eo-rt100/quick/ip_static_win10.html&#34;&gt;IPアドレスを固定&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;はここでは解説しませんが、各自やっておいてください。&lt;/p&gt;
&lt;h3 id=&#34;2-giteaをdlする&#34;&gt;2. GiteaをDLする&lt;/h3&gt;
&lt;p&gt;本題のGiteaほうですが、&lt;a href=&#34;https://dl.gitea.io/gitea&#34;&gt;ここから&lt;/a&gt;DLしてください。&lt;br&gt;
この記事を書いているときは1.13.5がCurrent Releaseだったのでこれの&lt;code&gt;gitea-1.13.5-windows-4.0-amd64.exe&lt;/code&gt;を選びました。&lt;br&gt;
DLできたらDBを保存するディレクトリに移動させてください。&lt;br&gt;
ここではわかりやすく&lt;code&gt;C:\gitea&lt;/code&gt;として説明します。&lt;br&gt;
またファイル名が長いので&lt;code&gt;gitea.exe &lt;/code&gt;にリネームしておきます&lt;/p&gt;
&lt;h3 id=&#34;3-giteaを起動してみる&#34;&gt;3. Giteaを起動してみる&lt;/h3&gt;
&lt;p&gt;といっても以下のコマンドを実行するだけです。&lt;br&gt;
コマンドプロンプト&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; C:\gitea
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;gitea.exe ./gitea web
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これだけでローカルサーバーに作成されています。&lt;br&gt;
&lt;a href=&#34;http://localhost:3000/&#34;&gt;http://localhost:3000/&lt;/a&gt;にアクセスしてます。&lt;/p&gt;
&lt;p&gt;たったこれだけでできてしました。簡単すぎる…&lt;/p&gt;
&lt;h3 id=&#34;4-初期設定を行う&#34;&gt;4. 初期設定を行う&lt;/h3&gt;
&lt;p&gt;右上の登録ボタンを押すと初期設定が行えます。&lt;br&gt;
データベースはお手軽に扱える&lt;code&gt;SQLite3&lt;/code&gt;を選択、サイトタイトルやリポジトリパスはお好みで&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/gitea/001.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;複数のPCで使うのであれば&lt;code&gt;SSHサーバーのドメイン&lt;/code&gt;はコンピューター名&lt;br&gt;
&lt;code&gt;GiteaのベースURL&lt;/code&gt;は&lt;code&gt;http://&amp;lt;コンピューター名&amp;gt;:3000/&lt;/code&gt;にしておくのが無難です。&lt;br&gt;
コンピューター名は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;hostname
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でわかります。&lt;/p&gt;
&lt;p&gt;オプション設定ですが、ローカルで使うのであればメール設定とサーバーと外部サービスの設定の項目は飛ばしていいでしょう。&lt;br&gt;
最後に管理者アカウントの設定でユーザー名、パスワード、メアドを設定してください。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;giteaをインストール&lt;/code&gt;ボタンを押します。
先ほど設定した管理者アカウントでログインできたら初期設定完了です。&lt;/p&gt;
&lt;p&gt;あとはGitHubと同じように右上にある＋ボタンでリポジトリ作成してみてテストしてみてください。&lt;br&gt;
GitHubと同じ感覚でクローン、プッシュ、プルリクなどができます。&lt;br&gt;
それと他のPCからアクセスできるかも試してください。&lt;br&gt;
できない場合は大抵はファイアウォールのせいです。&lt;code&gt;gitea.exe&lt;/code&gt;のローカルもしくはドメイン間だけ通信許可を出せば他のPCでも見れるようになると思います。&lt;br&gt;
ローカルで使うならHTTPS化もしません。ローカルサーバに入られたり、ホストのPCになにか仕掛けられないかぎり問題なし。&lt;/p&gt;
&lt;p&gt;なお、Gitのプロキシ設定で対象を指定せずに使うとGiteaのリポジトリにアクセスできません。&lt;br&gt;
.gitconfigで特定のURLのみプロキシを通すようにします。&lt;/p&gt;
&lt;p&gt;GitHubでのみプロキシを使う場合は以下のように書きます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;[http &amp;#34;https://github.com/&amp;#34;]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;    &lt;span class=&#34;na&#34;&gt;proxy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;プロキシURL&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;[https &amp;#34;https://github.com/&amp;#34;]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;    &lt;span class=&#34;na&#34;&gt;proxy&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;プロキシURL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;5-自動的に起動させる&#34;&gt;5. 自動的に起動させる&lt;/h3&gt;
&lt;p&gt;環境はできたけど毎回パソコン起動するたびに&lt;code&gt;./gitea web&lt;/code&gt;とするのは面倒なので起動時に自動的に開始されるようにします。&lt;/p&gt;
&lt;p&gt;といっても&lt;a href=&#34;https://docs.gitea.io/en-us/windows-service/&#34;&gt;公式&lt;/a&gt;に記載しているとおりにやるだけです。&lt;/p&gt;
&lt;p&gt;まず、&lt;code&gt;C:\gitea\custom\conf\app.ini&lt;/code&gt;にあるファイルを開き&lt;code&gt;RUN_USER =&lt;/code&gt;の値をコンピュータ名にします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;RUN_USER&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;コンピュータ名&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次にコマンドプロンプトを&lt;strong&gt;管理者&lt;/strong&gt;で起動します
ここで、gitea.exeがあるパスとapp.iniがあるパスを指定します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sc.exe create Gitea start= auto binPath= &lt;span class=&#34;s2&#34;&gt;&amp;#34;\&amp;#34;&lt;/span&gt;C:\gitea\gitea.exe\&lt;span class=&#34;s2&#34;&gt;&amp;#34; web --config \&amp;#34;&lt;/span&gt;C:\gitea\custom\conf\app.ini&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem [SC] CreateService SUCCESS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でSuccessが出たら登録完了です。
早速起動してみましょう。&lt;br&gt;
「Windows」キーを押しながら「R」キーで「ファイル名を指定して実行」→&lt;code&gt;services.msc&lt;/code&gt;の入力するとサービス一覧がでます。&lt;br&gt;
そこから先ほど登録したGiteaの項目があるのでクリックして&lt;code&gt;開始&lt;/code&gt;ボタンを押すと起動します。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/gitea/002.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;これでいちいち&lt;code&gt;./gitea web&lt;/code&gt;しなくても見れるようになりました。&lt;/p&gt;
&lt;p&gt;ちなみに登録削除する場合は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sc.exe delete Gitea 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;です。&lt;/p&gt;
&lt;h2 id=&#34;おわりに&#34;&gt;おわりに&lt;/h2&gt;
&lt;p&gt;ローカルでGitHubと同じ感覚でリポジトリが見れるのはやっぱりいいですね、しかもこっちはちゃっかり日本語化されてるし。&lt;br&gt;
そしてこんなのが気軽に作れてしまう。最近は本当に便利な世の中だなと思う。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>Git チートシート</title>
      <link>https://sakuya712.github.io/post/gitcheatsheet/</link>
      <pubDate>Sat, 13 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/gitcheatsheet/</guid>
      <description>
        
          &lt;p&gt;たまにしか使わないやつのメモ&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%82%B5%E3%83%96%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%94%E3%81%A8clone%E3%81%99%E3%82%8B&#34;&gt;サブモジュールごとCloneする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%82%B5%E3%83%96%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E4%B8%80%E9%83%A8%E3%81%A0%E3%81%91%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B&#34;&gt;サブモジュールの一部だけを利用する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%82%B5%E3%83%96%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E6%9C%80%E6%96%B0%E3%81%AB%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B&#34;&gt;サブモジュールの最新に更新する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B&#34;&gt;リモートリポジトリ(フォルダ)を作成する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89%E5%A4%89%E6%8F%9B%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E8%A8%AD%E5%AE%9A&#34;&gt;改行コード変換を無効にする(ローカル設定)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E9%81%8E%E5%8E%BB%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99&#34;&gt;過去のファイルを取り出す&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;サブモジュールごとcloneする&#34;&gt;サブモジュールごとCloneする&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;--recursiveをつけるとサブモジュールも一緒にCloneできる&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git clone --recursive [リポジトリ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;サブモジュールの一部だけを利用する&#34;&gt;サブモジュールの一部だけを利用する&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;sparse checkoutを使って一部しかみないようにする&lt;/li&gt;
&lt;li&gt;submoduleするときはブランチを指定する方がいい。dll参照のときなんかはmasterでいいと思う&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem サブモジュール追加&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;git submodule add -b [ブランチ名] [参照リポジトリ]
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem sparse checkoutをサブモジュールで適用する&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;git -C [参照フォルダ] config core.sparsecheckout true
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem 設定を.git内に書き込む&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; [残したいファイル、ディレクトリ] &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; .git/modules/[参照フォルダ]/info/sparse-checkout 
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem ツリー情報を再読み込みする&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;git -C [参照フォルダ] read-tree -mu HEAD
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;サブモジュールの最新に更新する&#34;&gt;サブモジュールの最新に更新する&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git submodule foreach git pull origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;リモートリポジトリフォルダを作成する&#34;&gt;リモートリポジトリ(フォルダ)を作成する&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHubなど使わず、共有フォルダなどにリモートリポジトリを作成したい場合は、--bare --sharedをつけると作成できる&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git init  [フォルダ名].git --bare --shared
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;改行コード変換を無効にするローカル設定&#34;&gt;改行コード変換を無効にする(ローカル設定)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;このリポジトリだけ改行コード変換を無効にしたい場合&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git config --local core.autocrlf false
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;過去のファイルを取り出す&#34;&gt;過去のファイルを取り出す&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;全部取り出す場合はarchiveを使う&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git archive [コミットIDなど] -o [ファイル名].zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;差分だけ出したい場合はdiffを使う&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git diff --name-only --diff-filter=d [コミットIDなど1] [コミットIDなど2]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
        
      </description>
    </item>
    
    <item>
      <title>10分で静的サイトを作成する【Hugo&#43;GitHub Pages】</title>
      <link>https://sakuya712.github.io/post/hugogithubpages/</link>
      <pubDate>Thu, 11 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/hugogithubpages/</guid>
      <description>
        
          &lt;p&gt;手軽にサイトが作れる。しかも無料&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#hugo%E3%81%A8%E3%81%AF&#34;&gt;Hugoとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#github-pages%E3%81%A8%E3%81%AF&#34;&gt;GitHub Pagesとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E5%AE%9F%E9%9A%9B%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&#34;&gt;実際に作成してみる&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#1-hugo%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&#34;&gt;1. Hugoをインストール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#2-github%E3%81%AB%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B&#34;&gt;2. GitHubにリポジトリを作成する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#3-%E5%88%9D%E6%9C%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92github%E3%81%AB%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%81%99%E3%82%8B&#34;&gt;3. 初期ファイルをGitHubにプッシュする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#4-%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B&#34;&gt;4. テーマを適用する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#5-%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%99%E3%82%8B&#34;&gt;5. デプロイする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#6-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B&#34;&gt;6. カスタマイズする&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;hugoとは&#34;&gt;Hugoとは&lt;/h2&gt;
&lt;p&gt;Hugoは静的サイトを簡単に自動生成してくれるツールである。&lt;br&gt;
こいつのいいところは&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markdownだけで記事が書ける(HTMLの知識不要)&lt;/li&gt;
&lt;li&gt;Goを使っているので生成が滅茶苦茶早い →&lt;a href=&#34;https://forestry.io/blog/hugo-vs-jekyll-benchmark/&#34;&gt;Jekyllとの比較&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;テーマが公開されており、簡単にそれらを試すことができる&lt;/li&gt;
&lt;li&gt;無料&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;とくに自分的には&lt;code&gt;Markdownだけで記事が書ける&lt;/code&gt;点はすごく気に入っています。&lt;br&gt;
自分はHTMLやCSSのフロント側の知識は皆無なので1から作成することはできないし、従来からあるブログ形式やワードプレスだと、管理画面で記事を書く感じになるので気軽に記事を書けないという欠点がありました。&lt;br&gt;
しかし、このツールだとMarkdownでいいのでエディタさえあればとりあえず記事を書けるという気軽さがあります。ソース管理はGitHubで行います。静的サイトならこれで十分ですね。&lt;/p&gt;
&lt;h2 id=&#34;github-pagesとは&#34;&gt;GitHub Pagesとは&lt;/h2&gt;
&lt;p&gt;GitHub PagesとはGitHubが提供している静的サイトのホスティングサービスです。&lt;br&gt;
このGitHub Pagesには2種類あり、ユーザ(組織アカウント)用のページとプロジェクト用のページがあります。&lt;/p&gt;
&lt;p&gt;ユーザ用は&lt;br&gt;
https://[USERNAME].github.io/&lt;br&gt;
のようなURLになり、&lt;code&gt;[USERNAME].github.io&lt;/code&gt;というリポジトリを作成すると自動的にページを作成してくれます。&lt;br&gt;
※[USERNAME]は自分のID名が入ります&lt;/p&gt;
&lt;p&gt;プロジェクト用は&lt;br&gt;
https://[USERNAME].github.io/[リポジトリ名]/&lt;br&gt;
のようなURLになり、プロジェクト名は自由でリポジトリの数だけ作成できます。&lt;/p&gt;
&lt;p&gt;今回は、ユーザ用のページで作成します。&lt;br&gt;
理由としては、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロジェクト用は課金しないと、ソースコードが丸見え&lt;/li&gt;
&lt;li&gt;[リポジトリ名]が入るため階層が深くなり、設定を弄る必要がある。(ドメイン取得すれば解決できるが)&lt;br&gt;
があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザ用でも&lt;code&gt;[USERNAME].github.io&lt;/code&gt;のリポジトリ自体は丸見えなのですが、ここにはHugoで自動生成されたものだけを置き、実際のデータ管理はプライベートリポジトリで行うことができます。&lt;br&gt;
ファンサイトみたいなやつはプロジェクト用でもいいかもしれませんが、ブログとかはやっぱりプライベートにしたいですよね&lt;/p&gt;
&lt;h2 id=&#34;実際に作成してみる&#34;&gt;実際に作成してみる&lt;/h2&gt;
&lt;p&gt;以下、Windonws10の環境で行います。&lt;/p&gt;
&lt;h3 id=&#34;1-hugoをインストール&#34;&gt;1. Hugoをインストール&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/gohugoio/hugo/releases&#34;&gt;公式&lt;/a&gt;から最新の&lt;code&gt;hugo_0.XX.0_Windows-64bit.zip&lt;/code&gt;をDLして解凍、適当な場所に保存します。&lt;br&gt;
そしてそのフォルダの&lt;a href=&#34;https://www.atmarkit.co.jp/ait/articles/1805/11/news035.html&#34;&gt;Pathを通す&lt;/a&gt;だけです。&lt;/p&gt;
&lt;p&gt;コマンドプロンプトを起動して&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;hugo version
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でバージョンが返ってきたらインストール完了です。&lt;/p&gt;
&lt;h3 id=&#34;2-githubにリポジトリを作成する&#34;&gt;2. GitHubにリポジトリを作成する&lt;/h3&gt;
&lt;p&gt;まずGitHubに二つリポジトリを作成します&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ソースコードを管理するリポジトリ&lt;/li&gt;
&lt;li&gt;実際に公開するリポジトリ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まずソースコードを[管理するリポジトリ]を作成します。&lt;br&gt;
このリポジトリ名はなんでもいいです。&lt;br&gt;
プライベートでも問題ありません。
自分の例では以下のように作成しています。(プライベートなのでみれないと思いますが)&lt;br&gt;
&lt;a href=&#34;https://github.com/sakuya712/sakunote&#34;&gt;https://github.com/sakuya712/sakunote&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;次に実際に[サイトとして公開するリポジトリ]を作成します。&lt;br&gt;
このリポジトリは先ほどのとおり&lt;code&gt;[USERNAME].github.io&lt;/code&gt;というリポジトリを作成します。&lt;br&gt;
こちらをプライベートにしたい場合は課金が必要です。&lt;br&gt;
それと、リポジトリ作成時にREADMEを作成するようにしてください。&lt;br&gt;
(あとの工程で空っぽのリポジトリだとエラーになるため)&lt;br&gt;
自分の場合は以下のようになっています。&lt;br&gt;
&lt;a href=&#34;https://github.com/sakuya712/sakuya712.github.io&#34;&gt;https://github.com/sakuya712/sakuya712.github.io&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;3-初期ファイルをgithubにプッシュする&#34;&gt;3. 初期ファイルをGitHubにプッシュする&lt;/h3&gt;
&lt;p&gt;まず適当にコマンドで作業ファイルに移動して以下のコマンドを打つ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;hugo new site myblog
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでHugoの初期ファイルが生成されます。&lt;/p&gt;
&lt;p&gt;生成したディレクトリに移動して、リポジトリを作成、ソースコード管理のリモートリポジトリをセットします。&lt;br&gt;
自分の場合では、&lt;code&gt;git remote add origin git@github.com:sakuya712/sakunote.git&lt;/code&gt;です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; myblog
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;git init
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;git remote add origin [ソースコード管理のリポジトリ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;リモートリポジトリをセットできたら初期ファイルをコミットして、プッシュしてください。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git add -A
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;first commit&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;git push origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次にサイトとして公開するリポジトリを以下のようにして参照関連つけします。&lt;br&gt;
自分の場合は&lt;code&gt;git@github.com:sakuya712/sakuya712.github.io.git&lt;/code&gt;です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git submodule add [サイトとして公開するリポジトリ] public
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(※このとき、リポジトリ作成時のREADMEがないとエラーになる)&lt;br&gt;
ここで最後の&lt;code&gt;public&lt;/code&gt;を忘れないようにしてください。このフォルダにはHugoで生成されたファイルが入ります。&lt;/p&gt;
&lt;p&gt;参照できたら&lt;code&gt;public&lt;/code&gt;フォルダに移動し、リポジトリを作成時のREADMEはもう要らないので削除。そしてコミットしてプッシュします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; public
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;git rm README.md
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;git add -A
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;set myPages submodule&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;git push origin master
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; ..\
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでリモートとローカルの関連付けができました。&lt;/p&gt;
&lt;h3 id=&#34;4-テーマを適用する&#34;&gt;4. テーマを適用する&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;公式サイト&lt;/a&gt;から使いたいテーマを探します。&lt;br&gt;
自分は&lt;a href=&#34;https://themes.gohugo.io/hugo-clarity/&#34;&gt;Clarity&lt;/a&gt;というものを使いました。&lt;br&gt;
殆どのテーマではそこからGitHubのページに飛べるので、そのリポジトリを関連付けをします。&lt;br&gt;
自分の場合は、&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git submodule add https://github.com/chipzoller/hugo-clarity themes/hugo-clarity
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;です。
大抵のテーマにはサンプルデータが用意されているので&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;robocopy /e /is .\themes\hugo-clarity\exampleSite\ .\
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でサンプルデータをコピーしてください&lt;/p&gt;
&lt;p&gt;このサンプルから最低限の変更が必要なのは&lt;code&gt;config.toml&lt;/code&gt;の&lt;code&gt;baseurl&lt;/code&gt;を自分のURLに変更することです。 &lt;br&gt;
自分の場合は以下のようにします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;baseurl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://sakuya712.github.io&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;テーマが適用されたかのテスト方法として&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;hugo server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で、ローカルサーバーを立てれます。&lt;br&gt;
&lt;a href=&#34;http://localhost:1313&#34;&gt;http://localhost:1313&lt;/a&gt;にアクセスして、テーマが適用さえていたら成功です。&lt;br&gt;
ローカルサーバーを閉じるときは[Ctrl+C]です&lt;/p&gt;
&lt;h3 id=&#34;5-デプロイする&#34;&gt;5. デプロイする&lt;/h3&gt;
&lt;p&gt;テーマが正常に適用できていると&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;hugo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と打つことで&lt;code&gt;public&lt;/code&gt;フォルダに実際にデプロイするHTMLなどが生成されます。&lt;/p&gt;
&lt;p&gt;毎回デプロイの作業は面倒なのでバッチファイルを作成します。&lt;br&gt;
このリポジトリは生成されたものをただアップしていくだけなのでコメントやブランチは適当です。&lt;br&gt;
Deploy.bat&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;echo&lt;/span&gt; off
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;rem hugoで生成されたファイルをコミットしてgithub.ioにプッシュする&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;hugo
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;%~dp0&lt;/span&gt;public
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;git add -A
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;time_tmp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%time: =0%&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;%date:/=%%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2%&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;8&lt;/span&gt;git commit -m &lt;span class=&#34;nv&#34;&gt;%now%&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;9&lt;/span&gt;git push origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このバッチファイルを含めて管理するリポジトリにプッシュします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;git add -A
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;template commit&amp;#34;&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;git push origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そして、先ほど作ったDeploy.batを走らせるとデプロイ完了。&lt;br&gt;
しばらくして、&lt;code&gt;https://[USERNAME].github.io/&lt;/code&gt;にアクセスするとページができています。&lt;/p&gt;
&lt;h3 id=&#34;6-カスタマイズする&#34;&gt;6. カスタマイズする&lt;/h3&gt;
&lt;p&gt;あとは、テーマの設定や素材の変更、サンプル記事を消して、自分の記事を追加するなどしてカスタマイズしてください。&lt;br&gt;
ファイル管理は、管理するリポジトリで自由におこなってください。&lt;br&gt;
サイトを更新したい場合は、Deploy.batを押すだけです。&lt;/p&gt;
&lt;p&gt;お疲れ様でした。&lt;/p&gt;
&lt;p&gt;次回は具体的なカスタマイズ方法を解説していきたい&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>Hyper-Vで簡単LAN内ファイル共有ファイル構築</title>
      <link>https://sakuya712.github.io/post/hypervshareserver/</link>
      <pubDate>Sun, 07 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/hypervshareserver/</guid>
      <description>
        
          &lt;p&gt;Windowsの共有フォルダとはおさらば&lt;/p&gt;
&lt;p&gt;目次&lt;/p&gt;
&lt;!-- @import &#34;[TOC]&#34; {cmd=&#34;toc&#34; depthFrom=1 depthTo=6 orderedList=false} --&gt;
&lt;!-- code_chunk_output --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BD%9C%E3%82%8B%E3%81%8D%E3%81%A3%E3%81%8B%E3%81%91&#34;&gt;作るきっかけ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E7%92%B0%E5%A2%83&#34;&gt;環境&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#hyper-v%E3%81%AE%E8%A8%AD%E5%AE%9A&#34;&gt;Hyper-Vの設定&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#hyper-v%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B&#34;&gt;Hyper-Vを有効にする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#os%E3%82%92%E5%85%A5%E6%89%8B%E3%81%99%E3%82%8B&#34;&gt;OSを入手する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#hyper-v%E3%81%A7%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B&#34;&gt;Hyper-Vで仮想環境を作成する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#os%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B&#34;&gt;OSをインストールする&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83os%E8%A8%AD%E5%AE%9A&#34;&gt;仮想環境OS設定&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E6%8E%A5%E7%B6%9A%E7%A2%BA%E8%AA%8D&#34;&gt;接続確認&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E6%96%B9%E6%B3%95&#34;&gt;バックアップ方法&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- /code_chunk_output --&gt;
&lt;h2 id=&#34;作るきっかけ&#34;&gt;作るきっかけ&lt;/h2&gt;
&lt;p&gt;いままではwindowsに標準搭載の共有フォルダ機能をつかっていたのだが、これがなにかの拍子で接続できなくなることがあった。&lt;br&gt;
以前はwindowsのアプデで設定が変わったのが原因だった。今回はルーターを変えた際に接続できなくってしまった。&lt;br&gt;
恐らく前の設定を持ち続けているのが原因だろうが、対処法がよくわからない。&lt;br&gt;
Windowsの共有システムはなにかと設定が多くてスマホやiPadとかでも接続が上手くいかない場合もあった。&lt;br&gt;
なので、いっそのこと共有するようなものは仮想環境の方に全部ぶち込もうという風結論ずけた。&lt;br&gt;
バックアップもエクスポートするだけでできるし。&lt;/p&gt;
&lt;h2 id=&#34;環境&#34;&gt;環境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows10 Pro build 1909 (Homeではできません)&lt;/li&gt;
&lt;li&gt;Intel Core i7 8700K&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;hyper-vの設定&#34;&gt;Hyper-Vの設定&lt;/h2&gt;
&lt;h4 id=&#34;hyper-vを有効にする&#34;&gt;Hyper-Vを有効にする&lt;/h4&gt;
&lt;p&gt;初期状態ではHyper-Vは有効になっていません。&lt;br&gt;
前準備として、UEFI/BIOS画面を開いてIntel VT／AMD-Vが有効化されているか確認する&lt;br&gt;
そのあとコントロールパネルからHyper-Vを有効にする&lt;/p&gt;
&lt;p&gt;→&lt;a href=&#34;https://www.atmarkit.co.jp/ait/articles/1806/25/news026.html&#34;&gt;参考サイト&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;有効化して、再起動すればコントロールパネルの管理ツールに&lt;code&gt;Hyper-V マネージャー&lt;/code&gt;が追加されている。&lt;/p&gt;
&lt;h4 id=&#34;osを入手する&#34;&gt;OSを入手する&lt;/h4&gt;
&lt;p&gt;なんでもいいのですが今回は容量軽い、メモリ使用量が少ないLinux Mint Mate版を使用します。&lt;br&gt;
→&lt;a href=&#34;https://www.linuxmint.com/download.php&#34;&gt;ダウンロード&lt;/a&gt;&lt;br&gt;
自分の環境ではなぜか画面がおかしくなっていたので&lt;a href=&#34;https://www.linuxmint.com/edition.php?id=276&#34;&gt;19.3版&lt;/a&gt;をダウンロードしました。&lt;/p&gt;
&lt;h4 id=&#34;hyper-vで仮想環境を作成する&#34;&gt;Hyper-Vで仮想環境を作成する&lt;/h4&gt;
&lt;p&gt;最初はネットワークの設定&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最初に仮想スイッチマネージャーを開く&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/001.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新しい仮想ネットワークの作成で、外部を選択で作成、適当に名前をつけてOKをする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/002.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;これは二回目以降はやる必要はありません。&lt;/p&gt;
&lt;p&gt;次に仮想マシンを作成します。 新規→仮想マシンを選択&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;適当に名前をつけて保存する場所を選択&lt;/li&gt;
&lt;li&gt;世代は第一世代を選択&lt;/li&gt;
&lt;li&gt;メモリは2GBにしてみた&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/003.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ネットワークは先ほど作成したネットを選ぶ&lt;/li&gt;
&lt;li&gt;ストレージは可変にするので後で設定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/004.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;とりあえず作成ウィザードは完了です。&lt;br&gt;
次に先ほど飛ばしたストレージを作成します。&lt;br&gt;
仮想マシン一覧から右クリックで設定を選んで、IDEコントローラを選ぶ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ハードドライブを選んだら追加を押す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/005.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フォーマットはVHDX&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/006.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;容量可変&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/007.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ストレージの保存場所&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/008.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ここでは容量を50GBとしてますが、実際のストレージのギリギリ限界まで作ってもいいと思います。可変にしているので最初からこのストレージを要求されません。&lt;/li&gt;
&lt;li&gt;ストレージ容量は後で変えることはできますが、パーテーションの再設定をしないといけないです。→&lt;a href=&#34;https://qiita.com/nakat-t/items/87d0ae049a5e0b57e469&#34;&gt;仮想HDDの容量を増やす方法&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/009.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最後にチェックポイントは残ると厄介なので、&lt;code&gt;自動チェックポイントを使用する&lt;/code&gt;を外しておきます。(バックアップはエクスポートでやる)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/010.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Hyper-V側の設定は終わりです。&lt;/p&gt;
&lt;h2 id=&#34;osをインストールする&#34;&gt;OSをインストールする&lt;/h2&gt;
&lt;p&gt;仮想マシン一覧から作成したマシンをダブルクリック新しいウインドウが表示されます。&lt;br&gt;
そこでメディア→DVDドライブ→ディスクの挿入でDLしておいたLinux mintのイメージファイルを選択します。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/011.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;そのあと起動ボタンを押すとLinux mintが立ち上がります。&lt;br&gt;
デスクトップが表示されたら成功です。&lt;br&gt;
ですがこの状態ではまだお試し版なので今度はインストールを行います
Install Linux Mintのアイコンをダブルクリック&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/012.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;キーボードを選択, 英語配列キーボードを使っている場合でもとりあえずはこれでOK&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/013.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;余計なものを入れたくないのでチェックを外す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/014.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一番を上のもの選ぶ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/015.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;地域はTokyo選択&lt;/li&gt;
&lt;li&gt;ユーザーを設定を行う&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここまで行うとOSのインストールが始まる。&lt;br&gt;
インストールが終わると一度シャットダウンします。&lt;/p&gt;
&lt;p&gt;メディア→DVDドライブ→ディスク取り出しして起動&lt;/p&gt;
&lt;p&gt;これでOSのインストールは完了&lt;/p&gt;
&lt;h3 id=&#34;仮想環境os設定&#34;&gt;仮想環境OS設定&lt;/h3&gt;
&lt;p&gt;まずいつものパッケージアップデート&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sudo apt update
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;sudo apt upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;英語配列のキーボードを使っている場合は右下のキーボードマーク右クリック設定&lt;br&gt;
以下のようなダイアログがでるので&lt;code&gt;＋ボタン&lt;/code&gt;を押して&lt;code&gt;キーボード 英語&lt;/code&gt;を選ぶ、そのあと&lt;code&gt;↑ボタン&lt;/code&gt;で&lt;code&gt;キーボード 英語&lt;/code&gt;の優先度を上げます。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/016.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/sakuya712/sakunoteImages/master/HyperV_LAN/017.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;ここでいよいよSambaをインストールする&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sudo apt install samba
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インストールが完了したら設定ファイルを開く&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;sudo nano /etc/samba/smb.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;そこから[global]の要素を見つけて&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;[global]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;dos charset&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;CP932&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;unix charset&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;UTF-8&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を追加する&lt;br&gt;
Windowsのワークグループ名変えている場合は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;workgroup&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;WORKGROUP&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を変更&lt;br&gt;
最終行まで行って以下のものを追加する&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;[share]&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;path&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;/home/share/&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;writable&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;yes&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;guest ok&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;yes&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;guest only&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;yes&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;crate mode&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;0777&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;directory mode&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;0777&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;誰でも書き込みOK、ゲストもOKという設定です。個人PC内の環境なので、セキュリティは考えてない&lt;br&gt;
書き終わったら、[Ctrl + S]で保存、[Ctrl + X]で閉じる&lt;/p&gt;
&lt;p&gt;共有フォルダを作成する&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# 共有フォルダ作成&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;sudo mkdir /home/share
&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# 共有できるように、ディレクトリの所有者、グループを変更&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;sudo chown nobody:nogroup /home/share/
&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# 誰でも読み書きできるようにする。&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;sudo chmod &lt;span class=&#34;m&#34;&gt;777&lt;/span&gt; /home/share/
&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# 適当にファイル作成&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;touch /home/share/test.txt
&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;# sambaを再起動&lt;/span&gt;
&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;sudo service smbd restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;おまけでシンボリックリンク(ショートカットカット)をデスクトップに作成&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; デスクトップ
&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;ln -s /home/share
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最後にIPアドレスを固定にする&lt;br&gt;
Linux Mintはwindowsと同じ感覚でIPを固定できます&lt;br&gt;
→&lt;a href=&#34;https://inakadeikinaosu.com/pc/ipadress_kotei/&#34;&gt;IPアドレスを固定にする方法(Linux Mint)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;再起動してIPアドレスが設定したものになったか確認する&lt;/p&gt;
&lt;h2 id=&#34;接続確認&#34;&gt;接続確認&lt;/h2&gt;
&lt;p&gt;WindowsではPCフォルダ右クリックで&lt;code&gt;ネットワークの場所を追加する&lt;/code&gt;を選び、
&lt;code&gt;\\[固定したプライベートIP]\share\&lt;/code&gt;を入力する。&lt;br&gt;
ユーザーとパスワードが聞かれるので、Linux Mint側で作ったアカウント情報を入れると接続できます。&lt;br&gt;
読み込み/書き込みができたら成功です。&lt;/p&gt;
&lt;p&gt;あとはこのフォルダの配下に共有したいファイルを入れていくだけです。&lt;br&gt;
お疲れ様でした。&lt;/p&gt;
&lt;h2 id=&#34;バックアップ方法&#34;&gt;バックアップ方法&lt;/h2&gt;
&lt;p&gt;バックアップは仮想マシン一覧からバックアップを取りたいものを右クリック→エクスポート&lt;br&gt;
保存先を入れれば完了です。&lt;br&gt;
逆に取り込みたい場合は&lt;code&gt;仮想マシンのインポート&lt;/code&gt;を行う。&lt;br&gt;
このエクスポートは自動化できるみたいなのでこれは別の記事で書きたいと思う。&lt;/p&gt;
        
      </description>
    </item>
    
    <item>
      <title>Hugoで作成してみた</title>
      <link>https://sakuya712.github.io/post/hugotest/</link>
      <pubDate>Sat, 06 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://sakuya712.github.io/post/hugotest/</guid>
      <description>
        
          &lt;p&gt;本当に簡単に作れる&lt;/p&gt;
&lt;h2 id=&#34;これすごい&#34;&gt;これすごい&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;gitとMarkdownの知識だけあればサイトが作れる&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;html、cssなどのフロントエンドの知識は不要&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;更新反映はgitにアップロードするだけ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ブログにはピッタリ&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ローカル環境では保存すれば瞬時にhtmlを生成&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ハイライトも好きなものから選べる。お気に入りのmonokaiも使える&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cs&#34; data-lang=&#34;cs&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/alecthomas/chroma&#34;&gt;対応言語もいっぱい&lt;/a&gt;&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/m-M1AtrxztU&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;
&lt;ul&gt;
&lt;li&gt;通常マークダウンではできない、youtubeとかも貼れる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;絵文字も使えるよ😄&lt;/p&gt;
        
      </description>
    </item>
    
  </channel>
</rss>
