LoginSignup
0
1

More than 5 years have passed since last update.

VoxelMapとかJourneyMapとかの機能を無効化する方法

Last updated at Posted at 2015-02-15

まとめた経緯

ミニマップ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とかでもできるみたいですが書きかたわからないです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1