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 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"))); }