Итак, я кодировал следующий код:
package com.ste999.firstplugin;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.player.AsyncPlayerChatEvent;
public class Main extends JavaPlugin {
public Main() {}
@Override
public void onEnable() {
getLogger().info("Stefan's first plugin enabled");
}
private volatile boolean chatEnabled = true;
@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent event) {
Player pli = event.getPlayer();
if (!chatEnabled) {
if (!pli.hasPermission("ste.chat.bypass")) {
pli.sendMessage("§4Chat is disabled!");
event.setCancelled(true);
//return true;
}
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
{
Player p = (Player)sender;
if (cmd.getName().equalsIgnoreCase("mutechat")) {
chatEnabled = !chatEnabled;
sender.sendMessage(chatEnabled ? "§aUnmuted the chat" : "§aMuted the chat");
return true;
}
return true;
}
@Override
public void onDisable() {
getLogger().info("Stefan's first plugin disabled");
}
}
со следующим plugin.yml:
name: Stefans_Helper
main: com.ste999.firstplugin.Main
version: 1.0
load: startup
description: this is my first plugin
commands:
mutechat:
description: mute the chat
usage: /<command>
Когда я использую этот плагин на моем сервере Minecraft, он появляется иесли я делаю /mutechat
, он говорит Muted the chat
ru, когда я делаю /mutechat
снова, он говорит Unmuted the chat
Что я ожидаю, что этот код будет делать, когда чат "отключен", никто не может говорить,если только у них нет узла ste.chat.bypass
.
Но пользователь без оп и ste.chat.bypass
может продолжать общение в чате после того, как кто-то набрал /mutechat
, и в чате было сказано Muted the chat
.
* 1020.* Я пытался вставить
getServer().getPluginManager().registerEvents(this, this);
в
public void onEnable
, но затем я получаю сообщение об ошибке, которое говорит:
The method registerEvents(Listener, Plugin) in the type PluginManager is not applicable for the arguments (Main, Main)
Uhh help pls