まとめた経緯
ミニマップMODの機能制限方法について書かれた日本語のページがなかったため、まとめてみました。
仕組み
各ミニマップMODにはある特定のコードを送信することで機能を制限することが可能です。
それを利用して今回はレーダーなどの機能を無効化しています。
またカラーコードを送信するだけなのでクライアントには空行が表示されるだけです。
適当にプラグインを作ってみよう
イベントリスナーの登録とか色々省いていますが大体こんな感じです。
10Tickほど遅延させているのは参加してすぐだと無効化されない場合があるためです。
ワールドが変わるごとに送信する必要があります。
他に自分で制限したいものがあれば必要に応じて追加を行ってください。
Googleで調べればすぐにコードは出てきます。
AntiMap
private static final List<String> miniMapCodeList;
static {
List<String> list = new ArrayList<>();
list.add("§r§f §r§f §r§2 §r§0 §r§4 §r§8 §r");
list.add("§r§f §r§f §r§4 §r§0 §r§9 §r§6 §r");
list.add("§r§3 §r§9 §r§2 §r§0 §r§0 §r§2 §r");
list.add("§r§3 §r§6 §r§3 §r§6 §r§3 §r§6 §r");
list.add("§r§f §r§f §r§1 §r§0 §r§2 §r§4 §r");
list.add("§r§3 §r§9 §r§2 §r§0 §r§0 §r§1 §r");
list.add("§r§3 §r§9 §r§2 §r§0 §r§0 §r§3 §r");
list.add("§r§3 §r§6 §r§3 §r§6 §r§3 §r§6 §r");
list.add("§r§f §r§f §r§1 §r§0 §r§2 §r§f §r§f §r§2 §r§0 §r§4 §r§3 §r§9 §r§2 §r§0 §r§0 §r§3 §r§9 §r§2 §r§0 §r§0 §r§3 §r§9 §r§2 §r§0 §r§0 §r");
list.add("§r§3 §r§6 §r§3 §r§6 §r§3 §r§6 §r§e §r");
list.add("§r§3 §r§6 §r§3 §r§6 §r§3 §r§6 §r§d §r");
list.add("§r§f §r§f §r§2 §r§0 §r§4 §r§8 §r");
list.add("§r§f §r§f §r§4 §r§0 §r§9 §r§6 §r");
list.add("§r§f §r§f §r§1 §r§0 §r§2 §r§4 §r");
list.add("§r§3 §r§9 §r§2 §r§0 §r§0 §r§2 §r");
list.add("§r§3 §r§9 §r§2 §r§0 §r§0 §r§1 §r");
list.add("§r§3 §r§9 §r§2 §r§0 §r§0 §r§3 §r");
miniMapCodeList = Collections.unmodifiableList(list);
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
final Player player = event.getPlayer();
Bukkit.getScheduler().runTaskLater(YOUR_PLUGIN_INSTANCE, new Runnable() {
@Override
public void run() {
for (String code : miniMapCodeList) {
player.sendMessage(code);
}
}
}, 5L);
}
@EventHandler
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
final Player player = event.getPlayer();
Bukkit.getScheduler().runTaskLater(YOUR_PLUGIN_INSTANCE, new Runnable() {
@Override
public void run() {
for (String code : miniMapCodeList) {
player.sendMessage(code);
}
}
}, 5L);
}
最後に
他のミニマップMODとか機能制限できるものがありましたら、コメントにお願いします。
Skriptとかでもできるみたいですが書きかたわからないです。