public static void restoreInventory(Player player) { player.getInventory().clear(); player.teleport((Location) locations.get(player.getName())); for (PotionEffect effect : player.getActivePotionEffects()) { player.removePotionEffect(effect.getType()); } player.getInventory().setContents((ItemStack[]) inventoryContents.get(player.getName())); player.getInventory().setArmorContents((ItemStack[]) armourContents.get(player.getName())); player.setExp(((Float) xp.get(player.getName())).floatValue()); player.setLevel(((Integer) xpLevel.get(player.getName())).intValue()); player.setGameMode((GameMode) gameModes.get(player.getName())); player.addPotionEffects((Collection<PotionEffect>) potions.get(player.getName())); player.setFoodLevel(((Integer) foodLevel.get(player.getName())).intValue()); player.setHealth(((Double) Health.get(player.getName())).doubleValue()); player.setAllowFlight(((Boolean) flight.get(player.getName())).booleanValue()); flight.remove(player.getName()); Health.remove(player.getName()); foodLevel.remove(player.getName()); potions.remove(player.getName()); xpLevel.remove(player.getName()); xp.remove(player.getName()); locations.remove(player.getName()); armourContents.remove(player.getName()); inventoryContents.remove(player.getName()); gameModes.remove(player.getName()); }
public void run() { if (gm.isBomb()) { int timer = gm.getBombTimer(); if (timer != 0) { timer--; gm.setLobbyTimer(timer); for (Player p : gm.getArenaPlayers()) { p.setLevel(timer); } } else { gm.removePlayer(gm.getPotatoCarrier()); for (Player p : gm.getArenaPlayers()) { p.setLevel(0); p.setExp(0); p.playSound(p.getLocation(), Sound.LEVEL_UP, 1, 10); } plugin.getServer().getScheduler().cancelTask(gm.getBomb()); gm.setBombTimer(-1); } } }
@SuppressWarnings("deprecation") public void restoreState() { if (state == null) { return; } bukkitPlayer.getInventory().setContents(state.getContents()); bukkitPlayer.getInventory().setHelmet(state.getHelmet()); bukkitPlayer.getInventory().setChestplate(state.getChestplate()); bukkitPlayer.getInventory().setLeggings(state.getLeggings()); bukkitPlayer.getInventory().setBoots(state.getBoots()); bukkitPlayer.setExhaustion(state.getExhaustion()); bukkitPlayer.setSaturation(state.getSaturation()); bukkitPlayer.setFoodLevel(state.getFoodLevel()); bukkitPlayer.setHealth(state.getHealth()); bukkitPlayer.addPotionEffects(state.getPotioneffects()); bukkitPlayer.setLevel(state.getLevel()); bukkitPlayer.setExp(state.getExp()); bukkitPlayer.setAllowFlight(state.isFly()); sendMessage(I18N._("stateRestored")); bukkitPlayer.updateInventory(); state = null; }
private PlayerInventory getInventory(Player p) { String group = getWorldGroup(p.getWorld()); if (group == null) return null; PlayerConfiguration pcm = PlayerConfigurationManager.getConfiguration(p); if (!pcm.exists()) pcm.createFile(); Integer invSize = pcm.getInt("inventory." + group + ".size"); final PlayerInventory i = p.getInventory(); i.clear(); if (pcm.get("inventory." + group + ".slot") == null) return i; for (int slot = 0; slot < invSize; slot++) { ItemStack is = pcm.getItemStack("inventory." + group + ".slot." + slot); if (is == null) continue; i.setItem(slot, is); } i.setHelmet(pcm.getItemStack("inventory." + group + ".slot.helm")); i.setChestplate(pcm.getItemStack("inventory." + group + ".slot.chestplate")); i.setLeggings(pcm.getItemStack("inventory." + group + ".slot.leggings")); i.setBoots(pcm.getItemStack("inventory." + group + ".slot.boots")); if (Config.separateXP) { Float xp = pcm.getFloat("inventory." + group + ".xp"); Integer xpLevel = pcm.getInt("inventory." + group + ".xplevel"); p.setExp(xp); p.setLevel(xpLevel); } return i; }
public static void resetPlayer(Player player) { player.setHealth(player.getMaxHealth()); player.setFoodLevel(20); player.setSaturation(20); player.getInventory().clear(); player .getInventory() .setArmorContents( new ItemStack[] { new ItemStack(Material.AIR), new ItemStack(Material.AIR), new ItemStack(Material.AIR), new ItemStack(Material.AIR) }); for (PotionEffect effect : player.getActivePotionEffects()) { try { player.removePotionEffect(effect.getType()); } catch (NullPointerException ignored) { } } player.setTotalExperience(0); player.setExp(0); player.setPotionParticles(true); player.setWalkSpeed(0.2F); player.setFlySpeed(0.2F); }
public void removePlayer() { player.teleport(spawnBack); if (gm.getPlugin().getConfigHandler().isSaveHealth()) { player.setHealth(health); player.setFoodLevel(hunger); } player.getInventory().clear(); player.getInventory().setContents(inventory); player.setGameMode(gamemode); player.setExp(xpAmount); }
private void xpstuff(Player player, Integer leftoverxp, Integer bottleamount) { HashMap<Integer, ItemStack> leftOver = new HashMap<Integer, ItemStack>(); player.setTotalExperience(0); player.setExp(0); player.setLevel(0); player.giveExp(leftoverxp); ItemStack bottleoenchant = new ItemStack(384, bottleamount); leftOver.putAll(player.getInventory().addItem(new ItemStack(bottleoenchant))); if (!leftOver.isEmpty()) { Location loc = player.getLocation(); player.getWorld().dropItem(loc, new ItemStack(384, leftOver.get(0).getAmount())); } }
public static void fullReset(final Arena arena, final Player player) { playersetHealth(player, arena.getArenaConfig().getInt(CFG.PLAYER_HEALTH)); player.setFireTicks(0); player.setFallDistance(0); player.setVelocity(new Vector()); player.setFoodLevel(arena.getArenaConfig().getInt(CFG.PLAYER_FOODLEVEL)); player.setSaturation(arena.getArenaConfig().getInt(CFG.PLAYER_SATURATION)); player.setExhaustion((float) arena.getArenaConfig().getDouble(CFG.PLAYER_EXHAUSTION)); player.setLevel(0); player.setExp(0); player.setGameMode(GameMode.getByValue(arena.getArenaConfig().getInt(CFG.GENERAL_GAMEMODE))); PlayerState.removeEffects(player); }
private void setExp(int base, int amt) { int xp = base + amt; if (xp < 0) xp = 0; Player player = getPlayer(); int curLvl = player.getLevel(); int newLvl = getLevelForExp(xp); if (curLvl != newLvl) { player.setLevel(newLvl); } float pct = ((float) (xp - getXpForLevel(newLvl)) / (float) xpRequiredForNextLevel[newLvl]); player.setExp(pct); }
private void commandDeposit(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "The console does not have an XP bank account."); return; } if (args.length < 2) { sender.sendMessage(ChatColor.RED + "Usage: /xpbank deposit <amount>"); return; } Player p = (Player) sender; Integer depositAmount; if (args[1].equals("all")) { depositAmount = MinebotXPBank.calculateXP(p); } else { try { depositAmount = Integer.parseInt(args[1]); } catch (NumberFormatException e) { sender.sendMessage( ChatColor.RED + "Please provide a valid number amount of XP to deposit!"); return; } } Integer currentBalance = MinebotXPBank.getBalance(p.getName()); if (currentBalance == null) { MinebotXPBank.initAccount(p.getName()); currentBalance = 0; } int oldExp = MinebotXPBank.calculateXP(p); if (depositAmount > oldExp) { sender.sendMessage(ChatColor.RED + "You don't have that many XP to deposit."); } else { int newBalance = currentBalance + depositAmount; MinebotXPBank.setBalance(p.getName(), newBalance); sender.sendMessage(depositAmount.toString() + " XP " + ChatColor.GREEN + "deposited."); sender.sendMessage(ChatColor.GREEN + "New balance: " + ChatColor.WHITE + newBalance + " XP"); p.setLevel(0); p.setExp(0); p.giveExp(oldExp - depositAmount); } }
/** Check win * */ private void checkWin() { for (Player p : Bukkit.getOnlinePlayers()) { if (points.containsKey(p.getName())) { if (points.get(p.getName()) == 15) { /** Clear inventories * */ for (Player t : Bukkit.getOnlinePlayers()) { t.getInventory().clear(); t.setLevel(0); p.setExp(0f); } /** Bukkit task * */ runnable.cancel(); /** Remove chickens * */ for (Entity e : chickens) { if (!e.isDead()) e.remove(); } /** Broadcast * */ Bukkit.broadcastMessage(MTP.PREFIX + "" + p.getName() + " �at gewonnen!"); /** Sounds * */ for (Player tp : Bukkit.getOnlinePlayers()) { if (tp == p) { /** Points * */ MTP.points.put(p.getName(), MTP.points.get(p.getName()) + 1); tp.playSound(tp.getLocation(), "win", 1, 1); } else tp.playSound(tp.getLocation(), "lose", 1, 1); } /** Runnable * */ new BukkitRunnable() { public void run() { end(); } }.runTaskLater(MTP.getPlugin(), 10 * 20L); /** Break * */ break; } } } }
@SuppressWarnings("deprecation") public void saveState() { bukkitPlayer.setGameMode(GameMode.SURVIVAL);//Set to survival //Define player states variables ItemStack[] contents = bukkitPlayer.getInventory().getContents(); ItemStack helmet = bukkitPlayer.getInventory().getHelmet(); ItemStack chestplate = bukkitPlayer.getInventory().getChestplate(); ItemStack leggings = bukkitPlayer.getInventory().getLeggings(); ItemStack boots = bukkitPlayer.getInventory().getBoots(); float exhaustion = bukkitPlayer.getExhaustion(); float saturation = bukkitPlayer.getSaturation(); int foodLevel = bukkitPlayer.getFoodLevel(); double health = bukkitPlayer.getHealth(); GameMode gm = bukkitPlayer.getGameMode(); Collection<PotionEffect> potionEffects = bukkitPlayer.getActivePotionEffects(); float exp = bukkitPlayer.getExp(); int level = bukkitPlayer.getLevel(); boolean fly = bukkitPlayer.getAllowFlight(); //Save state state = new PlayerState(contents, helmet, chestplate, leggings, boots, exhaustion, saturation, foodLevel, health, gm, potionEffects, exp, level, fly); //Set to default state bukkitPlayer.setFoodLevel(20); bukkitPlayer.setHealth(20.0); bukkitPlayer.setAllowFlight(false);//Disable fly mode (Essentials etc.) bukkitPlayer.setFireTicks(0); bukkitPlayer.getInventory().clear(); bukkitPlayer.getInventory().setArmorContents(new ItemStack[4]); bukkitPlayer.setLevel(0); bukkitPlayer.setExp(0); for (PotionEffect effect : bukkitPlayer.getActivePotionEffects()) { bukkitPlayer.removePotionEffect(effect.getType()); } bukkitPlayer.sendMessage(I18N._("stateSaved")); bukkitPlayer.updateInventory(); }
public static void clearupperson(Player p) { p.setAllowFlight(false); p.setLevel(0); p.setExp(0); p.setFoodLevel(20); p.setSaturation(10); p.setHealth(20D); PlayerInventory pi = p.getInventory(); pi.clear(); pi.setHeldItemSlot(0); ItemStack Air = new ItemStack(Material.AIR); pi.setHelmet(Air); pi.setChestplate(Air); pi.setLeggings(Air); pi.setBoots(Air); for (PotionEffect effect : p.getActivePotionEffects()) p.removePotionEffect(effect.getType()); }
public void restore(Player player) { if (!player.isOnline()) { plugin.logDebug("Player " + player.getName() + " is offline. Skipping restore..."); return; } Restoration restoration = getRestoration(player); if (restoration.enabled) { player.getInventory().clear(); player.getInventory().setContents(restoration.inventory); player.getInventory().setArmorContents(restoration.armour); if (plugin.isMc19or110()) { player.getInventory().setItemInOffHand(restoration.offHand); } if (player.hasPermission(PERM_LEVEL) || !plugin.config.permsEnabled() || (player.isOp() && plugin.config.opsAllPerms())) { plugin.logDebug("Player " + player.getName() + " does have " + PERM_LEVEL + " permission."); player.setLevel(restoration.level); plugin.logDebug("Player " + player.getName() + " gets " + restoration.level + " level."); } else { plugin.logDebug( "Player " + player.getName() + " does NOT have " + PERM_LEVEL + " permission."); } if (player.hasPermission(PERM_EXP) || !plugin.config.permsEnabled() || (player.isOp() && plugin.config.opsAllPerms())) { plugin.logDebug("Player " + player.getName() + " does have " + PERM_EXP + " permission."); player.setExp(restoration.exp); plugin.logDebug("Player " + player.getName() + " gets " + restoration.exp + " XP."); } else { plugin.logDebug( "Player " + player.getName() + " does NOT have " + PERM_EXP + " permission."); } if (plugin.config.shouldNotify()) { plugin.message(player, plugin.config.msgRecovered()); } removeRestoration(player); if (hasRestoration(player)) { plugin.message(player, "Restore exists!!!"); } } }
private void commandWithdraw(CommandSender sender, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "The console does not have an XP bank account."); return; } if (args.length < 2) { sender.sendMessage(ChatColor.RED + "Usage: /xpbank withdraw <amount>"); return; } Player p = (Player) sender; Integer currentBalance = MinebotXPBank.getBalance(p.getName()); if (currentBalance == null) { MinebotXPBank.initAccount(p.getName()); currentBalance = 0; } Integer withdrawAmount; if (args[1].equals("all")) { withdrawAmount = currentBalance; } else { try { withdrawAmount = Integer.parseInt(args[1]); } catch (NumberFormatException e) { sender.sendMessage(ChatColor.RED + "Please provide a valid number amount to withdraw!"); return; } } int newBalance = currentBalance - withdrawAmount; if (newBalance < 0) { sender.sendMessage(ChatColor.RED + "You don't have that many XP to withdraw."); } else { MinebotXPBank.setBalance(p.getName(), newBalance); sender.sendMessage(withdrawAmount.toString() + " XP " + ChatColor.GREEN + "withdrawn."); sender.sendMessage( ChatColor.GREEN + "Remaining balance: " + ChatColor.WHITE + newBalance + " XP"); int oldExp = MinebotXPBank.calculateXP(p); p.setLevel(0); p.setExp(0); p.giveExp(oldExp + withdrawAmount); } }
public void cmdRestore(Player player) { if (player.hasPermission(PERM_RESTORE_INV)) { if (hasRestoration(player)) { Restoration restoration = getRestoration(player); player.getInventory().clear(); player.getInventory().setContents(restoration.inventory); player.getInventory().setArmorContents(restoration.armour); if (plugin.isMc19or110()) { player.getInventory().setItemInOffHand(restoration.offHand); } player.setLevel(restoration.level); player.setExp(restoration.exp); removeRestoration(player); } else { plugin.message(player, "Nothing to restore."); } } else { plugin.message(player, plugin.config.msgNoPerm()); } }
public void addPlayer() { spawnBack = player.getLocation().clone().add(0.5D, 0.5D, 0.5D); health = player.getHealth(); hunger = player.getFoodLevel(); setInventory(player.getInventory().getContents()); gamemode = player.getGameMode(); xpAmount = player.getExp(); /** Clear all of this * */ player.setHealth(20.0); player.setFoodLevel(20); player.getInventory().clear(); player.getInventory().setHelmet(null); player.getInventory().setChestplate(null); player.getInventory().setLeggings(null); player.getInventory().setBoots(null); player.setGameMode(GameMode.SURVIVAL); player.setExp(0); player.setLevel(0); }
public static void changeLobby(Player p, int i, boolean teleport) { LobbyList.put(p.getUniqueId(), i); for (Player o : Bukkit.getOnlinePlayers()) { p.showPlayer(o); if (LobbyList.containsKey(o.getUniqueId())) { if (LobbyList.get(o.getUniqueId()) != i) { p.hidePlayer(o); o.hidePlayer(p); } else { o.showPlayer(p); } } else { p.hidePlayer(o); o.hidePlayer(p); } } p.setExp(0); p.setLevel(getLobby(p)); if (teleport) { p.teleport(GameAPI.getSpawnLocation()); p.getWorld().playEffect(p.getLocation(), Effect.MOBSPAWNER_FLAMES, 7); } }
public void cmdCollect(Player player) { if (player.hasPermission(PERM_SAVE_INV)) { if (plugin.config.shouldNotify()) { plugin.message(player, plugin.config.msgSaving()); } Restoration restoration = new Restoration(); restoration.enabled = false; restoration.inventory = Arrays.copyOfRange(player.getInventory().getContents(), 0, 36); restoration.armour = player.getInventory().getArmorContents(); if (plugin.isMc19or110()) { restoration.offHand = player.getInventory().getItemInOffHand(); } restoration.playerName = player.getDisplayName(); restoration.level = player.getLevel(); restoration.exp = player.getExp(); player.setLevel(0); player.setExp(0f); player.getInventory().clear(); addRestoration(player, restoration); } else { plugin.message(player, plugin.config.msgNoPerm()); } }
public static void saveInventory(Player player) { armourContents.put(player.getName(), player.getInventory().getArmorContents()); inventoryContents.put(player.getName(), player.getInventory().getContents()); locations.put(player.getName(), player.getLocation()); xp.put(player.getName(), Float.valueOf(player.getExp())); xpLevel.put(player.getName(), Integer.valueOf(player.getLevel())); gameModes.put(player.getName(), player.getGameMode()); potions.put(player.getName(), player.getActivePotionEffects()); foodLevel.put(player.getName(), Integer.valueOf(player.getFoodLevel())); Health.put(player.getName(), Double.valueOf(player.getHealth())); flight.put(player.getName(), Boolean.valueOf(player.getAllowFlight())); player.setAllowFlight(false); player.setHealth(20.0D); player.setFoodLevel(20); for (PotionEffect effect : player.getActivePotionEffects()) { player.removePotionEffect(effect.getType()); } player.getInventory().clear(); player.setLevel(0); player.setExp(0.0F); player.setGameMode(GameMode.SURVIVAL); }
@EventHandler(priority = EventPriority.HIGHEST) public void onPlayerJoinEvent(PlayerJoinEvent e) { e.setJoinMessage(""); Player p = e.getPlayer(); Game.players.add(p.getUniqueId()); p.setHealth(20.0); p.setExp(0); ChatUtilities.broadcast(e.getPlayer().getDisplayName() + " has joined!"); p.removePotionEffect(PotionEffectType.INVISIBILITY); p.setGameMode(GameMode.ADVENTURE); p.getInventory().clear(); p.getInventory().setHelmet(null); Game.setCanStart(Bukkit.getOnlinePlayers().size() >= 2); LocationUtilities.teleportToLobby(p); CraftPlayer craftplayer = (CraftPlayer) p; PlayerConnection connection = craftplayer.getHandle().playerConnection; IChatBaseComponent header = ChatSerializer.a("{\"text\": \" §3Villager Hunt \"}"); IChatBaseComponent footer = ChatSerializer.a("{\"text\": \" §4Development Test \"}"); PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter(); try { Field headerField = packet.getClass().getDeclaredField("a"); headerField.setAccessible(true); headerField.set(packet, header); headerField.setAccessible(!headerField.isAccessible()); Field footerField = packet.getClass().getDeclaredField("b"); footerField.setAccessible(true); footerField.set(packet, footer); footerField.setAccessible(!footerField.isAccessible()); } catch (Exception ex) { ex.printStackTrace(); } connection.sendPacket(packet); }
/** Damage * */ @EventHandler public void onDamageByEntity(EntityDamageByEntityEvent e) { if (e.getEntity() instanceof Chicken) { if (e.getDamager() instanceof Arrow) { /** Arrow * */ Arrow a = (Arrow) e.getDamager(); if (a.getShooter() instanceof Player) { /** Player * */ Player p = (Player) a.getShooter(); /** Remove from list * */ if (chickens.contains(e.getEntity())) chickens.remove(e.getEntity()); /** Remove * */ e.getEntity().remove(); /** Give player point * */ points.put(p.getName(), points.get(p.getName()) + 1); /** Play sound * */ p.playSound(p.getLocation(), Sound.NOTE_PLING, 1, 3); /** Title * */ Util.sendTitle(p, 5, 10, 5, "", "Getroffen!"); /** Level and exp * */ p.setLevel(points.get(p.getName())); p.setExp((1f / 15) * points.get(p.getName())); /** Check win * */ checkWin(); } } } }
public boolean setPlayerExperience(String player, float level) { Player p = getPlayerExact(player); p.setExp(level); p.saveData(); return true; }
public void manageDeath(PlayerKilledEvent event) { Gamer killed = event.getKilled(); final Player p = killed.getPlayer(); p.setHealth(20); if (event.isCancelled()) return; for (HumanEntity human : p.getInventory().getViewers()) human.closeInventory(); p.leaveVehicle(); p.eject(); p.setLevel(0); p.setExp(0F); if (event.getDeathMessage().equals(ChatColor.stripColor(event.getDeathMessage()))) event.setDeathMessage(ChatColor.DARK_RED + event.getDeathMessage()); event.setDeathMessage( this.formatDeathMessage( event.getDeathMessage().replace("%Remaining%", "" + (getAliveGamers().size() - 1)), p)); if (event.getKillerPlayer() != null) { event.getKillerPlayer().addKill(); event.setDeathMessage( this.formatDeathMessage(event.getDeathMessage(), event.getKillerPlayer().getPlayer())); } Bukkit.broadcastMessage(event.getDeathMessage()); int reward = hg.getPrize(getAliveGamers().size()); if (reward > 0) killed.addBalance(reward); hg.cannon(); killed.clearInventory(); World world = p.getWorld(); for (ItemStack item : event.getDrops()) { if (item == null || item.getType() == Material.AIR || item.containsEnchantment(EnchantmentManager.UNLOOTABLE)) continue; else if (item.hasItemMeta()) world .dropItemNaturally(event.getDropsLocation(), item.clone()) .getItemStack() .setItemMeta(item.getItemMeta()); else world.dropItemNaturally(event.getDropsLocation(), item); } setSpectator(killed); ScoreboardManager.makeScore( "Main", DisplaySlot.SIDEBAR, cm.getScoreboardPlayersLength(), getAliveGamers().size()); hg.checkWinner(); p.setVelocity(new Vector()); for (PotionEffect effect : p.getActivePotionEffects()) p.removePotionEffect(effect.getType()); p.teleport(p.getWorld().getHighestBlockAt(p.getLocation()).getLocation().clone().add(0, 10, 0)); p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 40, 9), true); p.sendBlockChange(p.getLocation(), Material.PORTAL.getId(), (byte) 0); p.sendBlockChange(p.getLocation(), Material.AIR.getId(), (byte) 0); for (Entity entity : p.getWorld().getEntities()) { if (entity instanceof Tameable && ((Tameable) entity).isTamed() && ((Tameable) entity).getOwner().getName().equals(p.getName())) { if (entity instanceof Wolf) ((Wolf) entity).setSitting(true); else if (entity instanceof Ocelot) ((Ocelot) entity).setSitting(true); else entity.remove(); } if (entity instanceof Creature && ((Creature) entity).getTarget() == p) ((Creature) entity).setTarget(null); } if (HungergamesApi.getConfigManager().getMainConfig().isKickOnDeath() && !p.hasPermission("hungergames.spectate")) p.kickPlayer(String.format(cm.getKickDeathMessage(), event.getDeathMessage())); HungergamesApi.getAbilityManager().unregisterPlayer(p); HungergamesApi.getInventoryManager().updateSpectatorHeads(); }
@Override public void setExp(float exp) { caller.setExp(exp); }
public static void playerJoinArena(Player player, String arenaname) { boolean found = false; boolean alreadyJoined = false; for (Arena arena : W.arenaList) { if (arena.playersInArena != null) { if (arena.playersInArena.contains(player)) { alreadyJoined = true; } } } if (!alreadyJoined) { for (Arena arena : W.arenaList) { if (arena.arenaName.equalsIgnoreCase(arenaname)) { found = true; if (arena.disguiseBlocks.isEmpty()) { MessageM.sendFMessage(player, ConfigC.error_joinNoBlocksSet, true); } else { LocationSerializable zero = new LocationSerializable(Bukkit.getWorld("world"), 0, 0, 0, 0, 0); if (arena.lobbyWarp != null && arena.hidersWarp != null && arena.seekersWarp != null) { if (!arena.lobbyWarp.equals(zero) && !arena.hidersWarp.equals(zero) && !arena.seekersWarp.equals(zero)) { if (arena.gameState == ArenaState.WAITING || arena.gameState == ArenaState.STARTING) { if (arena.playersInArena.size() >= arena.maxPlayers) { if (!PlayerM.hasPerm(player, PermsC.joinfull, false)) { MessageM.sendFMessage(player, ConfigC.error_joinFull, true); return; } } arena.playersInArena.add(player); W.pLocation.put(player, player.getLocation()); W.pGameMode.put(player, player.getGameMode()); player.teleport(arena.lobbyWarp); player.setGameMode(GameMode.SURVIVAL); W.pInventory.put(player, player.getInventory().getContents()); player.getInventory().clear(); player.updateInventory(); W.pArmor.put(player, player.getInventory().getArmorContents()); player.getInventory().setHelmet(new ItemStack(Material.AIR)); player.getInventory().setChestplate(new ItemStack(Material.AIR)); player.getInventory().setLeggings(new ItemStack(Material.AIR)); player.getInventory().setBoots(new ItemStack(Material.AIR)); W.pEXP.put(player, player.getExp()); player.setExp(0); W.pEXPL.put(player, player.getLevel()); player.setLevel(0); W.pHealth.put(player, player.getHealth()); player.setHealth(20); W.pFood.put(player, player.getFoodLevel()); player.setFoodLevel(20); ArenaHandler.sendFMessage( arena, ConfigC.normal_joinJoinedArena, true, "playername-" + player.getName(), "1-" + arena.playersInArena.size(), "2-" + arena.maxPlayers); if (arena.playersInArena.size() < arena.minPlayers) { ArenaHandler.sendFMessage( arena, ConfigC.warning_lobbyNeedAtleast, true, "1-" + arena.minPlayers); } } else { MessageM.sendFMessage(player, ConfigC.error_joinArenaIngame, true); } } else { MessageM.sendFMessage(player, ConfigC.error_joinWarpsNotSet, true); } } else { MessageM.sendFMessage(player, ConfigC.error_joinWarpsNotSet, true); } } } } } else { MessageM.sendFMessage(player, ConfigC.error_joinAlreadyJoined, true); return; } if (!found) { MessageM.sendFMessage(player, ConfigC.error_noArena, true, "name-" + arenaname); } SignsHandler.updateSigns(); }
public static void playerLeaveArena(Player player, boolean message, boolean cleanup) { Arena arena = null; for (Arena arena2 : W.arenaList) { if (arena2.playersInArena != null) { if (arena2.playersInArena.contains(player)) { arena = arena2; } } } if (arena != null) { if (cleanup) { arena.playersInArena.remove(player); if (arena.seekers.contains(player)) { arena.seekers.remove(player); } if (arena.playersInArena.size() <= arena.minPlayers) { if (arena.gameState.equals(ArenaState.STARTING)) { arena.gameState = ArenaState.WAITING; arena.timer = 0; ArenaHandler.sendFMessage( arena, ConfigC.warning_lobbyNeedAtleast, true, "1-" + arena.minPlayers); } else { ArenaHandler.seekersWin(arena); } } else if (arena.seekers.size() <= 0 && arena.gameState == ArenaState.INGAME) { Player seeker = arena.playersInArena.get(W.random.nextInt(arena.playersInArena.size())); ArenaHandler.sendFMessage( arena, ConfigC.warning_ingameNEWSeekerChoosen, true, "seeker-" + seeker.getName()); ArenaHandler.sendFMessage( arena, ConfigC.normal_ingameSeekerChoosen, true, "seeker-" + seeker.getName()); W.dcAPI.undisguisePlayer(seeker); seeker.getInventory().clear(); arena.seekers.add(seeker); seeker.teleport(arena.seekersWarp); W.seekertime.put(seeker, arena.waitingTimeSeeker); } } player.getInventory().clear(); player.getInventory().setContents(W.pInventory.get(player)); player.updateInventory(); W.pInventory.remove(player); player.getInventory().setArmorContents(W.pArmor.get(player)); W.pArmor.remove(player); player.setExp(W.pEXP.get(player)); W.pEXP.remove(player); player.setLevel(W.pEXPL.get(player)); W.pEXPL.remove(player); player.setHealth(W.pHealth.get(player)); W.pHealth.remove(player); player.setFoodLevel(W.pFood.get(player)); W.pFood.remove(player); W.pBlock.remove(player); player.teleport(W.pLocation.get(player)); player.setGameMode(W.pGameMode.get(player)); W.pGameMode.remove(player); W.pLocation.remove(player); for (Player pl : Bukkit.getOnlinePlayers()) { pl.showPlayer(player); if (W.hiddenLoc.get(player) != null) { Block pBlock = W.hiddenLoc.get(player).getBlock(); pl.sendBlockChange(pBlock.getLocation(), Material.AIR, (byte) 0); } if (W.dcAPI.isDisguised(player)) { W.dcAPI.undisguisePlayer(player); } } ScoreboardHandler.removeScoreboard(player); MessageM.sendFMessage(player, ConfigC.normal_leaveYouLeft, true); if (message) { ArenaHandler.sendFMessage( arena, ConfigC.normal_leaveLeftArena, true, "playername-" + player.getName(), "1-" + arena.playersInArena.size(), "2-" + arena.maxPlayers); } } else { if (message) { MessageM.sendFMessage(player, ConfigC.error_leaveNotInArena, true); } return; } SignsHandler.updateSigns(); }
public void unload() { final Player player = Bukkit.getPlayerExact(name); if (player == null) { final ArenaPlayer aPlayer = ArenaPlayer.parsePlayer(name); PVPArena.instance.getAgm().disconnect(aPlayer.getArena(), aPlayer); return; } debug.i("restoring PlayerState of " + name, player); player.setFireTicks(fireticks); player.setFoodLevel(foodlevel); player.setGameMode(GameMode.getByValue(gamemode)); final ArenaPlayer aPlayer = ArenaPlayer.parsePlayer(player.getName()); player.setFoodLevel(foodlevel); if (player.getMaxHealth() != maxhealth) { final double newHealth = player.getMaxHealth() * health / maxhealth; if (newHealth > player.getMaxHealth()) { player.setHealth(player.getMaxHealth()); } else { player.setHealth(newHealth); } } else { player.setHealth(health); } player.setSaturation(saturation); player.setGameMode(GameMode.getByValue(gamemode)); player.setLevel(explevel); player.setExp(experience); player.setExhaustion(exhaustion); player.setFallDistance(0); player.setVelocity(new Vector()); if (aPlayer.getArena() != null && aPlayer.getArena().getArenaConfig().getBoolean(CFG.CHAT_COLORNICK)) { player.setDisplayName(displayname); } if (aPlayer.getArena() != null) { ArenaModuleManager.unload(aPlayer.getArena(), player); PVPArena.instance.getAgm().unload(aPlayer.getArena(), player); } removeEffects(player); player.addPotionEffects(potionEffects); aPlayer.setTelePass(false); player.setFireTicks(fireticks); if (aPlayer.getArena() != null) { player.setNoDamageTicks( aPlayer.getArena().getArenaConfig().getInt(CFG.TIME_TELEPORTPROTECT) * 20); } player.resetPlayerTime(); if (flying && !player.getAllowFlight()) { player.setAllowFlight(true); } player.setFlying(flying); }
public void endDuel(BukkitDuel plugin, boolean initiatorWins) { this.isActive = false; this.arena.setInUse(false); this.initiator.teleport(initiatorOriginalPosition); this.challengee.teleport(challengeeOriginalPosition); this.initiator.setHealth(20); this.initiator.setFoodLevel(20); this.challengee.setHealth(20); this.challengee.setFoodLevel(20); if (initiatorWins) { initiator.sendMessage(ChatColor.GREEN + "You have won the duel! Winnings are listed below:"); if (stakesChallengee.getWagerMoneyAmount() > 0 && BukkitDuel.economy.isEnabled()) { BukkitDuel.economy.bankDeposit(initiator.getName(), stakesChallengee.getWagerMoneyAmount()); initiator.sendMessage("Money: " + stakesChallengee.getWagerMoneyAmount() + " Dollars"); } if (stakesChallengee.getWagerExperienceAmount() > 0) { // adjust for levels rather than exp amount initiator.setExp(initiator.getExp() + stakesChallengee.getWagerExperienceAmount()); initiator.sendMessage("Experience: " + stakesChallengee.getWagerExperienceAmount()); if (challengee.isOnline()) challengee.setExp(initiator.getExp() - stakesChallengee.getWagerExperienceAmount()); } if (stakesInitiator.getWagerItems().getSize() > 0) { for (ItemStack items : stakesInitiator.getWagerItems().getContents()) { initiator.getInventory().addItem(items); } } if (stakesChallengee.getWagerItems().getSize() > 0) { for (ItemStack items : stakesChallengee.getWagerItems().getContents()) { initiator.getInventory().addItem(items); initiator.sendMessage("Item: " + items.getType() + "x " + items.getAmount()); } } if (stakesChallengee.getWagerPowerAmount() > 0) { // Do faction power handling here. } if (challengee.isOnline()) challengee.sendMessage(ChatColor.GREEN + "You have lost the duel, tough luck!"); } else { challengee.sendMessage(ChatColor.GREEN + "You have won the duel! Winnings are listed below:"); if (stakesInitiator.getWagerMoneyAmount() > 0 && BukkitDuel.economy.isEnabled()) { BukkitDuel.economy.bankDeposit(challengee.getName(), stakesInitiator.getWagerMoneyAmount()); challengee.sendMessage("Money: " + stakesChallengee.getWagerMoneyAmount() + " Dollars"); } if (stakesInitiator.getWagerExperienceAmount() > 0) { // adjust for levels rather than exp amount challengee.setExp(initiator.getExp() + stakesInitiator.getWagerExperienceAmount()); challengee.sendMessage("Experience: " + stakesChallengee.getWagerExperienceAmount()); if (initiator.isOnline()) initiator.setExp(initiator.getExp() - stakesInitiator.getWagerExperienceAmount()); } if (stakesChallengee.getWagerItems().getSize() > 0) { for (ItemStack items : stakesChallengee.getWagerItems().getContents()) { challengee.getInventory().addItem(items); } } if (stakesInitiator.getWagerItems().getSize() > 0) { for (ItemStack items : stakesInitiator.getWagerItems()) { challengee.getInventory().addItem(items); challengee.sendMessage("Item: " + items.getType() + "x " + items.getAmount()); } } if (stakesInitiator.getWagerPowerAmount() > 0) { // Do faction power handling here. } if (initiator.isOnline()) initiator.sendMessage(ChatColor.GREEN + "You have lost the duel, tough luck!"); } }