我正在尝试创建一个插件,您可以在其中键入命令/设置并切换布尔值集.如果设置为true,我想要它,所以当玩家加入它时对他们说"嗨",但如果它是'假'则它什么都不做.(顺便说一句,我是唯一可以使用该命令的人).我尝试创建两个类,一个是主要的,第二个是监听器,但我无法从监听器类访问布尔值,所以我尝试在一个类中完成所有操作.使用我提供的代码时,除了PlayerJoinEvent之外,一切都有效.我要么想弄清楚如何从另一个类访问布尔值或如何解决这个问题.
package me.jakegeyer28; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin; import net.md_5.bungee.api.ChatColor; public class Main extends JavaPlugin implements Listener{ public boolean set = true; @Override public void onEnable() { getLogger().info("Done"); } @Override public void onDisable() { getLogger().info("Done"); } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (cmd.getName().equalsIgnoreCase("settings")) { Player player = (Player) sender; if (player.getName().equalsIgnoreCase("jakegeyer27")) { if(set == true) { set = false; player.sendMessage(ChatColor.RED + "Off"); } else if (set == false) { set = true; player.sendMessage(ChatColor.GREEN + "On"); } } return true; } return false; } @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { Player player = e.getPlayer(); if (set == true) { player.sendMessage("hi"); } } }
谢谢
看来你还没有注册你的听众.即使听众是你的主要类,你仍然需要在你的onEnable
方法中注册它this.getServer().getPluginManager().registerEvents(this, this);
.