Chapter 02

チャットを禁止するプラグインを作ろう

Maki
Maki
2021.12.12に更新

完成形は以下です。

package com.gmail.aoibotowner.nochat;

import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public final class NoChat extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        // Plugin startup logic

        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onChat(AsyncPlayerChatEvent event) {
        event.setCancelled(true);
        event.getPlayer().sendMessage(ChatColor.BLUE + "チャットは禁止されています。");
    }
}

前回との違いはほとんど、

public void onChat(AsyncPlayerChatEvent event) {
	event.setCancelled(true);
        event.getPlayer().sendMessage(ChatColor.BLUE + "チャットは禁止されています。");
}
event.setCancelled(true);

では、eventをキャンセルしています。ここではプレイヤーがチャットするイベントをキャンセルしますという意味なので、送信が取り消されます。
また、

event.getPlayer().sendMessage(ChatColor.BLUE + "チャットは禁止されています。");

では、チャットを送ったプレイヤーに、「チャットは禁止されています。」というメッセージを送信しています。ここで、ChatColor.BLUEは「青い文字」というのを表していて、もしこれをつけないと、

event.getPlayer().sendMessage("チャットは禁止されています。");

このようになり、白い文字で表示されるようになってしまいます。