Search in sources :

Example 1 with FestivalHandler

use of lumien.randomthings.handler.festival.FestivalHandler in project Random-Things by lumien231.

the class RTCommand method execute.

@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
    if (args.length == 0) {
        return;
    }
    if (args[0].equals("setBiomeCrystal")) {
        if (args.length == 2 && sender instanceof EntityPlayer) {
            String biomeName = args[1];
            EntityPlayer player = (EntityPlayer) sender;
            ItemStack equipped = player.getHeldItemMainhand();
            if (equipped != null && equipped.getItem() instanceof ItemBiomeCrystal) {
                if (equipped.getTagCompound() == null) {
                    equipped.setTagCompound(new NBTTagCompound());
                }
                equipped.getTagCompound().setString("biomeName", args[1]);
            }
        }
    } else if (args[0].equals("generateBiomeCrystalChests")) {
        if (sender instanceof EntityPlayer) {
            List<ResourceLocation> biomeIds = new ArrayList<>(Biome.REGISTRY.getKeys());
            int modX = 0;
            while (!biomeIds.isEmpty()) {
                sender.getEntityWorld().setBlockState(sender.getPosition().add(modX, 0, 0), Blocks.CHEST.getDefaultState());
                IInventory inventory = (IInventory) sender.getEntityWorld().getTileEntity(sender.getPosition().add(modX, 0, 0));
                for (int i = 0; i < 27; i++) {
                    if (!biomeIds.isEmpty()) {
                        ResourceLocation next = biomeIds.remove(biomeIds.size() - 1);
                        ItemStack crystal = new ItemStack(ModItems.biomeCrystal);
                        crystal.setTagCompound(new NBTTagCompound());
                        crystal.getTagCompound().setString("biomeName", next.toString());
                        inventory.setInventorySlotContents(i, crystal);
                    }
                }
                modX += 2;
            }
        }
    } else if (args[0].equals("tpFilter")) {
        if (sender instanceof EntityPlayerMP) {
            EntityPlayerMP player = (EntityPlayerMP) sender;
            ItemStack held;
            if ((held = player.getHeldItemMainhand()) != null && held.getItem() == ModItems.positionFilter) {
                BlockPos pos = ItemPositionFilter.getPosition(held);
                player.connection.setPlayerLocation(pos.getX(), pos.getY() + 150, pos.getZ(), player.rotationYaw, player.rotationPitch);
            }
        }
    } else if (args[0].equals("testSlimeSpawn")) {
        BlockPos pos = sender.getPosition();
        World world = sender.getEntityWorld();
        if (pos != null && world != null) {
            EntitySlime slime = new EntitySlime(world);
            slime.setLocationAndAngles(pos.getX(), pos.getY(), pos.getZ(), 0F, 0F);
            sender.sendMessage(new TextComponentString(slime.getCanSpawnHere() + ""));
        }
    } else if (args[0].equals("notify") && args.length == 5) {
        String title = args[1];
        String body = args[2];
        String itemName = args[3];
        String player = args[4];
        EntityPlayerMP playerEntity = server.getPlayerList().getPlayerByUsername(player);
        ItemStack itemStack = new ItemStack(ForgeRegistries.ITEMS.getValue(new ResourceLocation(itemName)));
        MessageNotification message = new MessageNotification(title, body, itemStack);
        PacketHandler.INSTANCE.sendTo(message, playerEntity);
    } else if (args[0].equals("fireplaces")) {
        FlooNetworkHandler handler = FlooNetworkHandler.get(sender.getEntityWorld());
        List<FlooFireplace> firePlaces = handler.getFirePlaces();
        sender.sendMessage(new TextComponentString("Floo Fireplaces in Dimension " + sender.getEntityWorld().provider.getDimension()).setStyle(new Style().setUnderlined(true)));
        sender.sendMessage(new TextComponentString(""));
        for (FlooFireplace firePlace : firePlaces) {
            String name = firePlace.getName();
            UUID creator = firePlace.getCreatorUUID();
            String ownerName = null;
            if (creator != null) {
                GameProfile profile = server.getPlayerProfileCache().getProfileByUUID(creator);
                if (profile != null) {
                    ownerName = profile.getName();
                }
            }
            BlockPos pos = firePlace.getLastKnownPosition();
            sender.sendMessage(new TextComponentString((name == null ? "<Unnamed>" : name) + " | " + String.format("%d %d %d", pos.getX(), pos.getY(), pos.getZ()) + (ownerName != null ? " | " + ownerName : "")));
        }
    } else if (args[0].equals("festival")) {
        FestivalHandler handler = FestivalHandler.get(sender.getEntityWorld());
        List<EntityVillager> villagerList = sender.getEntityWorld().getEntitiesWithinAABB(EntityVillager.class, new AxisAlignedBB(sender.getPosition()).grow(50));
        if (!villagerList.isEmpty()) {
            EntityVillager villager = villagerList.get(0);
            int success = handler.addFestival(villager);
            if (success == 2) {
                sender.sendMessage(new TextComponentTranslation("command.festival.scheduled"));
            } else {
                sender.sendMessage(new TextComponentTranslation("command.festival.failed"));
            }
        } else {
            sender.sendMessage(new TextComponentTranslation("command.festival.novillager"));
        }
    } else if (args[0].equals("ancientFurnace")) {
        WorldGenAncientFurnace.pattern.place(sender.getEntityWorld(), sender.getPosition(), 3);
    }
}
Also used : AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) TextComponentString(net.minecraft.util.text.TextComponentString) MessageNotification(lumien.randomthings.network.messages.MessageNotification) World(net.minecraft.world.World) ResourceLocation(net.minecraft.util.ResourceLocation) FlooNetworkHandler(lumien.randomthings.handler.floo.FlooNetworkHandler) EntityVillager(net.minecraft.entity.passive.EntityVillager) Style(net.minecraft.util.text.Style) ArrayList(java.util.ArrayList) List(java.util.List) BlockPos(net.minecraft.util.math.BlockPos) UUID(java.util.UUID) IInventory(net.minecraft.inventory.IInventory) FestivalHandler(lumien.randomthings.handler.festival.FestivalHandler) TextComponentTranslation(net.minecraft.util.text.TextComponentTranslation) EntitySlime(net.minecraft.entity.monster.EntitySlime) ItemBiomeCrystal(lumien.randomthings.item.ItemBiomeCrystal) TextComponentString(net.minecraft.util.text.TextComponentString) GameProfile(com.mojang.authlib.GameProfile) EntityPlayer(net.minecraft.entity.player.EntityPlayer) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) ItemStack(net.minecraft.item.ItemStack) FlooFireplace(lumien.randomthings.handler.floo.FlooFireplace)

Aggregations

GameProfile (com.mojang.authlib.GameProfile)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 UUID (java.util.UUID)1 FestivalHandler (lumien.randomthings.handler.festival.FestivalHandler)1 FlooFireplace (lumien.randomthings.handler.floo.FlooFireplace)1 FlooNetworkHandler (lumien.randomthings.handler.floo.FlooNetworkHandler)1 ItemBiomeCrystal (lumien.randomthings.item.ItemBiomeCrystal)1 MessageNotification (lumien.randomthings.network.messages.MessageNotification)1 EntitySlime (net.minecraft.entity.monster.EntitySlime)1 EntityVillager (net.minecraft.entity.passive.EntityVillager)1 EntityPlayer (net.minecraft.entity.player.EntityPlayer)1 EntityPlayerMP (net.minecraft.entity.player.EntityPlayerMP)1 IInventory (net.minecraft.inventory.IInventory)1 ItemStack (net.minecraft.item.ItemStack)1 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)1 ResourceLocation (net.minecraft.util.ResourceLocation)1 AxisAlignedBB (net.minecraft.util.math.AxisAlignedBB)1 BlockPos (net.minecraft.util.math.BlockPos)1 Style (net.minecraft.util.text.Style)1