Java 当变量发生变化时,记分板不会更新

Java 当变量发生变化时,记分板不会更新,java,minecraft,bukkit,Java,Minecraft,Bukkit,我正在制作一个基于游戏的插件,名为choice chamber,当我想要创建记分板时,我将变量放入计时器中。因为有一个包含变量的字符串,所以我不想使用记分板的纯红色文本。所以我决定用分数来显示计时器,但很快就遇到了问题。我不知道如何更新分数以便显示正确的时间。现在我已经打印了分数,用于聊天调试问题。谢谢 这是我的密码: packagemain; 导入org.bukkit.bukkit; 导入org.bukkit.ChatColor; 导入org.bukkit.command.command;

我正在制作一个基于游戏的插件,名为choice chamber,当我想要创建记分板时,我将变量放入计时器中。因为有一个包含变量的字符串,所以我不想使用记分板的纯红色文本。所以我决定用分数来显示计时器,但很快就遇到了问题。我不知道如何更新分数以便显示正确的时间。现在我已经打印了分数,用于聊天调试问题。谢谢

这是我的密码:

packagemain;
导入org.bukkit.bukkit;
导入org.bukkit.ChatColor;
导入org.bukkit.command.command;
导入org.bukkit.command.CommandSender;
导入org.bukkit.entity.Player;
导入org.bukkit.event.EventHandler;
导入org.bukkit.event.Listener;
导入org.bukkit.plugin.java.JavaPlugin;
导入org.bukkit.scoreboard.DisplaySlot;
导入org.bukkit.scoreboard.Objective;
导入org.bukkit.scoreboard.Score;
导入org.bukkit.scoreboard.scoreboard;
公共类MainClass扩展JavaPlugin实现监听器{
int secondTimer=30;
int minuteTimer=0;
布尔运行=假;
public void onEnable(){
getLogger().info(“*************************”);
getLogger().info(“选择室已启用”);
getLogger().info(“选择室V.”+getServer().getPluginManager().getPlugin(“选择室”).getDescription().getVersion());
getLogger().info(“由@McMattGames编写”);
getLogger().info(“*************************”);
}
公共无效不可撤销(){
getLogger().info(“*************************”);
getLogger().info(“选择室已禁用”);
getLogger().info(“*************************”);
}
//命令
@事件处理程序
公共布尔onCommand(CommandSender、Command cmd、字符串标签、字符串[]args){
秒定时器=30;
分钟计时器=0;
if(cmd.getName().equalsIgnoreCase(“选择”)| | cmd.getName().equalsIgnoreCase(“c”)){
记分板=getServer().getScoreboardManager().getNewScoreboard();
目标=board.registerNewObjective(“计时器”、“虚拟”);
分数=目标.getScore(ChatColor.GREEN+“计时器:”);
Score Score 2=objective.getScore(ChatColor.GREEN+“”+minuteTimer+“:”+secondTimer);
objective.setDisplayName(ChatColor.GOLD+“”+ChatColor.BOLD+“选择室”);
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
得分。核心得分(-1);
得分2.setScore(-2);
if(播放机的发送方实例){
如果(args.length>0){
玩家p=(玩家)发送者;
if(args[0].equalsIgnoreCase(“开始”)){
如果(正在运行==!true){
Bukkit.getServer().broadcastMessage(ChatColor.WHITE+“[”+ChatColor.GOLD+“选择室”+ChatColor.WHITE+“]回合开始!”);
运行=真;
p、 芯板(板);
Bukkit.getScheduler().runTaskTimer(这是新的Runnable()){
公开募捐{
secondTimer=secondTimer-1;
如果(秒计时器=0){
如果(秒计时器>9){
getServer().broadcastMessage(分钟计时器+:“+秒计时器);
}否则{
getServer().broadcastMessage(分钟计时器+“:0”+秒计时器);
}
}
}
}, 0, 20);
}否则{
Bukkit.getServer().broadcastMessage(ChatColor.WHITE+“[”+ChatColor.GOLD+“选择室”+ChatColor.WHITE+“]”+ChatColor.RED+“回合已经开始”);
}
}否则{
if(args[0].equalsIgnoreCase(“连接”)){
if(running==true){
p、 芯板(板);
p、 sendMessage(ChatColor.WHITE+“[”+ChatColor.GOLD+“选择室”+ChatColor.WHITE+“]”+“加入”);
}否则{
p、 sendMessage(ChatColor.WHITE+“[”+ChatColor.GOLD+“Choice Chamber”+ChatColor.WHITE+“]”+ChatColor.RED+“没有游戏开始!”);
}
}否则{
p、 sendMessage(ChatColor.WHITE+“[”+ChatColor.GOLD+“选择室”+ChatColor.WHITE+“]”+ChatColor.RED+“无效命令!”);
}
}
}
}
}
返回true;
}

}
如果您更新Bukkit的默认记分板系统,它会闪烁,因此您应该使用SpigotLibs记分板API对记分板系统进行编码。


如果您需要其他帮助,可以通过Skype与我联系:gyurixdev

Bukkit的默认记分板系统在更新时会闪烁,因此您应该使用SpigotLibs记分板API对记分板系统进行编码。


如果您需要其他帮助,可以通过Skype与我联系:gyurixdev

您需要显式更新记分板,仅更改变量的内容将不起作用。您需要显式更新记分板,仅更改变量的内容将不起作用。