/* * This file is part of SpoutcraftPlugin. * * Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org//> * SpoutcraftPlugin is licensed under the GNU Lesser General Public License. * * SpoutcraftPlugin is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SpoutcraftPlugin is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.getspout.spout; import java.util.HashMap; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.getspout.spout.config.ConfigReader; import org.getspout.spout.config.PermHandler; import org.getspout.spout.inventory.SimpleMaterialManager; import org.getspout.spout.keyboard.SimpleKeyBindingManager; import org.getspout.spout.player.SimpleBiomeManager; import org.getspout.spout.player.SimpleSkyManager; import org.getspout.spout.player.SpoutCraftPlayer; import org.getspout.spout.precache.PrecacheManager; import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.event.spout.SpoutCraftEnableEvent; import org.getspout.spoutapi.event.spout.SpoutcraftFailedEvent; import org.getspout.spoutapi.material.CustomBlock; import org.getspout.spoutapi.material.MaterialData; import org.getspout.spoutapi.packet.PacketAllowVisualCheats; import org.getspout.spoutapi.packet.PacketBlockData; import org.getspout.spoutapi.packet.PacketCustomBlockDesign; import org.getspout.spoutapi.packet.PacketServerPlugins; import org.getspout.spoutapi.player.PlayerInformation; import org.getspout.spoutapi.player.SpoutPlayer; public class PlayerChunkMap { private HashMap<String, Integer> timer = new HashMap<String, Integer>(); HashMap<String, PlayerInformation> infoMap = new HashMap<String, PlayerInformation>(); public void onPlayerJoin(Player player) { timer.put(player.getName(), ConfigReader.getAuthenticateTicks()); } public void onServerTick() { for (Player player : Bukkit.getServer().getOnlinePlayers()) { if (timer.containsKey(player.getName())) { int ticksLeft = timer.get(player.getName()); if (--ticksLeft > 0) { timer.put(player.getName(), ticksLeft); } else { timer.remove(player.getName()); SpoutCraftPlayer scp = (SpoutCraftPlayer)SpoutManager.getPlayer(player); Bukkit.getServer().getPluginManager().callEvent(new SpoutcraftFailedEvent(scp)); scp.queued = null; if (player.hasPermission("spout.plugin.ignorespoutcraft")) { break; } if (!player.hasPermission("spout.plugin.forcespoutcraft")) { break; } if (!player.isOp()) { System.out.println("[SpoutPlugin] Failed to authenticate " + player.getName() + "'s Spoutcraft client in " + ConfigReader.getAuthenticateTicks() + " server ticks."); System.out.println("[SpoutPlugin] Kicking " + player.getName() + " for not running Spoutcraft"); player.kickPlayer(ConfigReader.getKickMessage()); } } } } } @SuppressWarnings("deprecation") public void onSpoutcraftEnable(SpoutPlayer player) { timer.remove(player.getName()); //player.sendPacket(new PacketServerPlugins(Bukkit.getServer().getPluginManager().getPlugins())); player.updateInventory(); ((SimpleMaterialManager)SpoutManager.getMaterialManager()).onPlayerJoin(player); ((SimpleSkyManager)SpoutManager.getSkyManager()).onPlayerJoin(player); ((SimpleBiomeManager)SpoutManager.getBiomeManager()).onPlayerJoin(player); ((SimpleKeyBindingManager)SpoutManager.getKeyBindingManager()).onPlayerJoin(player); player.sendPacket(new PacketAllowVisualCheats(PermHandler.allowSkyCheat(player),PermHandler.forceSkyCheat(player),PermHandler.showSkyCheat(player),PermHandler.allowClearWaterCheat(player),PermHandler.forceClearWaterCheat(player),PermHandler.showClearWaterCheat(player),PermHandler.allowStarsCheat(player),PermHandler.forceStarsCheat(player),PermHandler.showStarsCheat(player),PermHandler.allowWeatherCheat(player),PermHandler.forceWeatherCheat(player),PermHandler.showWeatherCheat(player),PermHandler.allowTimeCheat(player),PermHandler.allowCoordsCheat(player),PermHandler.allowEntityLabelCheat(player),PermHandler.allowVoidFogCheat(player),PermHandler.forceVoidFogCheat(player),PermHandler.showVoidFogCheat(player),PermHandler.allowFlightSpeedCheat(player))); player.updatePermissions(); PrecacheManager.onPlayerJoin(player); player.sendPacket(new PacketBlockData(SpoutManager.getMaterialManager().getModifiedBlocks())); Bukkit.getServer().getPluginManager().callEvent(new SpoutCraftEnableEvent(player)); ((SpoutCraftPlayer)player).updateWaypoints(); } }