package com.sijobe.spc.command; import com.sijobe.spc.wrapper.CommandBase; import com.sijobe.spc.wrapper.CommandException; import com.sijobe.spc.wrapper.CommandSender; import com.sijobe.spc.wrapper.Coordinate; import com.sijobe.spc.wrapper.Player; import java.util.List; import net.minecraft.src.AxisAlignedBB; import net.minecraft.src.Entity; import net.minecraft.src.EntityItem; import net.minecraft.src.World; /** * Command to clear item drops * * @author q3hardcore * @version 1.0 */ @Command ( name = "cleardrops", description = "Clears all item drops within 128 radius of player", example = "", videoURL = "", enabled = true ) public class ClearDrops extends StandardCommand { @Override public void execute(CommandSender sender, List<?> params) throws CommandException { Player player = CommandBase.getSenderAsPlayer(sender); int removedDrops = removeItemDrops(player, 128); player.sendChatMessage("Cleared " + removedDrops + " item drop(s)."); } public static int removeItemDrops(Player player, int radius) { Coordinate pos = player.getPosition(); World world = player.getWorld().getMinecraftWorld(); AxisAlignedBB boundingBox = AxisAlignedBB.getBoundingBox( pos.getX() - radius, pos.getY() - radius, pos.getZ() - radius, pos.getX() + radius, pos.getY() + radius, pos.getZ() + radius ); List<?> nearbyEntities = world.getEntitiesWithinAABBExcludingEntity( player.getMinecraftPlayer(), boundingBox ); int removedDrops = 0; for(int entityIndex = 0; entityIndex < nearbyEntities.size(); entityIndex++) { Entity entity = (Entity)nearbyEntities.get(entityIndex); if(entity instanceof EntityItem) { EntityItem entityItem = (EntityItem)entity; if(entityItem.age >= 0) { player.getWorld().getMinecraftWorld().removeEntity(entityItem); removedDrops++; } } } return removedDrops; } }