private void handleBlockChange(Player player, Block block, short entityID, String mobName) { if (!player.hasPermission("silkspawners.changetype." + mobName)) { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noPermissionChangingSpawner"))); return; } // Call the event and maybe change things! SilkSpawnersSpawnerChangeEvent changeEvent = new SilkSpawnersSpawnerChangeEvent( player, block, entityID, su.getSpawnerEntityID(block), 1); plugin.getServer().getPluginManager().callEvent(changeEvent); // See if we need to stop if (changeEvent.isCancelled()) { return; } // Get the new ID (might be changed) short newEntityID = changeEvent.getEntityID(); String newMob = su.getCreatureName(entityID); if (su.setSpawnerType( block, newEntityID, player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("changingDeniedWorldGuard")))) { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("changedSpawner")) .replace("%creature%", newMob)); } }
private void handleChange(CommandSender sender, String newMob) { if (sender instanceof Player) { if (su.isUnkown(newMob)) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("unknownCreature")) .replace("%creature%", newMob)); return; } // entityID short entityID = su.name2Eid.get(newMob); String creature = su.getCreatureName(entityID); // Filter spaces (like Zombie Pigman) String mobName = creature.toLowerCase().replace(" ", ""); Player player = (Player) sender; int distance = plugin.config.getInt("spawnerCommandReachDistance", 6); // If the distance is -1, return if (distance != -1) { // Get the block Block block = su.nmsProvider.getSpawnerFacing(player, distance); if (block != null) { handleBlockChange(player, block, entityID, mobName); return; } } ItemStack itemInHand = su.nmsProvider.getSpawnerItemInHand(player); Material itemMaterial; try { itemMaterial = itemInHand.getType(); } catch (NullPointerException e) { itemMaterial = null; } if (itemMaterial != null && itemMaterial == Material.MOB_SPAWNER) { handleChangeSpawner(player, entityID, mobName, itemInHand); } else if (itemMaterial != null && itemMaterial == SilkUtil.SPAWN_EGG) { handleChangeEgg(player, entityID, mobName, itemInHand); } else { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("spawnerNotDeterminable"))); } } else { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noConsole"))); } }
private void handleReload(CommandSender sender) { if (sender.hasPermission("silkspawners.reload")) { plugin.reloadConfigs(); su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("configsReloaded"))); } else { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noPermission"))); } }
private void handleHelp(CommandSender sender) { for (int i = 1; i <= 7; i++) { String message = ChatColor.translateAlternateColorCodes( '\u0026', plugin .localization .getString("help" + i) .replace("%version%", plugin.getDescription().getVersion())); su.sendMessage(sender, message); } }
private void handleGive(CommandSender sender, String receiver, String mob, String amountString) { int amount = plugin.config.getInt("defaultAmountGive", 1); // Check given amount if (amountString != null && !amountString.isEmpty()) { amount = su.getNumber(amountString); if (amount == -1) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("useNumbers"))); return; } } // Check player Player player = su.nmsProvider.getPlayer(receiver); // Online check if (player == null) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("playerOffline"))); return; } // Check if it's an egg or not boolean isEgg = su.isEgg(mob); String egg = mob; if (isEgg) { egg = egg.replaceFirst("egg$", ""); } if (isEgg) { handleGiveEgg(sender, player, egg, amount); } else { handleGiveSpawner(sender, player, mob, amount); } }
private void handleView(CommandSender sender) { if (sender instanceof Player) { // If the distance is -1, return int distance = plugin.config.getInt("spawnerCommandReachDistance", 6); if (distance == -1) { return; } // Get the block, returns null for non spawner blocks Player player = (Player) sender; Block block = su.nmsProvider.getSpawnerFacing(player, distance); if (block == null) { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("lookAtSpawner"))); return; } short entityID = su.getSpawnerEntityID(block); if (player.hasPermission("silkspawners.viewtype")) { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("getSpawnerType")) .replace("%creature%", su.getCreatureName(entityID))); } else { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noPermissionViewType"))); } } else { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noConsole"))); } }
private void handleChangeEgg( Player player, short entityID, String mobName, ItemStack itemInHand) { if (!player.hasPermission("silkspawners.changetypewithegg." + mobName)) { su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noPermissionChangingEgg"))); return; } // Call the event and maybe change things! SilkSpawnersSpawnerChangeEvent changeEvent = new SilkSpawnersSpawnerChangeEvent( player, null, entityID, su.getStoredSpawnerItemEntityID(itemInHand), itemInHand.getAmount()); plugin.getServer().getPluginManager().callEvent(changeEvent); // See if we need to stop if (changeEvent.isCancelled()) { return; } // Get the new ID (might be changed) short newEntityID = changeEvent.getEntityID(); String newMob = su.getCreatureName(entityID); ItemStack newItem = su.setSpawnerType(itemInHand, newEntityID, plugin.localization.getString("spawnerName")); su.nmsProvider.setSpawnerItemInHand(player, newItem); su.sendMessage( player, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("changedEgg")) .replace("%creature%", newMob)); }
private void handleUnknownArgument(CommandSender sender) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("unknownArgument"))); }
private void handleGiveSpawner(CommandSender sender, Player receiver, String mob, int amount) { if (su.isUnkown(mob)) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("unknownCreature")) .replace("%creature%", mob)); return; } short entityID = su.name2Eid.get(mob); String creature = su.getCreatureName(entityID); // Filter spaces (like Zombie Pigman) String mobName = creature.toLowerCase().replace(" ", ""); // Add spawner if (sender.hasPermission("silkspawners.freeitem." + mobName)) { // Have space in inventory if (receiver.getInventory().firstEmpty() == -1) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noFreeSlot"))); return; } receiver .getInventory() .addItem( su.newSpawnerItem( entityID, su.getCustomSpawnerName(su.eid2MobID.get(entityID)), amount, false)); if (sender instanceof Player) { Player pSender = (Player) sender; if (pSender.getUniqueId() == receiver.getUniqueId()) { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("addedSpawner")) .replace("%creature%", creature) .replace("%amount%", Integer.toString(amount))); } else { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin .localization .getString("addedSpawnerOtherPlayer") .replace("%player%", receiver.getName())) .replace("%creature%", creature) .replace("%amount%", Integer.toString(amount))); } } else { su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin .localization .getString("addedSpawnerOtherPlayer") .replace("%player%", receiver.getName())) .replace("%creature%", creature) .replace("%amount%", Integer.toString(amount))); } return; } su.sendMessage( sender, ChatColor.translateAlternateColorCodes( '\u0026', plugin.localization.getString("noPermissionFreeSpawner"))); }