Вот ошибка:
2018-10-29 05:59:07 [CRITICAL] Exception while invoking run java.lang.NullPointerException at KKDevs.Main.STask.onRun(STask.java:17) at cn.nukkit.scheduler.Task.run(Task.java:51) at cn.nukkit.scheduler.TaskHandler.run(TaskHandler.java:99) at cn.nukkit.scheduler.ServerScheduler.runTasks(ServerScheduler.java:296) at cn.nukkit.scheduler.ServerScheduler.mainThreadHeartbeat(ServerScheduler.java:277) at cn.nukkit.Server.tick(Server.java:1084) at cn.nukkit.Server.tickProcessor(Server.java:853) at cn.nukkit.Server.start(Server.java:830) at cn.nukkit.Server.<init>(Server.java:513) at cn.nukkit.Nukkit.main(Nukkit.java:109)
а вот код:
package KKDevs.Main;
import cn.nukkit.Player;
import cn.nukkit.scheduler.PluginTask;
import jline.internal.Nullable;
public class STask extends PluginTask < Strap > {
public STask(Strap owner) {
super(owner);
}
@Nullable
public void onRun(int currentTick) {
Strap owner = this.owner;
for (Player p: owner.getServer().getOnlinePlayers().values()){
p.updateBossBar(owner.getBossText(), 100, owner.bossbar.get(p));
}
}
}
а вот код главного файла:
public class Strap extends PluginBase implements Listener {
public HashMap<Player, Long> bossbar = new HashMap<Player, Long>();
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
getServer().getScheduler().scheduleRepeatingTask(new STask(this), 2);
this.getLogger().info(TextFormat.GREEN + "Done!");
}
@EventHandler(priority = EventPriority.NORMAL)
public void onJoin(PlayerJoinEvent e) {
for (Player p: getServer().getOnlinePlayers().values()) {
String name = p.getName();
bossbar.put(p, p.createBossBar(getBossText(), 100));
String msg = String.valueOf(e.getJoinMessage());
if (e.getJoinMessage().toString().trim().length() > 0) {
this.BroadCastPopUp(this.getServer().getLanguage().translateString(msg,
new String[] {
name
}));
e.setJoinMessage(String.valueOf(""));
}
}
}
public String getBossText() {
for (Player p: getServer().getOnlinePlayers().values()) {
String getNick = p.getName();
int getOnline = this.getServer().getOnlinePlayers().size();
String[] RC = {
"§l§f",
"§l§a",
"§l§e",
"§l§b",
"§l§6"
};
String getRandomColor = RC[new Random().nextInt(RC.length)];
TextFormat GREEN = TextFormat.GREEN;
TextFormat BLUE = TextFormat.BLUE;
String text = TextFormat.WHITE + " §l>> " + getRandomColor + "Добро
пожаловать на " + GREEN + "Balerix" + getRandomColor + ", " + BLUE +
getNick + getRandomColor + " | Онлайн: " + getOnline + TextFormat.WHITE + "
<<";
return text;
}
return getBossText();
}
@EventHandler(priority = EventPriority.NORMAL)
public void onDeath(PlayerDeathEvent e) {
String name = e.getEntity().getName();
String message = String.valueOf(e.getDeathMessage());
if (e.getDeathMessage().toString().trim().length() > 0) {
this.BroadCastPopUp(this.getServer().getLanguage().translateString(message,
new String[] {
name
}));
e.setDeathMessage(String.valueOf(""));
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onQuit(PlayerQuitEvent e) {
String name = e.getPlayer().getName();
String message = String.valueOf(e.getQuitMessage());
if (e.getQuitMessage().toString().trim().length() > 0) {
this.BroadCastPopUp(this.getServer().getLanguage().translateString(message,
new String[] {
name
}));
e.setQuitMessage(String.valueOf(""));
}
}
public void BroadCastPopUp(String str) {
for (Player p: new ArrayList < >
(this.getServer().getOnlinePlayers().values())) {
p.sendPopup("");
}
}
@Override
public void onDisable() {
this.getLogger().info(TextFormat.RED + "Disable!");
}
}