package mcjty.rftools.commands; import mcjty.lib.varia.BlockMeta; import mcjty.rftools.blocks.RFToolsTools; import mcjty.rftools.blocks.dimlets.DimletSetup; import mcjty.rftools.items.dimlets.*; import net.minecraft.block.Block; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class CmdDimletCfg extends AbstractRfToolsCommand { @Override public String getHelp() { return ""; } @Override public String getCommand() { return "dimletcfg"; } @Override public int getPermissionLevel() { return 1; } @Override public boolean isClientSide() { return false; } @Override public void execute(ICommandSender sender, String[] args) { if (args.length > 1) { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Too many parameters!")); return; } World world = sender.getEntityWorld(); ItemStack heldItem = null; if (sender instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) sender; heldItem = player.getHeldItem(); } if (heldItem == null || heldItem.getItem() != DimletSetup.knownDimlet) { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "You need to hold a known dimlet in your hand!")); return; } DimletKey key = KnownDimletConfiguration.getDimletKey(heldItem, world); DimletEntry entry = KnownDimletConfiguration.getEntry(key); if (entry != null) { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "In dimlets.cfg:")); sender.addChatMessage(new ChatComponentText("dimletsettings {")); DimletType type = key.getType(); sender.addChatMessage(new ChatComponentText(" I:\"rarity." + type.dimletType.getName()+"."+key.getName() + "\"=" + entry.getRarity())); sender.addChatMessage(new ChatComponentText(" I:\"rfcreate." + type.dimletType.getName()+"."+key.getName() + "\"=" + entry.getRfCreateCost())); sender.addChatMessage(new ChatComponentText(" I:\"rfmaintain." + type.dimletType.getName()+"."+key.getName() + "\"=" + entry.getRfMaintainCost())); sender.addChatMessage(new ChatComponentText(" I:\"ticks." + type.dimletType.getName()+"."+key.getName() + "\"=" + entry.getTickCost())); if (entry.isRandomNotAllowed()) { sender.addChatMessage(new ChatComponentText(" B:\"expensive." + type.dimletType.getName()+"."+key.getName() + "\"=true")); } if (entry.isLootNotAllowed()) { sender.addChatMessage(new ChatComponentText(" B:\"noloot." + type.dimletType.getName()+"."+key.getName() + "\"=true")); } sender.addChatMessage(new ChatComponentText("}")); if (!entry.isRandomNotAllowed()) { if (type == DimletType.DIMLET_MATERIAL || type == DimletType.DIMLET_LIQUID) { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "If you only want this for features (no terrain):")); sender.addChatMessage(new ChatComponentText(" B:\"expensive." + type.dimletType.getName() + "." + key.getName() + "\"=true")); } else { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "If you don't want this dimlet to be generated random:")); sender.addChatMessage(new ChatComponentText(" B:\"expensive." + type.dimletType.getName() + "." + key.getName() + "\"=true")); } } if (!entry.isLootNotAllowed()) { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "If you don't want this dimlet to be generated as loot:")); sender.addChatMessage(new ChatComponentText(" B:\"noloot." + type.dimletType.getName() + "." + key.getName() + "\"=true")); } sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "In dimlets.cfg, if you want to blacklist this dimlet:")); sender.addChatMessage(new ChatComponentText("knowndimlets {")); sender.addChatMessage(new ChatComponentText(" I:\"dimlet." + type.dimletType.getName()+"."+key.getName() + "\"=-1")); sender.addChatMessage(new ChatComponentText("}")); String modid = null; if (type == DimletType.DIMLET_MATERIAL) { BlockMeta blockMeta = DimletObjectMapping.idToBlock.get(key); if (blockMeta != null) { modid = RFToolsTools.getModidForBlock(blockMeta.getBlock()); } } else if (type == DimletType.DIMLET_LIQUID) { Block block = DimletObjectMapping.idToFluid.get(key); if (block != null) { modid = RFToolsTools.getModidForBlock(block); } } if (modid != null && !"?".equals(modid)) { sender.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "In dimlets.cfg, if you want to blacklist the entire mod:")); sender.addChatMessage(new ChatComponentText("knowndimlets {")); sender.addChatMessage(new ChatComponentText(" B:\"modban." + type.dimletType.getName() + "." + modid + "\"=true")); sender.addChatMessage(new ChatComponentText("}")); } } } }