我尝试制作一个插件,您可以在其中键入命令/设置并切换布尔值。如果设置为true,我想要它,所以当玩家加入它时说' hi'对他们而言,如果它是假的'它什么都不做。 (顺便说一句,我是唯一可以使用该命令的人)。我尝试创建两个类,一个是主,另一个是监听器,但是我无法从监听器类访问布尔值,所以我尝试在一个类中创建它。使用我提供的代码时,除了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");
}
}
}
由于
答案 0 :(得分:5)
您好像没有注册听众。即使听众是您的主要课程,您仍然需要使用onEnable
在this.getServer().getPluginManager().registerEvents(this, this);
方法中注册。