kusaanko @wiki
http://w.atwiki.jp/kusaanko/
kusaanko @wiki
ja
2019-03-20T23:53:35+09:00
1553093615
-
Minecraftを第一世代のランチャー(旧ランチャー)で遊ぶ方法
https://w.atwiki.jp/kusaanko/pages/23.html
<p><img alt="" src="//img.atwikiimg.com/www65.atwiki.jp/kusaanko/attach/1/48/%E6%97%A7%E3%83%A9%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC.png" style="color:rgb(51,51,51);font-family:sans-serif, Arial, Verdana, 'Trebuchet MS';font-size:13px;background-color:rgb(255,255,255);width:859px;height:512px;" /></p>
<p>みなさんこんにちは、草あんこです。</p>
<p>最近CE(MOD名)とかMCAPI(MOD名)とかのお陰で1.2.5で遊びたいという方が増えてきました。</p>
<p>僕もそうです。ですが今は第一世代のランチャー(以下旧ランチャー)のダウンロードが公式サイトから行えません。</p>
<p>そこで僕が頑張って調べ尽くし、ついに2018/1/21時点で旧ランチャーの環境が作れるようになったので紹介します!</p>
<p><span style="font-size:22px;"><strong>これから紹介する手順は<a href="https://www.google.co.jp/chrome/browser/desktop/index.html">Google
Chrome</a>で行ってください。</strong></span></p>
<p>リンクをクリックするとGoogle Chromeのダウンロードリンクに飛べます。</p>
<p>多分SafariとかMicrosoft EdgeとかでもできるっちゃできるんでしょうがSafariは拡張子が消えると聞いたのでできればGoogle
Chromeのほうがいいと思います。ほかはやってないのでわかりませんが。とりあえずmacOSの方は注意ということです。</p>
<p>余談ですがみんなが第一世代って呼んでる上の画像のランチャーはWiki見たらわかりますが第三世代のランチャーなんですね。</p>
<p> </p>
<p>2019/03/12追記:</p>
<p>OldMCPatcherという<strong>公式ランチャー2.0以降専用のMOD</strong>を作りました。</p>
<p>公式ランチャー2.0以降で旧ランチャーと同様の動作をするように変えるMODです。詳しくは<a href="https://www.youtube.com/watch?v=OarWqDBFJto">こちら</a>を見てください。</p>
<p>つまり、<span style="font-size:28px;"><strong>旧ランチャーを手に入れなくても公式ランチャー2.0以降で遊べる</strong></span>というわけです。</p>
<p> </p>
<p>それでは旧ランチャーの環境を作っていきましょう!</p>
<p> </p>
<p><span style="font-size:22px;">1.ランチャーのダウンロード</span></p>
<hr /><p>ランチャーは下のリンクからダウンロードしてください。</p>
<p>2018/11/24時点でリンクはまだ残ってるみたいです。</p>
<p><a href="https://s3.amazonaws.com/MinecraftDownload/launcher/Minecraft.exe">Windows</a></p>
<p><a href="https://s3.amazonaws.com/MinecraftDownload/launcher/Minecraft.zip">Mac</a></p>
<p><a href="https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft.jar">Linux /
その他Javaが動くOS</a></p>
<p> </p>
<p><span style="font-size:22px;">2.LWJGLのダウンロード</span></p>
<hr /><p>LWJGLとは?</p>
<p>簡単に言えばマインクラフトを動かすのに必要な物。</p>
<p>ダウンロードは<a href="http://legacy.lwjgl.org/">こちら</a>から</p>
<p>
※macOSの方はLWJGL2.8.5、それ以外の方はLWJGL2.9.3をダウンロードしてください。動作確認はmacOS、Windowsのみ行っています。</p>
<p> </p>
<p><span style="font-size:22px;">3.minecraft.jarのダウンロード</span></p>
<hr /><p><a href="http://assets.minecraft.net/1_2_5/minecraft.jar">Minecraft
1.2.5</a></p>
<p><a href="http://assets.minecraft.net/1_3_2/minecraft.jar">Minecraft
1.3.2</a></p>
<p><a href="http://assets.minecraft.net/1_4_7/minecraft.jar">Minecraft
1.4.7</a></p>
<p><a href="http://s3.amazonaws.com/Minecraft.Download/versions/1.5.2/1.5.2.jar">Minecraft
1.5.2</a></p>
<p>新ランチャーで旧バージョンをダウンロードしている方は.minecraft/versions/バージョン/バージョン.jarを使ってもOKです。</p>
<p> </p>
<p><span style="font-size:22px;">4.Minecraftを起動させる準備</span></p>
<hr /><p>それではいよいよMinecraftを起動させていきます。</p>
<p>まず、すでに.minecraftがある方は.minecraftを別の場所に移動させましょう。そうしないと上書きされてしまいます。</p>
<p>そしたらダウンロードした旧ランチャーを起動させます。</p>
<p>そしたら一度ランチャーを閉じます。</p>
<p>そしたら%appdata%というフォルダへ行きます。行き方は自分で調べてください</p>
<p>そしたら.minecraftというフォルダがあるので、そこを開きます。</p>
<p>そしてbinというフォルダを作ります</p>
<p>その中にダウンロードしたLWJGLの中のjarの中のjinput.jar、lwjgl.jar、lwjgl_util.jarをコピーします。</p>
<p>
次にnativesというフォルダをbinの中に作ります。そしてその中にLWJGL/native/自分のOSのフォルダの中にあるファイルを全てコピーします。</p>
<p>
そしたらbinの中にダウンロードもしくはversionsの中のminecraft.jarを入れます。名前は必ずminecraft.jarにしてください。</p>
<p>そしたら<span style="font-size:22px;"><span style="color:#FF0000;">とても重要なファイル</span></span>を入れます。絶対にこれは忘れないでください。<span style="font-size:22px;"><span style="color:#FF0000;">起動できない原因</span></span>となります。</p>
<p>versionファイルを<a href="https://www.dropbox.com/s/vomgqt6p13olpg3/version?dl=0">こちら</a>のリンクからダウンロードしておいてください。</p>
<p> </p>
<p>binフォルダの中はこのようになっています。確認してください。</p>
<p><img alt="" src="//img.atwikiimg.com/www65.atwiki.jp/kusaanko/attach/23/51/bin%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC.png" style="width:111px;height:134px;" /></p>
<p> </p>
<p><span style="font-size:22px;">5.Minecraftを起動させる</span></p>
<hr /><p>旧ランチャーを起動します。</p>
<p><img alt="" src="//img.atwikiimg.com/www65.atwiki.jp/kusaanko/attach/1/48/%E6%97%A7%E3%83%A9%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC.png" style="width:859px;height:512px;" /></p>
<p>ここでUsernameを書きます。旧ランチャーは安全のためにログインができなくなりました。その為パスワードは入力しなくておkです。</p>
<p>そしてLoginを押します。Can't connect to minecraft.netと出ますが、ログインできない証拠です。</p>
<p>気にせずPlay Offlineを押しましょう。</p>
<p>Play Offlineが押せない!という方はversionファイルをダウンロードする作業をやり直してみてください。</p>
<p><img alt="" src="//img.atwikiimg.com/www65.atwiki.jp/kusaanko/attach/1/49/Minecraft1.2.5.png" style="width:855px;height:511px;" /></p>
<p>このように旧ランチャーで起動することができます。</p>
<p> </p>
<p><span style="font-size:22px;">オプション.自動でユーザー名を入力してくれるようにする</span></p>
<hr /><p>ここはやってもやらなくてもいいです。</p>
<p>さて、自動ログインができなくなったのでlastloginというファイルが作られなくなってしまいました。</p>
<p>その為遊ぶたびにUsernameを入力する必要があります。面倒ですね。</p>
<p>そこでlastloginファイルを作るアプリを作っておきました。</p>
<p>なぜアプリが必要かというとlastloginは暗号化されているからです。</p>
<p><a href="https://www.dropbox.com/s/qv7i94qknru306u/MLEC.jar?dl=0">こちら</a>からダウンロードしてください。</p>
<p>そしたらダウンロードしたファイルのあるところでコマンドプロンプトとか端末とかターミナルを開いてください(開いてからcdで移動でも可)</p>
<p>そして以下のコマンドを入力します</p>
<p>java -jar MLEC.jar ユーザー名</p>
<p>これを実行すると、MLEC.jarのあるフォルダにlastloginというファイルができるはずです。</p>
<p><img alt="" src="//img.atwikiimg.com/www65.atwiki.jp/kusaanko/attach/23/53/MLEC.png" style="width:593px;height:184px;" /></p>
<p>それを.minecraftに入れます。</p>
<p>そしたら次からはUsernameを入力しなくて良くなります。</p>
<p>実行できないという人はjavaのパスを通す作業をしてください。</p>
<p> </p>
<p>よき旧ランチャーMinecraftライフを!</p>
<p> </p>
<p>※コメントでの質問は受け付けていません。お問い合わせより質問をお願いします。</p>
2019-03-20T23:53:35+09:00
1553093615
-
トップページ
https://w.atwiki.jp/kusaanko/pages/1.html
**基本的に自作MODの解説をしていきます!
-&big(){&big(){&bold(){ [[草あんこMOD解説]] }}}
-&big(){&big(){&bold(){ [[草あんこCraftBukkit解説]] }}}
-&big(){&big(){&bold(){ [[Minecraftを第一世代のランチャー(旧ランチャー)で遊ぶ方法]] }}}
2018-06-20T18:32:50+09:00
1529487170
-
メニュー
https://w.atwiki.jp/kusaanko/pages/2.html
**メニュー
-[[トップページ]]
-[[草あんこMOD解説]]
-[[草あんこCraftBukkit解説]]
-[[Minecraftを第一世代のランチャー(旧ランチャー)で遊ぶ方法]]
----
**リンク
-[[@wiki>>http://atwiki.jp]]
-[[@wikiご利用ガイド>>http://atwiki.jp/guide/]]
このページの今日の訪問者数
&counter(today)
このページの昨日の訪問者数
&counter(yesterday)
このページの合計訪問者数
&counter(total)
// リンクを張るには "[" 2つで文字列を括ります。
// ">" の左側に文字、右側にURLを記述するとリンクになります
//**更新履歴
//#recent(20)
2018-06-20T18:30:31+09:00
1529487031
-
CustomFoods特殊設定チュートリアル
https://w.atwiki.jp/kusaanko/pages/20.html
&bold(){このページは[[CustomFoods]]を読んでいることを前提に解説していきます。}
&bold(){特殊設定はすべてJavaScriptで書きます。これはプログラムというものです。プログラムがわからない場合は初級編から徐々に理解していきましょう。}
CraftBukkit/Spigotプラグインを作っている方なら読む必要は&bold(){あまり}ないと思います。
全てを読むには少し根気が必要です。なぜなら、&bold(){このページにはあまり画像がない}からです。
素早く理解するには&bold(){Javaというプログラムを少し理解しておくといいでしょう。}
目次
#region
初級編
応用編
よく使うクラスの解説
#endregion
&bold(){&big(){&big(){初級編}}}
----
目次
#region
はじめに
Objectの利用
変数の利用
プレイヤーにメッセージを送信してみる
プレイヤーにポーション効果を付与してみる
ランダムな数を使おう
if文を使ってみよう
繰り返し文を使ってみよう
ブロックをクリックした時にそのブロックの情報を得よう
#endregion
まず、名前.jsで設定したファイルのサンプルを見てみましょう。
ID="BREAD";
name="サンプルフード";
lore="サンプルのためのアイテム。,§c色も変えれる。";
hunger=2;
saturation_hunger=1;
action="1";
こうなっています。
さて、プレイヤーがクリックしたかつactionが一致した際に呼ばれるイベントを紹介します。
これをjsに追加することでイベントの追加ができます。
eat=function(player,block,event) {
ここにプログラム
}
さて、これだけでは右クリックしても何も起こりません。
試しに「食べる」という動作を書いてみましょう。
eat=function(player,block,event) {
eating(player);
}
これで「食べる」という動作ができます。
ちなみに初期状態(この文を書かない)ではこれが設定してありません。
functionとは、関数というものを作るときのお決まり文です。関数の説明は割愛。
ちなみにこの{}内では最初のカッコにあるplayerとblockという変数が利用できます。
変数とは、PCのメモリーにデータを一時的に保存しておくものです。
ちなみにこのカッコ内には引数とよばれるものが入っています。
よく出てくるので覚えておきましょう。
それでは「eating(player);」の解説をします。
実は自分で書いていないだけですでに
function eating(player) {
if(player.getGameMode()!=gm_survival&&player.getGameMode()!=gm_adventure) {return;}
player.getItemInHand().setAmount(player.getItemInHand().getAmount()-1);
player.setSaturation(player.getSaturation()+saturation_hunger);
if(player.getFoodLevel()<player.getSaturation()) {player.setSaturation(player.getFoodLevel());}
if(player.getFoodLevel()<20) {player.setFoodLevel(player.getFoodLevel()+hunger);}}
}
という関数が追加されています。
引数にはplayerが設定してあります。
さて、おそらく全く理解できないと思います。処理をすべて日本語に変えてみましょう。
もし、プレイヤーがサバイバルでもアドベンチャーでもなかったら、この処理を終了する。
(この行以降はゲームモードがサバイバルかアドベンチャーの時にのみ実行される。)
プレイヤーの今持っているアイテムを1つ減らす。
プレイヤーの隠し満腹度を現在の隠し満腹度+このアイテムの隠し満腹度に設定。
もし、プレイヤーの満腹度より隠し満腹度が多ければ、隠し満腹度を満腹度と同じに設定。
もし、プレイヤーの満腹度が20以下だったら、プレイヤーの満腹度を現在の満腹度+このアイテムの満腹度に設定。
となっています。
-&bold(){&big(){初級チュートリアルの前に}}
さて、いよいよプログラミングの開始です。
と、その前にサンプルプログラムを見てもらいましょう。
ID="BREAD";
name="サンプルフード";
lore="サンプルのためのアイテム。,§c色も変えれる。";
hunger=2;
saturation_hunger=1;
action="1";
eat=function(player,block,event) {
}
eating(player);は書かなくても処理は実行出来るので、書くかどうかは自由にしてください。
また、これから紹介するプログラムは
eat=function(player,block,event) {
}
この{}の中に書いてください。また、プログラムのルールとして
一文の中で改行しない。
ea tin g(pla yer);のように途中で空白を入れない。
eating(
player
);
のように、一文以外であれば改行はしてよい。
eat=function(player,block) {eating(player);}
と、一行で書いてもよい。
FunctionやFUNCTIONのように、大文字小文字を変えないこと。
文の最後に;をつけ忘れないこと。{}には不要。
-&bold(){&big(){Objectの利用}}
文字列は「String」
数字は「int」
小数点を含む数字は「double」
といった感じにObjectというものが設定してあります。
それぞれ、決まった書き方があります。
文字列であれば"で囲む、
数字であれば小数点を使わない、
小数点を含む数字であれば最後にdをつけるなど
いろいろあります。
では、playerはなんのObject何でしょうか?
正解は「越後製菓」ではなく「Player」です。
実はPlayerというのはJavaScriptには存在しません。では、Playerとはいったい何者なんでしょうか。
実はこれ、&bold(){自作Object}何です。
そうです。Objectだって自作できてしまうんです。
ですがJavaScriptに元から入っていないObjectには"で囲んだりするだけでは生成されません。
そこでnew Test()とすることでTestというObjectが作れます。
この生成したObjectは、この後紹介する変数に保存することができます。
-&bold(){&big(){変数の利用}}
さて、playerやblockは変数と紹介しましたが、変数は自分で作ることもできます。
なにか一時的に保存しておきたいものがあればこれを利用すればいいでしょう。
var name;
これでnameという変数ができます。
ちなみに初期値というものが設定でき、
var name = "初期値";
こうすることで、初期値というStringが入ったnameが出来上がりました。
それ以外にも
var test = new Test();
とすれば、testに新品のTestオブジェクトの入った変数ができました。
また、変数はそれを書いた行以降、同じ{}内であればどこからでも利用できます。ただし、
&bold(){&big(){決して同じ名前の変数を使わないこと。}}
もちろん、とある変数の使えないところ(var nameとは違う{}の中など)であれば同じ名前でもOKです。
そして、この変数を使うには
name
と書くだけです。これでnameが"初期値"に置き換わったと思ってください。
ちなみにeat=function(player,block)
のplayerとblockはここが実行される時にそれぞれプラグイン側で生成されて、その変数がここにコピーされます。
そしてプラグイン側にあったものと同じものが使える、ということです。
-&bold(){&big(){プレイヤーにメッセージを送信してみる}}
player.sendMessage("食べ物を食べました。");
こうすればクリック時にプレイヤーにチャットが出力されます。また、
"食べ物"+"を"+"食べました。"
のように、+で""を結合して書くこともできます。
-&bold(){&big(){プレイヤーにポーション効果を付与してみる}}
これこそCustomFoodsを入れた理由ではないでしょうか。
食べたときにいろんなポーション効果が付与される。なんて食べ物を追加したかったのでは?
それでは伝授しましょう。&bold(){プラグインを作ったことのある方も必ず見て見てください。}
player.addPotionEffect(new org.bukkit.potion.PotionEffect(org.bukkit.potion.PotionEffectType.HUNGER, 10*20, 20));
これでプレイヤーに空腹を10秒間20レベルで実行できます。
なんだか急に難しくなったような気がしますか?では、解説を見てみましょう。
player.addPotionEffect();
ここでプレイヤーにポーションを追加します。ですがこれだけでは何のポーションか、時間やレベルなどが設定されていません。
なのでその情報を得るため、addPotionEffectに引数を渡してあげる必要があります。
new org.bukkit.potion.PotionEffect(org.bukkit.potion.PotionEffectType.HUNGER, 10*20, 20)
これがポーションデータです。最初のnew org.bukkit.potion.PotionEffectでポーションデータを生成します。
もちろんこの子にも引数を渡します。
org.bukkit.potion.PotionEffectType.HUNGER, 10*20, 20
org.bukkit.potion.PotionEffectTypeにはポーションID&bold(){のようなもの}が入っています。&bold(){のようなもの}なので代わりに数字を入力したりは禁止です。
ちなみに.でそのObject内の変数などが使えます。今回は空腹なのでHUNGERですね。今後紹介するPotionEffectTypeに全てのポーションを記入するのでそれに応じてHUNGERの部分を変更してください。
10*20
ここでは、時間の設定です。マイクラのTick数を設定するので10秒*20Tickで10秒になります。
*は乗数です。コンピューターはこういう計算が得意です。嫌がることはありません。
11-1とすれば10になります。
20
ここでは普通にレベル指定です。
&bold(){&big(){ここでプラグイン経験のある方にお知らせ。}}
new PotionEffectのようにインポートした状態で記入はできません。なぜならインポートがされていないからです。インポートを使いたいなら
importPackage(org.bukkit.potion.PotionEffect);
と記入してください。これがjava.script.ScriptEngineの特徴です。
-&bold(){&big(){ランダムな数を使おう}}
ランダムな数を使ってたまに毒になるなんてことをやりたくないですか?
もちろん、CustomFoodsならできます。
今回はランダムな数を作るだけなのでそのほかの物を見たり応用編を見たりして用途を考えてみてください。
Math.floor( Math.random() * 5 ) ;
これで、0-4の数字がランダムに作られます。
var rand = Math.floor( Math.random() * 5 ) ;
このようにして変数に保存しておくと便利かも。
-&bold(){&big(){if文を使ってみよう}}
if文とは、条件文とも言い、もし~ならば○○を実行といった感じにできます。
CustomFoodsでもプログラムでもよく使うので覚えておきましょう。
if(条件) {プログラム}
このように書きます。また、
if(条件) {
プログラム
}
でもOKです。
さて、条件にはbooleanというtrueとfalseの値を入れることのできるObjectを使います。
trueならプログラムを実行、falseならプログラムはスルーという感じです。
var IF = true;
if(IF) {プログラム}
こうすることでif文にはtrueがあるので、プログラムは実行されます。
ですがこれではifを使う必要はありません。そこで、あるObjectとあるObjectを比較してみます。
var IF1 = true;
var IF2 = false;
if(IF1==IF2) {プログラム}
このように書けば、IF1とIF2を比較し、同じであればプログラムを実行することができます。
では、プログラムは実行されると思いますか?
IF1とIF2は違うのでプログラムは実行されません。
では、==とはどういう意味でしょうか?
これは、左の値、右の値が同じだったらtrue、違うのであればfalseになります。
他にもあるのでリストを見てみましょう。
|文字|trueになる条件|使い方|
|==|左の値と右の値が同じ|Object==Object|
|!=|左の値と右の値が違う|Object!=Object|
|>|左の値が右の値より大きい|数字(小数点可)>数字(小数点可)|
|<|左の値が右の値より小さい|数字(小数点可)<数字(小数点可)|
|>=|左の値が右の値より大きいか同じ|数字(小数点可)>=数字(小数点可)|
|<=|左の値が右の値より小さいか同じ|数字(小数点可)<=数字(小数点可)|
こうなっています。
ここで問題。
if(1>0) {
if(5>10) {
}
}
このように書くのは面倒じゃないですか?ここで登場するのが&&。
if(1>0&&5>10) {
}
こうすれば、if文の中のすべての条件がtrueだったら実行になります。
ほかにも
if(1>0||5>10) {
}
このように||があります。これは、このうちのどれかがtrueならプログラムが実行されます。
また、
if(1>0||5>10&&3<5||8>=4) {
}
このように&&を使えば、&&より左側の条件どれかがtrue、右側もtrueだったら実行となります。
-&bold(){&big(){繰り返し文を使ってみよう}}
繰り返し文は特定のプログラムを繰り返し実行できる物です。
繰り返し分には2つあり、
while
for
の二つあります。
それぞれ便利なことがあるので見ていきましょう。
-while文の特徴
-メリット
短く出来る。
-デメリット
何回繰り返すというのが作りにくい
-for文の特徴
-メリット
何回繰り返すというのが簡単にできる。
-デメリット
whileより長くなってしまう。
それぞれ使い方を見てみましょう。
while(条件) {}
for(変数初期化;条件;変数の処理) {}
whileは条件にifと同じように書きます。簡単ですね。
難しいのはfor文です。少しずつ理解していきましょう。
使用例はこちら
for(var i = 0;i < 5;i++) {}
このように、最初に関数、次にifと同じ条件、ループが終わるたびに行う処理となります。
ちなみにこれは{}内を5回繰り返すものになります。
-&bold(){&big(){ブロックをクリックした時にそのブロックの情報を得よう}}
クリックしたブロックを得るにはactionを
action="2,4";
のように2か4を設定してください。
そうすると正しくblock変数にクリックしたブロックの情報を得ることができます。
試しにプレイヤーに情報を送信してみます。
player.sendMessage(block.toString());
これで情報が送信されます。Blockオブジェクトには他にも便利なものがあるのでよく使うクラスの解説を見てください。
&bold(){&big(){&big(){応用編}}}
----
目次
#region
はじめに
毒リンゴ
骨付きビーフ
3x3x3採掘ツルハシ
#endregion
-&bold(){&big(){はじめに}}
これから紹介するプログラムはあまり紹介をしません。自分で解読してください。
-&bold(){&big(){毒リンゴ}}
食べるとたまに毒にかかる毒リンゴを作ります。
ID="SLIME_BALL";
name="§f毒りんご";
lore="青森産の味がする";
hunger=3;
saturation_hunger=1;
eat=function(player,block) {
var rand = Math.floor( Math.random() * 5 ) ;
if(rand==2) {
player.sendMessage("毒にかかった!");
player.addPotionEffect(new org.bukkit.potion.PotionEffect(org.bukkit.potion.PotionEffectType.POISON, 3*20, 2));
}
eating(player);
}
-&bold(){&big(){骨付きビーフ}}
食べると骨が帰ってくるビーフを作ります。
ID="COOKED_BEEF";
name="§f骨付きビーフ";
lore="食べると骨が帰ってくる。";
hunger=4;
saturation_hunger=3;
eat=function(player,block) {
eating(player);
player.getInventory().addItem(new org.bukkit.inventory.ItemStack(org.bukkit.Material.BONE,1));
}
-&bold(){&big(){3x3x3採掘ツルハシ}}
引数のeventを利用した一例です。
左クリックすると、クリックしたブロックを中心に3x3x3で採掘。
右クリックすると、クリックしたブロックのみ採掘。
耐久力を減らすだけではツールが壊れないので耐久力が特定の数より大きいとアイテムをなくすようにしてあります。
ID="DIAMOND_PICKAXE";
name="3x3x3採掘ツルハシ";
action="2,4";
eat=function(player,block,event){
if(event.getAction()==org.bukkit.event.block.Action.LEFT_CLICK_BLOCK) {
for(var y = block.getY()+1;y > block.getY()-2;y--) {
for(var x = block.getX()+1;x > block.getX()-2;x--) {
for(var z = block.getZ()+1;z > block.getZ()-2;z--) {
if(player.getGameMode()!=gm_creative&&block.getWorld().getBlockAt(x,y,z).getType()!=org.bukkit.Material.BEDROCK&&
block.getWorld().getBlockAt(x,y,z).getType()!=org.bukkit.Material.AIR)
player.getItemInHand().setDurability(player.getItemInHand().getDurability()+1);
if(block.getWorld().getBlockAt(x,y,z).getType()!=org.bukkit.Material.BEDROCK)
block.getWorld().getBlockAt(x,y,z).breakNaturally(player.getItemInHand());
}
}
}
}
if(event.getAction()==org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK) {
if(player.getGameMode()!=gm_creative&&block.getType()!=org.bukkit.Material.BEDROCK&&
block.getType()!=org.bukkit.Material.AIR) {player.getItemInHand().setDurability(player.getItemInHand().getDurability()+1);}
if(block.getType()!=org.bukkit.Material.BEDROCK) {block.breakNaturally(player.getItemInHand());}
}
if(player.getItemInHand().getType().getMaxDurability()<player.getItemInHand().getDurability())
player.getItemInHand().setAmount(player.getItemInHand().getAmount()-1);
}
&bold(){&big(){&big(){&u(){よく使う}クラスの解説}}}
----
目次
#region
PotionEffect
PotionEffectType
World
Material
Block
Player
ItemStack
#endregion
-&bold(){&big(){[[PotionEffect>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffect.html]]}}
new org.bukkit.potion.PotionEffect(PotionEffectType)
new org.bukkit.potion.PotionEffect(PotionEffectType,ParticleDraw)
1つめは、初級編で紹介した通りです。
2つ目はParticleDrawにtrueもしくはfalseを入れることでパーティクルの表示/非表示を決められます。
true 表示
false 非表示
-&bold(){&big(){[[PotionEffectType>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffectType.html]]}}
org.bukkit.potion.PotionEffectType.値
値のところにHUNGERなどを入れてください。
|値|ID|和名|
|SPEED|1|移動速度上昇|
|SLOW|2|移動速度低下|
|FAST_DIGGING|3|採掘速度上昇|
|SLOW_DIGGING|4|採掘速度低下|
|INCREASE_DAMAGE|5|攻撃力上昇|
|HEAL|6|即時回復|
|HARM|7|即時ダメージ|
|JUMP|8|跳躍力上昇|
|CONFUSION|9|吐き気|
|REGENERATION|10|再生能力|
|DAMAGE_RESISTANCE|11|耐性|
|FIRE_RESISTANCE|12|火炎耐性|
|WATER_BREATHING|13|水中呼吸|
|INVISIBILITY|14|透明化|
|BLINDNESS|15|盲目|
|NIGHT_VISION|16|暗視|
|HUNGER|17|空腹|
|WEAKNESS|18|弱体化|
|POISON|19|毒|
|WITHER|20|ウィザー|
|HEALTH_BOOST|21|体力増強|
|ABSORPTION|22|衝撃吸収|
|SATURATION|23|満腹度回復|
|GLOWING|24|発光|
|LEVITATION|25|浮遊|
|LUCK|26|幸運|
|UNLUCK|27|不運|
-&bold(){&big(){[[World>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/World.html]]}}
org.bukkit.World
Worldはnewで作れないのでPlayer.getWorld()やBlock.getWorld()などでWorldを取得しましょう。
これより下はworld.○○の○○の部分を書いていきます。
getBlockAt(X,Y,Z);
X,Y,Zの座標のブロックを取得。
戻り値にBlockが設定してある。
getBlockAt(Location);
Locationにはplayer.getLocation()などで座標を入れる。
dropItem(Location,ItemStack)
Locationにはplayer.getLocation()など、ItemStackにはドロップアイテムの情報を。
spawnEntity(Location,EntityType);
座標に[[EntityType>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html]]のエンティティを召喚。
-&bold(){&big(){[[Material>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html]]}}
org.bukkit.Material
この後ろに.○○を書く。
アイテム、ブロックたちの一覧は[[こちら>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html]]
-&bold(){&big(){[[Block>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/Block.html]]}}
org.bukkit.block.Block
この後ろに.○○を書く。
getType()
そのBlockのMaterialを返す。
getWorld()
ブロックの置いてあるワールドを取得
-&bold(){&big(){[[Player>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Player.html]]}}
org.bukkit.entity.Player
これも.○○とかく。newは使えない
getInventory()
プレイヤーのInventoryを取得。
addPotionEffect(PotionEffect);
プレイヤーにポーション効果を付与。
removePotionEffect(org.bukkit.potion.PotionEffectType);
プレイヤーから指定したポーション効果を削除。
sendMessage(Message);
Messageには""と書いたり、""の変数を使ったりする。
getDisplayName()
プレイヤーの表示名を取得。
isSneaking()
プレイヤーがスニークしているかどうかを取得
true スニークしている
false スニークしていない
playSound(Location,Sound,float1,float2)
[[Location>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Location.html]]の場所で音を再生。日本語にすると、座標、音、ボリューム、ピッチになる。
[[Sound>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html]]
stopSound(Sound);
[[Sound>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html]]に設定した音を止める。
giveExp(lv)
lvに与えたい量の&bold(){整数}を入れる。
getLevel()
プレイヤーのレベルを取得。
getFoodLevel()
プレイヤーの満腹度を取得。最大20.
setFoodLevel()
プレイヤーの満腹度を設定。最大20。
getSaturation()
プレイヤーの隠し満腹度を取得。
setSaturation()
プレイヤーの隠し満腹度をセット。
spawnParticle(Particle,X,Y,Z,半径,数)
spawnParticle(Particle,Location,半径,数)
XYZまたはLocationの場所に[[Particle>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Particle.html]]を指定した半径に指定した数発生させる。
-&bold(){&big(){[[ItemStack>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/ItemStack.html]]}}
org.bukkit.inventory.ItemStack
この後ろに.○○を書く。newが使える。
new org.bukkit.inventory.ItemStack(Material)
new org.bukkit.inventory.ItemStack(Material,数)
ItemStackを生成する。[[Material>https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html]]
2017-06-19T21:11:31+09:00
1497874291
-
CustomFoods
https://w.atwiki.jp/kusaanko/pages/19.html
|Plugin名|CustomFoods|
|製作者|草あんこ|
|配布場所|-|
|前提サーバー|CraftBukkit/Spigot|
|最新バージョン|1.0.0|
|公式推奨バージョン|1.0.0|
|動作確認済みMinecraftバージョン|1.11.2|
&big(){&big(){CustomFoodsについて}}
----
自分で食べ物を追加できるプラグインです。
食べたときに何をするか、ということが何でもできてしまいます。
&bold(){ただし、プログラミング知識が少し必要です。このウィキで紹介したもの以外はプラグイン製作知識が必要です。}
&bold(){プログラミング知識なしでやるならこのWikiで紹介したものを見たままやるのがいいでしょう。}
&big(){&big(){CustomFoodsの導入方法}}
----
CraftBukkit/Spigotサーバーを作成後、作られたpluginフォルダにDLしたCustomFoodsを入れる。
&big(){&big(){使用方法}}
----
導入されるとサーバー.jarフォルダに追加される「CustomFoods」フォルダへ移動します。
そのフォルダで「○○.js」ファイルを作ります。
&bold(){○○は、コマンドでアイテムを取得する際に使うものですので、半角英数のみ使用してください。}
&big(){&big(){jsファイルの記入}}
----
jsファイルには&bold(){JavaScript}で記入します。
JavaScriptとは、プログラミング言語のひとつです。
「name="ああ";」
といった感じで記入していきます。
&big(){基本設定}
----
アイテム名や説明文、腹の回復量などの設定を行ってみます。
ID設定
「ID="ID";」
2つ目のIDにCraftBukkit用IDを入力してください。[[VandalismerKiller]]のコマンドを使うと簡単に確認できます。
名前設定
「name="名前";」
名前に設定したい名前を入力してください。[[装飾コード>http://minecraft-ja.gamepedia.com/%E8%A3%85%E9%A3%BE%E3%82%B3%E3%83%BC%E3%83%89]]を使うことができます。
説明文
「lore="説明文";」
説明文のところに説明文を記入することで説明文を設定できます。
「,」で区切ると改行できます。
[[装飾コード>http://minecraft-ja.gamepedia.com/%E8%A3%85%E9%A3%BE%E3%82%B3%E3%83%BC%E3%83%89]]を使うことができます。
腹の回復量
「hunger=1;」
"は入れないでください。1でマイクラの肉マーク半分回復します。
この項目は記入しなくても大丈夫です。記入しない場合0に設定されます。
隠し満腹度回復量
「saturation_hunger=1;」
"は入れないでください。こちらも1でマイクラの肉マーク半分回復します。
この項目は記入しなくても大丈夫です。記入しない場合0に設定されます。
&big(){特殊設定}
----
クリックしたときに発生するイベントのタイプ設定。
「action="1,2,3,4";」
"は必須。また、数字ごとに,を記入すること。
1は、空中で右クリックしたときにクリックイベント発生。
2は、ブロックを右クリックしたときにクリックイベント発生。
3は、空中で左クリックしたときにクリックイベント発生。
4は、ブロックを左クリックしたときにクリックイベント発生。
右クリックだけにしたいときはaction="1,2";と書けばいい。
クリックアクション
一番重要になる物です。
また、この項目はなくても普通に使えます。
&bold(){eat=function(player,block,event) {eating(player);}}
このように記入すれば「食べる」ということは実現可能です。
また、[[特殊設定チュートリアル>CustomFoods特殊設定チュートリアル]]のように記入することで何でもできてしまいます。
2017-06-18T12:48:24+09:00
1497757704
-
SetHome
https://w.atwiki.jp/kusaanko/pages/16.html
|Plugin名|SetHome|
|製作者|草あんこ|
|配布場所|-|
|前提サーバー|CraftBukkit/Spigot|
|最新バージョン|Beta0.0.2|
|公式推奨バージョン|Beta0.0.2|
|動作確認済みMinecraftバージョン|1.11.2|
&big(){&big(){SetHomeについて}}
----
/homeコマンドのPluginが1.11.2用ものがないということで作成しました。
&big(){&big(){SetHomeの導入方法}}
----
CraftBukkit/Spigotサーバーを作成後、作られたpluginフォルダにDLしたSetHomeを入れる。
&big(){&big(){使用方法}}
----
&big(){&bold(){コマンド}}
/sethome
実行したプレイヤーの座標、ワールド名をプレイヤーのhomeにセットします。
/h
設定したhomeの座標へテレポートします。セットしたワールドと違うワールドにいればエラーが出てテレポートできません。
/h 名前
サーバー側で設定された座標へテレポートします。/hと同じくワールドが違うとテレポートできません。
&big(){&bold(){サーバー側の設定}}
設定ファイルなどはサーバーのjarがあるフォルダに生成されます。
home.properties
各プレイヤーが登録した座標・ワールド名がUUIDごとに登録されます。中身を編集することでプレイヤーの座標を改造できます。
home_server.properties
/h 名前コマンドを実行する際に必要とするファイルです。
初期状態では生成されないファイルで、自分で作成する必要があります。
また、中身はすべて自分で記入します。
&big(){&big(){home_server.propertiesの記入方法}}
----
一行ごとに1つの場所となります。
&bold(){名前=X.Y.Z.ワールド名}
例えば、home1という名前でhomeというワールドのX0 Y1 Z2地点の場所にテレポートさせるコマンドを作るには
home1=0.1.2.home
となり、複数登録するには
home1=0.1.2.home
home2=3.1.0.home
改行します。
2017-06-17T20:51:29+09:00
1497700289
-
草あんこCraftBukkit解説
https://w.atwiki.jp/kusaanko/pages/15.html
まだ配布はしていませんが説明を載せておきます。
&bold(){全てのプラグインの注意点として、config.ymlを使うものはconfigはアップグレードされないので更新したい場合は一度削除してからサーバーのリロードをしてください。}
|名前|バージョン|Minecraft対応バージョン|
|[[SetHome]]|Beta0.0.2|1.11.2|
|[[CustomFoods]]|1.0.0|1.11.2|
|[[VandalismerKiller]]|Beta0.0.1|1.11.2|
|[[VandalismerKillerLogCatcher]](アプリケーション)|ありません|[[VandalismerKiller]]の対応バージョンと同じ。|
2017-06-17T20:50:43+09:00
1497700243
-
VandalismerKillerLogCatcher
https://w.atwiki.jp/kusaanko/pages/18.html
|ソフト名|VandalismerKillerLogCatcher|
|製作者|草あんこ|
|配布場所|-|
&big(){&big(){VandalismerKillerLogCatcherについて}}
----
CraftBukkitサーバー専用Plugin[[VandalismerKiller]]と連帯させるツールです。
サーバー機と使用PCが別々でも一部サーバーログが監視できるものとなっています。
&bold(){まだこのソフトは未完成となっています。}
&bold(){そのため、コマンドの入力、コマンドの送信先IP、コマンドの送信先Portは未実装となっていますので気にしないでください。}
&big(){&big(){VandalismerKillerLogCatcherのインストール方法}}
----
DLするだけです。
&big(){&big(){VandalismerKillerLogCatcherの使用方法}}
----
ソフト下の方にある「ポート番号」の横にあるテキストボックスの中に使用PCの空いているポート番号を入力します。
その後「Logの受信開始」をクリックすることで受信を開始できます。
受信を停止したい場合はもう一度ボタンをクリックしてください。&bold(){また、そのまま受信開始しますとログがクリアされるのでご注意ください。}
そのほかの設定は[[VandalismerKiller]]の「log_share.propertiesの記述方法」をご覧ください。
2017-05-29T22:05:10+09:00
1496063110
-
VandalismerKiller
https://w.atwiki.jp/kusaanko/pages/17.html
|Plugin名|VandalismerKiller|
|製作者|草あんこ|
|配布場所|-|
|前提サーバー|CraftBukkit/Spigot|
|最新バージョン|Beta0.0.2|
|公式推奨バージョン|Beta0.0.2|
|動作確認済みMinecraftバージョン|1.11.2|
&big(){&big(){VandalismerKillerについて}}
----
荒らし対策系プラグインの不足ということで作成しました。
今後、荒らし動画などを見て強化させていきます。
&big(){&big(){VandalismerKillerの導入方法}}
----
CraftBukkit/Spigotサーバーを作成後、作られたpluginsフォルダにDLしたVandalismerKillerを入れる。
&big(){&big(){設定ファイル一覧}}
----
plugins/VandalismerKiller/config.ymlをメモ帳ソフトで読み込ませてください。
&bold(){注意として、日本語は含まず、UTF-8で保存してください。}
boolean=true又はfalse
String=文字列
int=数字
配列=指定した値を,で区切る。
|設定|内容|設定値|
|ban_block_item|設置・使用禁止アイテムを設定します。|CraftBukkitItemIDを,で区切って設定。|
|ban_block_placed_kick|上の項目で設定したブロック・アイテムを使用したときにプレイヤーをキックするかどうか。する場合はtrue。|boolean|
|owner_name|サーバー管理者のマイクラID。|String|
|owner_UUID|サーバー管理者のUUID。|String|
|owner_only_command|上で設定したプレイヤーのみ使えるコマンドを登録するか。する場合はtrue。|boolean|
|owner_only_command_list|サーバー管理者しか使えないコマンドの一覧。/を省いた文字を入力。|String配列|
|only_me_command_list|自分に対してのみ実行できるコマンドの一覧。/を省いた文字を入力。|String配列|
|spectator_list|スペクテイターモードになれる人。下の禁止ゲームモードを無視できる。マイクラIDを指定。|String配列|
|prohibited_game_mode|コマンドなどを使ってもなれないゲームモード。ゲームモードの数字を指定。|int配列|
|log_share|サーバー側のコンソール画面に出力される一部のメッセージを別PCに送信します。&bold(){使用には別ソフト「[[VandalismerKillerLogCatcher]]」が必要になります。}|boolean|
&big(){&big(){追加コマンド一覧}}
----
/craftbukkititemid
プレイヤーが持っているアイテムのCraftBukkitIDをチャットに表示。
/ownerhidden true/false
サーバーの画面から入力。サーバー管理者がログインしている場合透明になれる。trueなら透明、falseなら不透明。
&big(){&big(){log_share.propertiesの記述方法}}
----
コンフィグより「log_share」をtrueにするとサーバーのjarがあるフォルダに「log_share.properties」ファイルが生成されます。
こちらには[[VandalismerKillerLogCatcher]]との連帯設定を記述します。
ファイルをメモ帳などで開くと、「log=」と書かれていると思います。その「=」の後ろに
[[VandalismerKillerLogCatcher]]を起動しているPCのIP、ポート番号を&bold(){「IP,ポート番号」}と記述します。
&big(){一例}
[[VandalismerKillerLogCatcher]]でポート番号を「10」に設定て、サーバー機と送信先のPCが同じネットワークにある場合、log_share.propertiesファイルの中身は
&bold(){「log=localhost,10」}
となります。
2017-05-29T21:57:04+09:00
1496062624
-
草あんこMOD解説>BreadMOD
https://w.atwiki.jp/kusaanko/pages/14.html
#image(2017-05-28_12h23_08.png)
|MOD名|BreadMOD|
|製作者|草あんこ|
|配布場所|[[https://www.dropbox.com/sh/5g1js0dbi3b70p5/AACeaqiKX6uU2cByTUJsGfOTa?dl=0>https://www.dropbox.com/sh/5g1js0dbi3b70p5/AACeaqiKX6uU2cByTUJsGfOTa?dl=0]]|
|前提MOD|【MinecraftForge】|
|最新バージョン|1.0.0|
|公式推奨バージョン|1.0.0|
|Minecraftバージョン|1.6.4|
&br()&br()
&big(){&big(){&bold(){BreadMODについて}}}
----
&br()&br()
&big(){&big(){&bold(){BreadMODの導入方法}}}
----
MinecraftForge導入後、modsフォルダにダウンロードしたBreadMODを入れる。
&br()&br()
&big(){&big(){&bold(){追加ブロック・アイテム・レシピ一覧}}}
----
&big(){&bold(){中間素材}}
2017-05-28T12:24:09+09:00
1495941849