【マインクラフト】マルチサーバーを建てる方法!

JAVA版マインクラフトでマルチプレイをしたいけどやりかたがわからない!という人向けです。

 

サーバーをダウンロードする

マインクラフトの公式サイト からサーバーをダウンロードします。

ダウンロードリンクはこちらになります。

MINECRAFT: JAVA EDITION サーバーソフトウェアをダウンロード

の下にあるここから入手をクリックします。

minecraft_server.x.xx.x.jar をダウンロードして以下のコマンドで実行しましょう:

※xにはバージョンが入ります。クライアントはこのバージョンで入る必要があります。

ダウンロードができたら以下のテキストファイルを「server.bat」として「minecraft_server.x.xx.x.jar」と同じ場所に配置します。

@echo off
java -Xmx1024M -Xms1024M -Xmn1024M -server -jar minecraft_server.x.xx.x.jar nogui
pause

※server.bat.txtではなくserver.batです。

作成したらserver.bat をダブルクリックします。

少しすると、何か入力して下さいって出ます。

でたらエンターでも押して消します。

minecraft_server.x.xx.x.jar と同じ場所に eula.txtというファイルが作成されます。

メモ帳で開いて eula=true とします。

そして再度 server.bat をダブルクリックで起動します。

コンソールに「Done」と出たらサーバーにログインすることができます。

 

ポートの開放の仕方

 

Windows の場合

Windows であれば左下スタートボタンを右クリック、コントロールパネルをクリック。

システムとセキュリティをクリック。

Windowsファイアウォールをクリック。

詳細設定をクリック。

左側の受信の規則を選択して右クリック、新しい規則をクリック。

ポートを選択して次へをクリック。

TCPを選択して特定のローカルポートを選択して「25565」と入力します。

そして次へをクリック。

接続を許可するを選択して次へ。

プライベート以外のチェックを外し次へをクリックします。

名前をわかりやすくつけて完了をクリック。

これと同じ事を送信の規則でもします。

 

Ubuntu の場合

Ubuntu であればUFWというツールを使うことをおすすめします、個人的に。

「sudo apt-get install ufw」でインストール。

「sudo ufw allow 25565」で許可。

SSH接続であるなら「sudo ufw allow 22」も追加。

最後に「sudo ufw enable」で起動。

 

ルーターのポート開放

OS でポートを開放してもルーターのポートを開放しないと外部から接続できません。

ただしルーター側はメーカー、機種によってやり方が異なるため調べてやってもらえると助かります。

 

NTT の例をあげます。

詳細設定>静的IPマスカレード設定>編集を順にクリック。

変換対象プロトコルはTCPを選択。

変換対象ポート、宛先ポートには25565を入力。

宛先IPアドレスにはサーバーとなるWindows/UbuntuのIPアドレスを入力。

IPアドレスは、Windowsであればコマンドプロンプトで「ipconfig」

Ubuntuであれば「ifconfig」

設定をクリック、有効にチェックを入れ設定をクリックしてルーター側の設定は完了です。

 

ポートの開放確認

初めにマイクラサーバーを起動します。

【CMAN】

https://www.cman.jp/network/support/port.html

こちらのサイトで以下の入力と作業をします。

・現在のIPアドレスをクリック

・チェックポート番号欄に25565を入力

・無料で・・・のチェックを入れる

・Portチェック実行をクリック

ポート開放ができていればその旨が表示されます。

 

ポート開放の確認ができたら、CMANで表示された現在のIPアドレスを友達に教えてあげましょう。

 

始めまして

個人ブログをはじめました。

ゲーム、プログラミング、日常生活などの多種多様に渡って不定期に更新していこうと思いますのでよろしくおねがいします(語彙力ないね)

ツイッターとかフォローしてくれたら嬉しいかもです。

@kemasama

 

機能を追加できるようにする

ミニゲームなどのゲームに追加で機能をつけれるようにする方法

 

/**
 * 本来ならGetter、Setterをつけるべき箇所につけていないのでご注意を。
 */
//Extension class
public class Extension{
  // 拡張機能をまとめる
  public static HashMap<String, ExtensionItem> Items = new HashMap<>();
  public static void reg(ExtensionItem item){
    // 拡張機能を追加するメゾットです
    item.onEnable();
    Items.put(item.getName(), item);
  }
}

// ExtensionItemInterFace
// 拡張機能の基盤です
public interface ExtensionItemInterFace{
  public String getName();
  public String getVersion();
  public String getDescription();
  public void onEnable();
  public void onDisable();
  public JavaPlugin getInstance();
}

// ExtensionItem
// 基盤を使いやすく(必要なものだけを設定するようにしたもの)です
public class ExtensionItem implements ExtensionItemInterFace{
  @Override
  public String getName(){
    // 拡張機能の名前
    return "Extension";
  }
  @Override
  public String getVersion(){
    // 拡張機能のバージョン
    return "1.0.0";
  }
  @Override
  public String getDescription(){
    // 拡張機能の説明
    return "Extension";
  }
  @Override
  public void onEnable(){
    // 有効にしたとき
  }
  @Override
  public void onDisable(){
    // 無効にしたとき
  }
  @Override
  public JavaPlugin getInstance(){
    // メインクラスを取得する関数
    return /* Main Class Static Instance */ null;
  }
}

// TestExtension
// 拡張機能の例
public class TestExtension extends ExtensionItem{
  // 名前の変更
  @Override
  public String getName(){ return "Test"; }
  @Override
  public void onEnable(){
    // 有効になったときに文字列を出力する
    System.out.printIn("This is a test xD Hello, World!");
  }
}

// Main Class onEnable
public void onEnable(){
  // 拡張機能をなんらかの形で追加する
  Extension.reg(new TestExtension());
}