artem2015
Участник
- Баллы
- 33
- Имя в Minecraft
- admin
если пишу так:
то работает
если пытаюсь вынести scoreboard в отдельный класс:
и вызывать его из главного:
то при инициализации плугина в строке score.init();
выдаёт ошибку:
[test5] Enabling test5 v1.0
2013-09-22 13:19:04 [SEVERE] Error occurred while enabling test5 v1.0 (Is it up to date?)
java.lang.NullPointerException
at test.main.onEnable(main.java:23)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugin(CraftServer.java:286)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.enablePlugins(CraftServer.java:268)
at net.minecraft.server.v1_6_R2.MinecraftServer.l(MinecraftServer.java:319)
at net.minecraft.server.v1_6_R2.MinecraftServer.f(MinecraftServer.java:296)
at net.minecraft.server.v1_6_R2.MinecraftServer.a(MinecraftServer.java:256)
at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:164)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
и далее в другой строке score.Setscore(); другую ошибку:
Could not pass event PlayerMoveEvent to test5 v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:229)
at net.minecraft.server.v1_6_R2.Packet10Flying.handle(SourceFile:136)
at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:118)
at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592)
at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239)
at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Caused by: java.lang.NullPointerException
at test.main.onPlayerMove(main.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
Код:
package test;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
public class main extends JavaPlugin implements Listener{
Scoreboard sb;
Objective obj;
Team team;
public ScoreB score;
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this); // register plugin on server
//score.init();
sb= Bukkit.getScoreboardManager().getNewScoreboard();
obj=sb.registerNewObjective("SCORE", "admin");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName("allscores");
team=sb.registerNewTeam("myteam");
team.setCanSeeFriendlyInvisibles(true);
team.setAllowFriendlyFire(false);
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) throws Exception
{
//score.Setscore();
for (Player p : Bukkit.getOnlinePlayers()){
org.bukkit.scoreboard.Score s = obj.getScore(p);
s.setScore(555);
p.setScoreboard(sb);
}
return;
}
}
то работает
если пытаюсь вынести scoreboard в отдельный класс:
Код:
package test;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
public class ScoreB {
Scoreboard sb;
Objective obj;
Team team;
public void init() {
sb= Bukkit.getScoreboardManager().getNewScoreboard();
obj=sb.registerNewObjective("SCORE", "admin");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName("allscores");
team=sb.registerNewTeam("myteam");
team.setCanSeeFriendlyInvisibles(true);
team.setAllowFriendlyFire(false);
}
public void Setscore() {
for (Player p : Bukkit.getOnlinePlayers()){
org.bukkit.scoreboard.Score s = obj.getScore(p);
s.setScore(555);
p.setScoreboard(sb);
}
}
}
и вызывать его из главного:
Код:
package test;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
public class main extends JavaPlugin implements Listener{
Scoreboard sb;
Objective obj;
Team team;
public ScoreB score;
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this); // register plugin on server
score.init();
}
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) throws Exception
{
score.Setscore();
return;
}
}
то при инициализации плугина в строке score.init();
выдаёт ошибку:
[test5] Enabling test5 v1.0
2013-09-22 13:19:04 [SEVERE] Error occurred while enabling test5 v1.0 (Is it up to date?)
java.lang.NullPointerException
at test.main.onEnable(main.java:23)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugin(CraftServer.java:286)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.enablePlugins(CraftServer.java:268)
at net.minecraft.server.v1_6_R2.MinecraftServer.l(MinecraftServer.java:319)
at net.minecraft.server.v1_6_R2.MinecraftServer.f(MinecraftServer.java:296)
at net.minecraft.server.v1_6_R2.MinecraftServer.a(MinecraftServer.java:256)
at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:164)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
и далее в другой строке score.Setscore(); другую ошибку:
Could not pass event PlayerMoveEvent to test5 v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:229)
at net.minecraft.server.v1_6_R2.Packet10Flying.handle(SourceFile:136)
at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:118)
at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:592)
at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239)
at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Caused by: java.lang.NullPointerException
at test.main.onPlayerMove(main.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
