Abend zusammen,
ich habe momentan ein Problem mit meinem Minecraft Plugin(Bukkit).
Mein custom Event ruft meinen custom Listener auf, und der startet ein Scheduler, aber irgendwie ist innerhalb der Scheduler Runnable auf einmal die playerList leer.
Die Konsole gibt dabei folgendes aus:
Wie zu sehen ist, hat die gleich behandelte Variable region noch ihren Wert, playerList jedoch nicht.
MfG
ich habe momentan ein Problem mit meinem Minecraft Plugin(Bukkit).
Mein custom Event ruft meinen custom Listener auf, und der startet ein Scheduler, aber irgendwie ist innerhalb der Scheduler Runnable auf einmal die playerList leer.
Java:
ArrayList<Player> playerList;
[...]
@EventHandler
public void onConquerAttend(final ConquerAttendEvent event) {
playerList = event.getPlayerList();
plugin.getLogger().info("onconquerattend; event.getPlayerList: " + event.getPlayerList());
plugin.getLogger().info("onconquerattend; PlayerList: " + playerList);
plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
ProtectedRegion region = event.getRegion();
String faction = event.getFaction();
int duration = 0;
boolean spawned = false;
IronGolem golem;
boolean running = true;
public void run() {
if(running) {
plugin.getLogger().info("running; playerList: " + playerList);
plugin.getLogger().info("running; region: " + region);
Iterator<Player> i = playerList.iterator();
while(i.hasNext()) {
Player p = i.next();
if(!region.contains(p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ())) {
i.remove();
p.sendMessage(WorldGuardConquer.getPrefix() + ChatColor.RED + "Du bist nun nicht mehr an der Eroberung beteiligt.");
plugin.getLogger().info("Spieler hat Eroberung abgebrochen.");
if(playerList.size() < event.getMinimumConquerer() && !spawned) {
cancelConquer();
}
}
}
[...]
Die Konsole gibt dabei folgendes aus:
Code:
[13:19:46 INFO]: [WGC] onconquerattend; event.getPlayerList: [CraftPlayer{name=D00py}]
[13:19:46 INFO]: [WGC] onconquerattend; PlayerList: [CraftPlayer{name=D00py}]
[13:19:46 INFO]: [WGC] running; playerList: []
[13:19:46 INFO]: [WGC] running; region: com.sk89q.worldguard.protection.regions.ProtectedC
uboidRegion@343aa5
[13:19:47 INFO]: [WGC] running; playerList: []
[13:19:47 INFO]: [WGC] running; region: com.sk89q.worldguard.protection.regions.ProtectedC
uboidRegion@343aa5
Wie zu sehen ist, hat die gleich behandelte Variable region noch ihren Wert, playerList jedoch nicht.
MfG