@Override public void run() { // counter++; Spout.getInstance().playerListener.manager.onServerTick(); Player[] online = Bukkit.getServer().getOnlinePlayers(); for (Player player : online) { if (player instanceof SpoutCraftPlayer) { ((SpoutCraftPlayer) player).onTick(); } } SpoutCraftChunk.updateTicks(); ((SimpleMaterialManager) SpoutManager.getMaterialManager()).onTick(); Spout.getInstance().getEntityTrackingManager().onTick(); ServerTickEvent event = new ServerTickEvent(); Bukkit.getServer().getPluginManager().callEvent(event); // if (counter % 20 == 0) { // for (World world : Bukkit.getServer().getWorlds()) { // Chunk[] chunks = world.getLoadedChunks(); // for (Chunk chunk : chunks) { // if (SpoutCraftChunk.replaceBukkitChunk(chunk)) { // System.out.println("Bad Chunk at (" + chunk.getX() + ", " + chunk.getZ()); // } // } // } // } // if (counter % 1200 == 0) { //check every min // (SimpleChunkDataManager)SpoutManager.getChunkDataManager()).testFileTimeouts(); // } }
public void setPlayerChunk(int cx, int cz) { ChunkCoordIntPair cur = currentChunk.get(); if (cur.x != cx || cur.z != cz) { currentChunk.set(new ChunkCoordIntPair(cx, cz)); updateCounter.incrementAndGet(); SpoutPlayer player = (SpoutPlayer) getPlayer(); if (player != null && player.isSpoutCraftEnabled()) { Spout.getInstance().getPlayerTrackingManager().onMoveChunk((SpoutPlayer) getPlayer()); } } }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityDeath(EntityDeathEvent event) { if (event.getEntity() instanceof SpoutPlayer) { Location l = event.getEntity().getLocation(); ((SpoutPlayer) event.getEntity()) .sendPacket(new PacketWaypoint(l.getX(), l.getY(), l.getZ(), "", true)); Bukkit.getServer() .getScheduler() .scheduleSyncDelayedTask( Spout.getInstance(), new PostDeath((SpoutCraftPlayer) event.getEntity()), 200); } }
@Override public void a(Packet18ArmAnimation packet) { if (packet.a == -42) { SpoutCraftPlayer player = (SpoutCraftPlayer) SpoutCraftPlayer.getPlayer(getPlayer()); player.setBuildVersion(1); // Don't know yet, just set above zero try { Spout.getInstance().playerListener.manager.onSpoutcraftEnable((SpoutPlayer) getPlayer()); } catch (Exception e) { e.printStackTrace(); } } else { super.a(packet); } }
@Override public void a(Packet3Chat packet) { String chat = packet.message; if (chat.trim().isEmpty()) { return; } if (!allowReload && chat.equalsIgnoreCase("/reload")) { allowReload = true; SpoutCraftPlayer player = (SpoutCraftPlayer) SpoutCraftPlayer.getPlayer(getPlayer()); if (!player.isSpoutCraftEnabled()) { player.sendMessage(ChatColor.RED + "Spout does not support the /reload command."); player.sendMessage(ChatColor.RED + "Unexpected behavior may occur."); player.sendMessage(ChatColor.RED + "We recommend using /stop and restarting."); player.sendMessage(ChatColor.RED + "Or you can use /spout reload to reload the config."); player.sendMessage( ChatColor.RED + "If you want to use /reload anyway, use the command again."); } else { Label warning = new DecayingLabel( 200, ChatColor.RED + "Spout does not support the /reload command." + "\n" + ChatColor.RED + "Unexpected behavior may occur." + "\n" + ChatColor.RED + "We recommend using /stop and restarting." + " \n" + ChatColor.RED + "Or you can use /spout reload to reload the config." + "\n" + ChatColor.RED + "If you want to use /reload anyway, use the command again."); warning.setX(100).setY(100).setPriority(RenderPriority.Lowest); player.getMainScreen().attachWidget(Spout.getInstance(), warning); } return; } super.a(packet); }