diff --git a/docs/noppes/npcs/scripted/interfaces/IWorld.html b/docs/noppes/npcs/scripted/interfaces/IWorld.html index d9fe8e893..43f27bad8 100644 --- a/docs/noppes/npcs/scripted/interfaces/IWorld.html +++ b/docs/noppes/npcs/scripted/interfaces/IWorld.html @@ -331,7 +331,7 @@ var activeTableTab = "activeTableTab"; getPlayerNames()  -noppes.npcs.scripted.scoreboard.ScriptScoreboard +noppes.npcs.scripted.ScriptScoreboard getScoreboard()  @@ -1873,7 +1873,7 @@ var activeTableTab = "activeTableTab"; diff --git a/src/main/java/noppes/npcs/EventHooks.java b/src/main/java/noppes/npcs/EventHooks.java index 587aaf6cb..3966a47df 100644 --- a/src/main/java/noppes/npcs/EventHooks.java +++ b/src/main/java/noppes/npcs/EventHooks.java @@ -518,7 +518,7 @@ public class EventHooks { public static boolean onCNPCNaturalSpawn(INaturalSpawn naturalSpawn, BlockPos blockPos, boolean animalSpawnPassed, boolean monsterSpawnPassed, boolean liquidSpawnPassed, boolean airSpawnPassed) { ForgeDataScript handler = ScriptController.Instance.forgeScripts; if (handler.isEnabled()) { - IPos attemptPosition = NpcAPI.Instance().getIPos(blockPos); + IPos attemptPosition = new ScriptBlockPos(blockPos); CustomNPCsEvent.CNPCNaturalSpawnEvent event = new CustomNPCsEvent.CNPCNaturalSpawnEvent(naturalSpawn, attemptPosition, animalSpawnPassed, monsterSpawnPassed, liquidSpawnPassed, airSpawnPassed); handler.callScript("onCNPCNaturalSpawn", event); return NpcAPI.EVENT_BUS.post(event); diff --git a/src/main/java/noppes/npcs/NoppesUtilServer.java b/src/main/java/noppes/npcs/NoppesUtilServer.java index 51bb6b4e5..f99c90988 100644 --- a/src/main/java/noppes/npcs/NoppesUtilServer.java +++ b/src/main/java/noppes/npcs/NoppesUtilServer.java @@ -691,8 +691,8 @@ public class NoppesUtilServer { return entity; } - public static Entity getEntityFromNBT(NBTTagCompound compound, int x, int y, - int z, World worldObj) { + public static Entity spawnClone(NBTTagCompound compound, int x, int y, + int z, World worldObj) { ServerCloneController.Instance.cleanTags(compound); compound.setTag("Pos", NBTTags.nbtDoubleList(x + 0.5, y + 1, z + 0.5)); Entity entity = EntityList.createEntityFromNBT(compound, worldObj); @@ -705,15 +705,6 @@ public class NoppesUtilServer { npc.ticksExisted = 0; npc.totalTicksAlive = 0; } - return entity; - } - - public static Entity spawnClone(NBTTagCompound compound, int x, int y, - int z, World worldObj) { - Entity entity = NoppesUtilServer.getEntityFromNBT(compound,x,y,z,worldObj); - if(entity == null){ - return null; - } worldObj.spawnEntityInWorld(entity); return entity; } diff --git a/src/main/java/noppes/npcs/ScriptItemEventHandler.java b/src/main/java/noppes/npcs/ScriptItemEventHandler.java index a81b6d271..cab2563b6 100644 --- a/src/main/java/noppes/npcs/ScriptItemEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptItemEventHandler.java @@ -103,7 +103,7 @@ public class ScriptItemEventHandler { try { if (event.entityPlayer.getHeldItem().getItem() == CustomItems.scripted_item && !event.isCanceled()) { IItemCustom isw = ItemScripted.GetWrapper(event.entityPlayer.getHeldItem()); - ItemEvent.InteractEvent eve = new ItemEvent.InteractEvent(isw, (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer), 2, NpcAPI.Instance().getIBlock(NpcAPI.Instance().getIWorld(event.entityPlayer.worldObj), NpcAPI.Instance().getIPos(event.entityPlayer.posX, event.entityPlayer.posY, event.entityPlayer.posZ))); + ItemEvent.InteractEvent eve = new ItemEvent.InteractEvent(isw, (IPlayer) NpcAPI.Instance().getIEntity(event.entityPlayer), 2, NpcAPI.Instance().getIBlock(event.entityPlayer.worldObj, new BlockPos(event.entityPlayer.posX, event.entityPlayer.posY, event.entityPlayer.posZ))); event.setCanceled(EventHooks.onScriptItemInteract(isw, eve)); } } catch(Exception e) {} diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index bf8cc5620..4b7b6bfe9 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -119,7 +119,7 @@ public class ScriptPlayerEventHandler { if(!event.getPlayer().worldObj.isRemote && event.world instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.getPlayer()); - noppes.npcs.scripted.event.PlayerEvent.BreakEvent ev = new noppes.npcs.scripted.event.PlayerEvent.BreakEvent(scriptPlayer, NpcAPI.Instance().getIBlock(NpcAPI.Instance().getIWorld(event.world), NpcAPI.Instance().getIPos(event.x,event.y,event.z)), event.getExpToDrop()); + noppes.npcs.scripted.event.PlayerEvent.BreakEvent ev = new noppes.npcs.scripted.event.PlayerEvent.BreakEvent(scriptPlayer, NpcAPI.Instance().getIBlock(event.world, new BlockPos(event.x,event.y,event.z)), event.getExpToDrop()); event.setCanceled(EventHooks.onPlayerBreak(handler, ev)); event.setExpToDrop(ev.exp); } diff --git a/src/main/java/noppes/npcs/controllers/ServerCloneController.java b/src/main/java/noppes/npcs/controllers/ServerCloneController.java index 7b6e4fad7..5fe56c42f 100644 --- a/src/main/java/noppes/npcs/controllers/ServerCloneController.java +++ b/src/main/java/noppes/npcs/controllers/ServerCloneController.java @@ -19,7 +19,6 @@ import noppes.npcs.LogWriter; import noppes.npcs.NoppesUtilServer; import noppes.npcs.scripted.CustomNPCsException; import noppes.npcs.scripted.NpcAPI; -import noppes.npcs.scripted.interfaces.IPos; import noppes.npcs.scripted.interfaces.handler.ICloneHandler; import noppes.npcs.scripted.interfaces.entity.IEntity; import noppes.npcs.scripted.interfaces.IWorld; @@ -210,18 +209,10 @@ public class ServerCloneController implements ICloneHandler { } } - public IEntity spawn(IPos pos, int tab, String name, IWorld world, boolean ignoreProtection) { - return this.spawn(pos.getX(),pos.getY(),pos.getZ(),tab,name,world,ignoreProtection); - } - public IEntity spawn(double x, double y, double z, int tab, String name, IWorld world) { return spawn(x, y, z, tab, name, world, true); } - public IEntity spawn(IPos pos, int tab, String name, IWorld world) { - return this.spawn(pos.getX(),pos.getY(),pos.getZ(),tab,name,world); - } - public IEntity[] getTab(int tab, IWorld world) { File dir = new File(getDir(), tab + ""); if (!dir.exists() || !dir.isDirectory() || dir.listFiles() == null) { diff --git a/src/main/java/noppes/npcs/controllers/data/TransportLocation.java b/src/main/java/noppes/npcs/controllers/data/TransportLocation.java index c058c8ff3..9d3256d38 100644 --- a/src/main/java/noppes/npcs/controllers/data/TransportLocation.java +++ b/src/main/java/noppes/npcs/controllers/data/TransportLocation.java @@ -2,8 +2,6 @@ package noppes.npcs.controllers.data; import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.controllers.TransportController; -import noppes.npcs.scripted.NpcAPI; -import noppes.npcs.scripted.interfaces.IPos; import noppes.npcs.scripted.interfaces.handler.data.ITransportLocation; public class TransportLocation implements ITransportLocation { @@ -80,16 +78,6 @@ public class TransportLocation implements ITransportLocation { this.posZ = z; } - public void setPosition(IPos pos) { - this.posX = pos.getX(); - this.posY = pos.getY(); - this.posZ = pos.getZ(); - } - - public IPos getPos() { - return NpcAPI.Instance().getIPos(this.posX, this.posY, this.posZ); - } - public double getX() { return posX; } diff --git a/src/main/java/noppes/npcs/roles/JobSpawner.java b/src/main/java/noppes/npcs/roles/JobSpawner.java index 2358bf6ef..4e456a4f3 100644 --- a/src/main/java/noppes/npcs/roles/JobSpawner.java +++ b/src/main/java/noppes/npcs/roles/JobSpawner.java @@ -250,7 +250,7 @@ public class JobSpawner extends JobInterface{ return null; } - public boolean isEmpty(){ + private boolean isEmpty(){ if(compound1 != null && compound1.hasKey("id")) return false; if(compound2 != null && compound2.hasKey("id")) @@ -365,7 +365,7 @@ public class JobSpawner extends JobInterface{ return living; } - public NBTTagCompound getCompound(int i) { + private NBTTagCompound getCompound(int i) { if(i <= 1 && compound1 != null && compound1.hasKey("id")){ number = 1; return compound1; @@ -394,7 +394,7 @@ public class JobSpawner extends JobInterface{ } - public List getNearbySpawned(){ + private List getNearbySpawned(){ List spawnList = new ArrayList(); List list = npc.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, npc.boundingBox.expand(40, 40, 40)); for(EntityLivingBase entity : list){ diff --git a/src/main/java/noppes/npcs/roles/RoleTransporter.java b/src/main/java/noppes/npcs/roles/RoleTransporter.java index 3722dcfb0..d6b61b391 100644 --- a/src/main/java/noppes/npcs/roles/RoleTransporter.java +++ b/src/main/java/noppes/npcs/roles/RoleTransporter.java @@ -12,7 +12,6 @@ import noppes.npcs.controllers.data.PlayerTransportData; import noppes.npcs.controllers.TransportController; import noppes.npcs.controllers.data.TransportLocation; import noppes.npcs.entity.EntityNPCInterface; -import noppes.npcs.scripted.interfaces.handler.data.ITransportLocation; public class RoleTransporter extends RoleInterface{ @@ -78,12 +77,12 @@ public class RoleTransporter extends RoleInterface{ } } - public void unlock(EntityPlayer player, ITransportLocation loc){ + private void unlock(EntityPlayer player, TransportLocation loc){ PlayerTransportData data = PlayerDataController.instance.getPlayerData(player).transportData; if(data.transports.contains(transportId)) return; data.transports.add(transportId); - player.addChatMessage(new ChatComponentTranslation("transporter.unlock", loc.getName())); + player.addChatMessage(new ChatComponentTranslation("transporter.unlock", loc.name)); } public TransportLocation getLocation(){ if(npc.isRemote()) @@ -95,9 +94,9 @@ public class RoleTransporter extends RoleInterface{ return loc != null && loc.id == transportId; } - public void setTransport(ITransportLocation location) { - transportId = location.getId(); - name = location.getName(); + public void setTransport(TransportLocation location) { + transportId = location.id; + name = location.name; } } diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index ebb8a15ba..5f45e9e47 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -5,6 +5,11 @@ package noppes.npcs.scripted; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import cpw.mods.fml.common.eventhandler.EventBus; import jdk.nashorn.internal.ir.debug.ObjectSizeCalculator; import net.minecraft.block.Block; @@ -14,13 +19,13 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityTameable; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.item.*; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.math.BlockPos; @@ -29,22 +34,24 @@ import net.minecraft.world.WorldServer; import net.minecraft.world.biome.BiomeGenBase; import noppes.npcs.CustomNpcs; import noppes.npcs.NoppesUtilServer; -import noppes.npcs.containers.ContainerNpcInterface; import noppes.npcs.controllers.*; import noppes.npcs.controllers.data.SkinOverlay; +import noppes.npcs.items.ItemScripted; +import noppes.npcs.containers.ContainerNpcInterface; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; -import noppes.npcs.items.ItemScripted; import noppes.npcs.scripted.entity.*; import noppes.npcs.scripted.gui.ScriptGui; +import noppes.npcs.scripted.interfaces.entity.IPlayer; +import noppes.npcs.scripted.interfaces.handler.*; import noppes.npcs.scripted.interfaces.*; import noppes.npcs.scripted.interfaces.entity.ICustomNpc; import noppes.npcs.scripted.interfaces.entity.IEntity; -import noppes.npcs.scripted.interfaces.entity.IPlayer; import noppes.npcs.scripted.interfaces.gui.ICustomGui; -import noppes.npcs.scripted.interfaces.handler.*; +import noppes.npcs.scripted.interfaces.handler.data.IFaction; import noppes.npcs.scripted.interfaces.handler.data.ISound; import noppes.npcs.scripted.interfaces.item.IItemStack; +import noppes.npcs.scripted.interfaces.AbstractNpcAPI; import noppes.npcs.scripted.interfaces.overlay.ICustomOverlay; import noppes.npcs.scripted.item.*; import noppes.npcs.scripted.overlay.ScriptOverlay; @@ -52,13 +59,8 @@ import noppes.npcs.util.JsonException; import noppes.npcs.util.LRUHashMap; import noppes.npcs.util.NBTJsonUtil; -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - public class NpcAPI extends AbstractNpcAPI { - private static final Map worldCache = new LRUHashMap<>(10); + private static final Map worldCache = new LRUHashMap(10); public static final EventBus EVENT_BUS = new EventBus(); private static AbstractNpcAPI instance = null; @@ -108,7 +110,7 @@ public class NpcAPI extends AbstractNpcAPI { @Override public String[] getAllBiomeNames() { - List biomes = new ArrayList<>(); + List biomes = new ArrayList(); for (BiomeGenBase base : BiomeGenBase.getBiomeGenArray()) { if (base != null && base.biomeName != null) { biomes.add(base.biomeName); @@ -118,7 +120,7 @@ public class NpcAPI extends AbstractNpcAPI { return biomes.toArray(new String[]{}); } - public IEntity getIEntity(Entity entity) { + public IEntity getIEntity(Entity entity) { if(entity == null) return null; if(entity instanceof EntityNPCInterface) @@ -128,26 +130,26 @@ public class NpcAPI extends AbstractNpcAPI { if(data != null) return data.base; if(entity instanceof EntityPlayerMP) - data = new ScriptEntityData(new ScriptPlayer<>((EntityPlayerMP) entity)); + data = new ScriptEntityData(new ScriptPlayer((EntityPlayerMP) entity)); else if(PixelmonHelper.isPixelmon(entity)) - return new ScriptPixelmon((EntityTameable) entity); + return new ScriptPixelmon((EntityTameable) entity); else if(entity instanceof EntityAnimal) - data = new ScriptEntityData(new ScriptAnimal<>((EntityAnimal) entity)); + data = new ScriptEntityData(new ScriptAnimal((EntityAnimal) entity)); else if(entity instanceof EntityMob) - data = new ScriptEntityData(new ScriptMonster<>((EntityMob) entity)); + data = new ScriptEntityData(new ScriptMonster((EntityMob) entity)); else if(entity instanceof EntityLiving) - data = new ScriptEntityData(new ScriptLiving<>((EntityLiving) entity)); + data = new ScriptEntityData(new ScriptLiving((EntityLiving) entity)); else if(entity instanceof EntityLivingBase) - data = new ScriptEntityData(new ScriptLivingBase<>((EntityLivingBase)entity)); + data = new ScriptEntityData(new ScriptLivingBase((EntityLivingBase)entity)); else - data = new ScriptEntityData(new ScriptEntity<>(entity)); + data = new ScriptEntityData(new ScriptEntity(entity)); entity.registerExtendedProperties("ScriptedObject", data); return data.base; } } - public IEntity[] getLoadedEntities() { - ArrayList> list = new ArrayList<>(); + public IEntity[] getLoadedEntities() { + ArrayList list = new ArrayList<>(); for (IWorld world : worldCache.values()) { for (Object obj : world.getMCWorld().loadedEntityList) { @@ -158,44 +160,16 @@ public class NpcAPI extends AbstractNpcAPI { return list.toArray(new IEntity[0]); } - public IBlock getIBlock(IWorld world, int x, int y, int z) { - Block block = world.getMCWorld().getBlock(x, y, z); - if(block == null || block.isAir(world.getMCWorld(), x, y, z)) - return null; - - return new ScriptBlock(world.getMCWorld(), world.getMCWorld().getBlock(x, y, z), new BlockPos(x,y,z)); + public IBlock getIBlock(World world, BlockPos pos) { + return new ScriptBlock(world, world.getBlock(pos.getX(),pos.getY(),pos.getZ()), pos); } - public IBlock getIBlock(IWorld world, IPos pos) { - return this.getIBlock(world, pos.getX(),pos.getY(),pos.getZ()); + public IBlock getIBlock(World world, Block block, BlockPos pos) { + return new ScriptBlock(world, block, pos); } - public ITileEntity getITileEntity(IWorld world, IPos pos) { - return new ScriptTileEntity<>(world.getMCWorld().getTileEntity(pos.getX(), pos.getY(),pos.getZ())); - } - - public ITileEntity getITileEntity(IWorld world, int x, int y, int z) { - return new ScriptTileEntity<>(world.getMCWorld().getTileEntity(x,y,z)); - } - - public ITileEntity getITileEntity(TileEntity tileEntity) { - return new ScriptTileEntity<>(tileEntity); - } - - public IPos getIPos(BlockPos pos) { - return new ScriptBlockPos(pos); - } - - public IPos getIPos(int x, int y, int z) { - return new ScriptBlockPos(new BlockPos(x,y,z)); - } - - public IPos getIPos(double x, double y, double z) { - return this.getIPos((int)x,(int)y,(int)z); - } - - public IPos getIPos(float x, float y, float z) { - return this.getIPos((int)x,(int)y,(int)z); + public IBlock getIBlock(World world, int x, int y, int z) { + return new ScriptBlock(world, world.getBlock(x, y, z), new BlockPos(x,y,z)); } public INbt getINbt(NBTTagCompound nbtTagCompound) { @@ -207,38 +181,34 @@ public class NpcAPI extends AbstractNpcAPI { try { return this.getINbt(NBTJsonUtil.Convert(str)); } catch (JsonException var3) { - throw new CustomNPCsException(var3, "Failed converting " + str); + throw new CustomNPCsException(var3, "Failed converting " + str, new Object[0]); } } else { - throw new CustomNPCsException("Cant cast empty string to nbt"); + throw new CustomNPCsException("Cant cast empty string to nbt", new Object[0]); } } - public ICustomNpc createNPC(IWorld world) { - if (world.getMCWorld().isRemote) { + public ICustomNpc createNPC(World world) { + if (world.isRemote) { return null; } else { - EntityCustomNpc npc = new EntityCustomNpc(world.getMCWorld()); + EntityCustomNpc npc = new EntityCustomNpc(world); return npc.wrappedNPC; } } - public ICustomNpc spawnNPC(IWorld world, int x, int y, int z) { - if (world.getMCWorld().isRemote) { + public ICustomNpc spawnNPC(World world, int x, int y, int z) { + if (world.isRemote) { return null; } else { - EntityCustomNpc npc = new EntityCustomNpc(world.getMCWorld()); - npc.setPositionAndRotation((double)x + 0.5D, y, (double)z + 0.5D, 0.0F, 0.0F); + EntityCustomNpc npc = new EntityCustomNpc(world); + npc.setPositionAndRotation((double)x + 0.5D, (double)y, (double)z + 0.5D, 0.0F, 0.0F); npc.setHealth(npc.getMaxHealth()); - world.getMCWorld().spawnEntityInWorld(npc); + world.spawnEntityInWorld(npc); return npc.wrappedNPC; } } - public ICustomNpc spawnNPC(IWorld world, IPos pos) { - return this.spawnNPC(world, pos.getX(), pos.getY(), pos.getZ()); - } - public static AbstractNpcAPI Instance() { if (instance == null) { instance = new NpcAPI(); @@ -280,22 +250,25 @@ public class NpcAPI extends AbstractNpcAPI { ScriptWorld w = worldCache.get(world.provider.dimensionId); if (w != null) { w.world.provider.dimensionId = world.provider.dimensionId; + return w; } else { worldCache.put(world.provider.dimensionId, w = ScriptWorld.createNew(world.provider.dimensionId)); + return w; } - return w; } public IWorld getIWorld(int dimensionId) { WorldServer[] var2 = CustomNpcs.getServer().worldServers; + int var3 = var2.length; - for (WorldServer world : var2) { + for(int var4 = 0; var4 < var3; ++var4) { + WorldServer world = var2[var4]; if (world.provider.dimensionId == dimensionId) { return this.getIWorld(world); } } - throw new CustomNPCsException("Unknown dimension id: " + dimensionId); + throw new CustomNPCsException("Unknown dimension id: " + dimensionId, new Object[0]); } public IContainer getIContainer(IInventory inventory) { @@ -303,12 +276,12 @@ public class NpcAPI extends AbstractNpcAPI { } public IContainer getIContainer(Container container) { - return container instanceof ContainerNpcInterface ? ContainerNpcInterface.getOrCreateIContainer((ContainerNpcInterface)container) : new ScriptContainer(container); + return (IContainer)(container instanceof ContainerNpcInterface ? ContainerNpcInterface.getOrCreateIContainer((ContainerNpcInterface)container) : new ScriptContainer(container)); } private void checkWorld() { if (CustomNpcs.getServer() == null || CustomNpcs.getServer().isServerStopped()) { - throw new CustomNPCsException("No world is loaded right now"); + throw new CustomNPCsException("No world is loaded right now", new Object[0]); } } @@ -335,7 +308,7 @@ public class NpcAPI extends AbstractNpcAPI { return new ScriptDamageSource(damagesource); } - public IDamageSource getIDamageSource(IEntity entity) { + public IDamageSource getIDamageSource(IEntity entity) { if(entity.getType() == 1)//if player return new ScriptDamageSource(new EntityDamageSource("player",entity.getMCEntity())); else @@ -351,29 +324,29 @@ public class NpcAPI extends AbstractNpcAPI { return CustomNpcs.MARKOV_GENERATOR[dictionary].fetch(gender); } - public IPlayer[] getAllServerPlayers(){ - List list = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - IPlayer[] arr = new IPlayer[list.size()]; + public IPlayer[] getAllServerPlayers(){ + List list = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + IPlayer[] arr = new IPlayer[list.size()]; for(int i = 0; i < list.size(); i++){ - arr[i] = (IPlayer) NpcAPI.Instance().getIEntity((EntityPlayerMP)list.get(i)); + arr[i] = (IPlayer) NpcAPI.Instance().getIEntity(list.get(i)); } return arr; } public String[] getPlayerNames() { - IPlayer[] players = getAllServerPlayers(); + IPlayer[] players = getAllServerPlayers(); String[] names = new String[players.length]; for (int i = 0; i < names.length; ++i) names[i] = players[i].getDisplayName(); return names; } - public void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch){ + public void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch){ entity.getWorld().getMCWorld().playSoundAtEntity(entity.getMCEntity(), sound, volume, pitch); } - public void playSoundToNearExcept(IPlayer player, String sound, float volume, float pitch){ - player.getWorld().getMCWorld().playSoundToNearExcept(player.getMCEntity(), sound, volume, pitch); + public void playSoundToNearExcept(IPlayer player, String sound, float volume, float pitch){ + player.getWorld().getMCWorld().playSoundToNearExcept((EntityPlayerMP) player.getMCEntity(), sound, volume, pitch); } public String getMOTD() diff --git a/src/main/java/noppes/npcs/scripted/ScriptBlock.java b/src/main/java/noppes/npcs/scripted/ScriptBlock.java index 15f775868..e2f95d426 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptBlock.java +++ b/src/main/java/noppes/npcs/scripted/ScriptBlock.java @@ -30,7 +30,7 @@ public class ScriptBlock implements IBlock { this.world = NpcAPI.Instance().getIWorld(world); this.block = block; this.pos = pos; - this.bPos = NpcAPI.Instance().getIPos(pos); + this.bPos = new ScriptBlockPos(pos); this.tile = new ScriptTileEntity<>(world.getTileEntity(pos.getX(),pos.getY(), pos.getZ())); } @@ -64,13 +64,13 @@ public class ScriptBlock implements IBlock { return this; } else { this.world.getMCWorld().setBlock(getX(),getY(),getZ(),block); - return NpcAPI.Instance().getIBlock(world, getX(),getY(),getZ()); + return NpcAPI.Instance().getIBlock(world.getMCWorld(), block, new BlockPos(getX(),getY(),getZ())); } } public IBlock setBlock(IBlock block) { this.world.getMCWorld().setBlock(getX(),getY(),getZ(),block.getMCBlock()); - return NpcAPI.Instance().getIBlock(world, getX(),getY(),getZ()); + return NpcAPI.Instance().getIBlock(world.getMCWorld(), block.getMCBlock(), new BlockPos(getX(),getY(),getZ())); } public boolean isContainer() { diff --git a/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java b/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java index 6c4d67f31..675837165 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java +++ b/src/main/java/noppes/npcs/scripted/ScriptBlockPos.java @@ -10,7 +10,7 @@ import net.minecraft.util.math.BlockPos; import noppes.npcs.scripted.interfaces.IPos; public class ScriptBlockPos implements IPos { - public BlockPos blockPos; + private BlockPos blockPos; public ScriptBlockPos(BlockPos pos) { this.blockPos = pos; @@ -29,75 +29,75 @@ public class ScriptBlockPos implements IPos { } public IPos up() { - return NpcAPI.Instance().getIPos(this.blockPos.up()); + return new ScriptBlockPos(this.blockPos.up()); } public IPos up(int n) { - return NpcAPI.Instance().getIPos(this.blockPos.up(n)); + return new ScriptBlockPos(this.blockPos.up(n)); } public IPos down() { - return NpcAPI.Instance().getIPos(this.blockPos.down()); + return new ScriptBlockPos(this.blockPos.down()); } public IPos down(int n) { - return NpcAPI.Instance().getIPos(this.blockPos.down(n)); + return new ScriptBlockPos(this.blockPos.down(n)); } public IPos north() { - return NpcAPI.Instance().getIPos(this.blockPos.north()); + return new ScriptBlockPos(this.blockPos.north()); } public IPos north(int n) { - return NpcAPI.Instance().getIPos(this.blockPos.north(n)); + return new ScriptBlockPos(this.blockPos.north(n)); } public IPos east() { - return NpcAPI.Instance().getIPos(this.blockPos.east()); + return new ScriptBlockPos(this.blockPos.east()); } public IPos east(int n) { - return NpcAPI.Instance().getIPos(this.blockPos.east(n)); + return new ScriptBlockPos(this.blockPos.east(n)); } public IPos south() { - return NpcAPI.Instance().getIPos(this.blockPos.south()); + return new ScriptBlockPos(this.blockPos.south()); } public IPos south(int n) { - return NpcAPI.Instance().getIPos(this.blockPos.south(n)); + return new ScriptBlockPos(this.blockPos.south(n)); } public IPos west() { - return NpcAPI.Instance().getIPos(this.blockPos.west()); + return new ScriptBlockPos(this.blockPos.west()); } public IPos west(int n) { - return NpcAPI.Instance().getIPos(this.blockPos.west(n)); + return new ScriptBlockPos(this.blockPos.west(n)); } public IPos add(int x, int y, int z) { - return NpcAPI.Instance().getIPos(this.blockPos.add(x, y, z)); + return new ScriptBlockPos(this.blockPos.add(x, y, z)); } public IPos add(IPos pos) { - return NpcAPI.Instance().getIPos(this.blockPos.add(this.blockPos)); + return new ScriptBlockPos(this.blockPos.add(this.blockPos)); } public IPos subtract(int x, int y, int z) { - return NpcAPI.Instance().getIPos(this.blockPos.add(-x, -y, -z)); + return new ScriptBlockPos(this.blockPos.add(-x, -y, -z)); } public IPos subtract(IPos pos) { - return NpcAPI.Instance().getIPos(this.blockPos.add(-pos.getX(), -pos.getY(), -pos.getZ())); + return new ScriptBlockPos(this.blockPos.add(-pos.getX(), -pos.getY(), -pos.getZ())); } public IPos offset(int direction) { - return NpcAPI.Instance().getIPos(this.blockPos.offset(EnumFacing.values()[direction])); + return new ScriptBlockPos(this.blockPos.offset(EnumFacing.values()[direction])); } public IPos offset(int direction, int n) { - return NpcAPI.Instance().getIPos(this.blockPos.offset(EnumFacing.values()[direction], n)); + return new ScriptBlockPos(this.blockPos.offset(EnumFacing.values()[direction], n)); } public double[] normalize() { @@ -111,8 +111,4 @@ public class ScriptBlockPos implements IPos { double d2 = (double)(this.getZ() - pos.getZ()); return Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); } - - public BlockPos getMCPos() { - return this.blockPos; - } } diff --git a/src/main/java/noppes/npcs/scripted/ScriptParticle.java b/src/main/java/noppes/npcs/scripted/ScriptParticle.java index 1ea6d2e95..a98c0c2da 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptParticle.java +++ b/src/main/java/noppes/npcs/scripted/ScriptParticle.java @@ -3,7 +3,6 @@ package noppes.npcs.scripted; import net.minecraft.nbt.*; import noppes.npcs.NoppesUtilServer; import noppes.npcs.scripted.interfaces.IParticle; -import noppes.npcs.scripted.interfaces.IPos; import noppes.npcs.scripted.interfaces.IWorld; import noppes.npcs.scripted.interfaces.entity.IEntity; @@ -231,13 +230,6 @@ public class ScriptParticle implements IParticle { return z; } - public void setPosition(IPos pos) { - this.setPosition(pos.getX(),pos.getY(),pos.getZ()); - } - public void getPos() { - NpcAPI.Instance().getIPos(x,y,z); - } - public void setMotion(double motionX, double motionY, double motionZ, float gravity){ this.motionX = motionX; this.motionY = motionY; diff --git a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java b/src/main/java/noppes/npcs/scripted/ScriptScoreboard.java similarity index 98% rename from src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java rename to src/main/java/noppes/npcs/scripted/ScriptScoreboard.java index 3d08c23fe..513f9cc7f 100644 --- a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboard.java +++ b/src/main/java/noppes/npcs/scripted/ScriptScoreboard.java @@ -1,4 +1,4 @@ -package noppes.npcs.scripted.scoreboard; +package noppes.npcs.scripted; import java.util.ArrayList; import java.util.List; @@ -15,8 +15,8 @@ import net.minecraft.server.MinecraftServer; */ public class ScriptScoreboard { private Scoreboard board; - - public ScriptScoreboard(){ + + protected ScriptScoreboard(){ board = MinecraftServer.getServer().worldServerForDimension(0).getScoreboard(); } diff --git a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java b/src/main/java/noppes/npcs/scripted/ScriptScoreboardObjective.java similarity index 96% rename from src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java rename to src/main/java/noppes/npcs/scripted/ScriptScoreboardObjective.java index 63cea0160..7100640a1 100644 --- a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardObjective.java +++ b/src/main/java/noppes/npcs/scripted/ScriptScoreboardObjective.java @@ -1,4 +1,4 @@ -package noppes.npcs.scripted.scoreboard; +package noppes.npcs.scripted; import net.minecraft.scoreboard.ScoreObjective; diff --git a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java b/src/main/java/noppes/npcs/scripted/ScriptScoreboardTeam.java similarity index 98% rename from src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java rename to src/main/java/noppes/npcs/scripted/ScriptScoreboardTeam.java index 1d6233dd8..bed2b0a24 100644 --- a/src/main/java/noppes/npcs/scripted/scoreboard/ScriptScoreboardTeam.java +++ b/src/main/java/noppes/npcs/scripted/ScriptScoreboardTeam.java @@ -1,4 +1,4 @@ -package noppes.npcs.scripted.scoreboard; +package noppes.npcs.scripted; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/noppes/npcs/scripted/ScriptSound.java b/src/main/java/noppes/npcs/scripted/ScriptSound.java index 76c93115f..ed3359e56 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptSound.java +++ b/src/main/java/noppes/npcs/scripted/ScriptSound.java @@ -156,7 +156,7 @@ public class ScriptSound implements ISound { } public IPos getPos() { - return NpcAPI.Instance().getIPos(xPosF, yPosF, zPosF); + return new ScriptBlockPos(new BlockPos(xPosF,yPosF,zPosF)); } public float getX() { diff --git a/src/main/java/noppes/npcs/scripted/ScriptTileEntity.java b/src/main/java/noppes/npcs/scripted/ScriptTileEntity.java index d5f3895b2..e0d963d5e 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptTileEntity.java +++ b/src/main/java/noppes/npcs/scripted/ScriptTileEntity.java @@ -4,39 +4,27 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.WorldServer; -import noppes.npcs.scripted.interfaces.*; +import noppes.npcs.scripted.interfaces.IBlock; +import noppes.npcs.scripted.interfaces.INbt; +import noppes.npcs.scripted.interfaces.ITileEntity; public class ScriptTileEntity implements ITileEntity { protected T tileEntity; - protected IWorld world; - public ScriptTileEntity(T tileEntity) { - this.tileEntity = tileEntity; - this.world = NpcAPI.Instance().getIWorld(tileEntity.getWorldObj()); - } + public ScriptTileEntity(T tileEntity) { this.tileEntity = tileEntity; } public int getBlockMetadata(){ return tileEntity.getBlockMetadata(); } - public IWorld getWorld(){ - return world; - } - - public void setWorld(IWorld world) { - this.tileEntity.setWorldObj(world.getMCWorld()); - this.world = world; + public ScriptWorld getWorld(){ + return (ScriptWorld) NpcAPI.Instance().getIWorld((WorldServer) tileEntity.getWorldObj()); } public TileEntity getMCTileEntity() { return this.tileEntity; } - public void markDirty() - { - this.tileEntity.markDirty(); - } - public void readFromNBT(INbt nbt){ this.tileEntity.readFromNBT(nbt.getMCNBT()); } @@ -45,12 +33,8 @@ public class ScriptTileEntity implements ITileEntity { return this.tileEntity.getDistanceFrom(x,y,z); } - public double getDistanceFrom(IPos pos){ - return this.getDistanceFrom(pos.getX(),pos.getY(),pos.getZ()); - } - public IBlock getBlockType(){ - return NpcAPI.Instance().getIBlock(world, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); + return NpcAPI.Instance().getIBlock(tileEntity.getWorldObj(), tileEntity.getBlockType(), new BlockPos(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord)); } public boolean isInvalid(){ diff --git a/src/main/java/noppes/npcs/scripted/ScriptWorld.java b/src/main/java/noppes/npcs/scripted/ScriptWorld.java index 3feb939d0..5275d4b17 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptWorld.java +++ b/src/main/java/noppes/npcs/scripted/ScriptWorld.java @@ -18,6 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntitySign; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.WorldServer; import noppes.npcs.CustomNpcs; import noppes.npcs.NoppesUtilServer; @@ -33,10 +34,9 @@ import noppes.npcs.scripted.interfaces.entity.IPlayer; import noppes.npcs.scripted.interfaces.handler.data.ISound; import noppes.npcs.scripted.interfaces.item.IItemStack; import noppes.npcs.scripted.interfaces.IWorld; -import noppes.npcs.scripted.scoreboard.ScriptScoreboard; public class ScriptWorld implements IWorld { - private static final Map tempData = new HashMap<>(); + private static Map tempData = new HashMap(); public WorldServer world; public ScriptWorld(WorldServer world){ this.world = world; @@ -60,7 +60,7 @@ public class ScriptWorld implements IWorld { public long getTime(){ return world.getWorldTime(); } - + /** * @return The total world time */ @@ -79,128 +79,72 @@ public class ScriptWorld implements IWorld { * @return The block at the given position. Returns null if there isn't a block */ public IBlock getBlock(int x, int y, int z){ - return NpcAPI.Instance().getIBlock(this, x,y,z); - } - - /** - * @param pos - * @return The block at the given position. Returns null if there isn't a block - */ - public IBlock getBlock(IPos pos){ - return NpcAPI.Instance().getIBlock(this, pos); - } - - public boolean isBlockFreezable(IPos pos) { - return this.isBlockFreezable(pos.getX(),pos.getY(),pos.getZ()); + Block block = world.getBlock(x, y, z); + if(block == null || block.isAir(world, x, y, z)) + return null; + return NpcAPI.Instance().getIBlock(world, block, new BlockPos(x,y,z)); } public boolean isBlockFreezable(int x, int y, int z){ return world.isBlockFreezable(x,y,z); } - public boolean isBlockFreezableNaturally(IPos pos) { - return this.isBlockFreezableNaturally(pos.getX(),pos.getY(),pos.getZ()); - } - public boolean isBlockFreezableNaturally(int x, int y, int z){ return world.isBlockFreezableNaturally(x,y,z); } - public boolean canBlockFreeze(IPos pos, boolean adjacentToWater) { - return this.canBlockFreeze(pos.getX(),pos.getY(),pos.getZ(), adjacentToWater); - } - public boolean canBlockFreeze(int x, int y, int z, boolean adjacentToWater){ return world.canBlockFreeze(x,y,z,adjacentToWater); } - public boolean canBlockFreezeBody(IPos pos, boolean adjacentToWater) { - return this.canBlockFreezeBody(pos.getX(),pos.getY(),pos.getZ(), adjacentToWater); - } - public boolean canBlockFreezeBody(int x, int y, int z, boolean adjacentToWater){ return world.canBlockFreezeBody(x,y,z,adjacentToWater); } - public boolean canSnowAt(IPos pos, boolean checkLight) { - return this.canSnowAt(pos.getX(),pos.getY(),pos.getZ(), checkLight); - } - public boolean canSnowAt(int x, int y, int z, boolean checkLight){ return world.func_147478_e(x,y,z,checkLight); } - public boolean canSnowAtBody(IPos pos, boolean checkLight) { - return this.canSnowAtBody(pos.getX(),pos.getY(),pos.getZ(), checkLight); - } - public boolean canSnowAtBody(int x, int y, int z, boolean checkLight){ return world.canSnowAtBody(x,y,z,checkLight); } public IBlock getTopBlock(int x, int z){ - return NpcAPI.Instance().getIBlock(this, x, world.getTopSolidOrLiquidBlock(x,z) ,z); - } + int y; + for (y = 63; !world.isAirBlock(x, y + 1, z); ++y) {;} + Block block = world.getBlock(x, y, z); - public IBlock getTopBlock(IPos pos) { - return this.getTopBlock(pos.getX(),pos.getZ()); + return NpcAPI.Instance().getIBlock(world, block, new BlockPos(x,y,z)); } public int getHeightValue(int x, int z){ return world.getHeightValue(x,z); } - public int getHeightValue(IPos pos) { - return this.getHeightValue(pos.getX(),pos.getZ()); - } - public int getChunkHeightMapMinimum(int x, int z){ return world.getChunkHeightMapMinimum(x,z); } - public int getChunkHeightMapMinimum(IPos pos){ - return this.getChunkHeightMapMinimum(pos.getX(),pos.getZ()); - } - public int getBlockMetadata(int x, int y, int z){ return world.getBlockMetadata(x,y,z); } - public int getBlockMetadata(IPos pos){ - return this.getBlockMetadata(pos.getX(),pos.getY(),pos.getZ()); - } - public boolean setBlockMetadataWithNotify(int x, int y, int z, int metadata, int flag){ return world.setBlockMetadataWithNotify(x,y,z,metadata,flag); } - public boolean setBlockMetadataWithNotify(IPos pos, int metadata, int flag){ - return this.setBlockMetadataWithNotify(pos.getX(),pos.getY(),pos.getZ(), metadata, flag); - } - - public boolean canSeeSky(int x, int y, int z) { - return world.canBlockSeeTheSky(x, y, z); - } - public boolean canSeeSky(IPos pos) { - return canSeeSky(pos.getX(), pos.getY(), pos.getZ()); + public boolean canBlockSeeTheSky(int x, int y, int z){ + return world.canBlockSeeTheSky(x,y,z); } public int getFullBlockLightValue(int x, int y, int z){ return world.getFullBlockLightValue(x,y,z); } - public int getFullBlockLightValue(IPos pos){ - return this.getFullBlockLightValue(pos.getX(),pos.getY(),pos.getZ()); - } - public int getBlockLightValue(int x, int y, int z){ return world.getBlockLightValue(x,y,z); } - public int getBlockLightValue(IPos pos){ - return this.getBlockLightValue(pos.getX(),pos.getY(),pos.getZ()); - } - public void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch){ world.playSoundAtEntity(entity.getMCEntity(), sound, volume, pitch); } @@ -262,15 +206,6 @@ public class ScriptWorld implements IWorld { return world.spawnEntityInWorld(entity.getMCEntity()); } - public boolean spawnEntityInWorld(IEntity entity, double x, double y, double z){ - entity.setPosition(x, y, z); - return this.spawnEntityInWorld(entity); - } - - public boolean spawnEntityInWorld(IEntity entity, IPos pos) { - return this.spawnEntityInWorld(entity, pos.getX(), pos.getY(), pos.getZ()); - } - public IPlayer getClosestPlayerToEntity(IEntity entity, double range){ return (IPlayer) NpcAPI.Instance().getIEntity(world.getClosestPlayerToEntity(entity.getMCEntity(), range)); } @@ -279,10 +214,6 @@ public class ScriptWorld implements IWorld { return (IPlayer) NpcAPI.Instance().getIEntity(world.getClosestPlayer(x,y,z, range)); } - public IPlayer getClosestPlayer(IPos pos, double range){ - return this.getClosestPlayer(pos.getX(),pos.getY(),pos.getZ(), range); - } - public IPlayer getClosestVulnerablePlayerToEntity(IEntity entity, double range){ return (IPlayer) NpcAPI.Instance().getIEntity(world.getClosestVulnerablePlayerToEntity(entity.getMCEntity(), range)); } @@ -291,10 +222,6 @@ public class ScriptWorld implements IWorld { return (IPlayer) NpcAPI.Instance().getIEntity(world.getClosestVulnerablePlayer(x,y,z, range)); } - public IPlayer getClosestVulnerablePlayer(IPos pos, double range){ - return this.getClosestVulnerablePlayer(pos.getX(),pos.getY(),pos.getZ(), range); - } - public int countEntities(IEntity entity){ return world.countEntities(entity.getMCEntity().getClass()); } @@ -319,8 +246,8 @@ public class ScriptWorld implements IWorld { } list.sort((e1, e2) -> { - double dist1 = e1.getPosition().distanceTo(position); - double dist2 = e2.getPosition().distanceTo(position); + double dist1 = e1.getPos().distanceTo(position); + double dist2 = e2.getPos().distanceTo(position); if (dist1 > dist2) { return 1; @@ -334,33 +261,21 @@ public class ScriptWorld implements IWorld { } public IEntity[] getEntitiesNear(double x, double y, double z, double range) { - return getEntitiesNear(NpcAPI.Instance().getIPos(x,y,z), range); + return getEntitiesNear(new ScriptBlockPos(new BlockPos(x,y,z)), range); } public void setTileEntity(int x, int y, int z, ITileEntity tileEntity){ world.setTileEntity(x,y,z,tileEntity.getMCTileEntity()); } - public void setTileEntity(IPos pos, ITileEntity tileEntity){ - this.setTileEntity(pos.getX(),pos.getY(),pos.getZ(),tileEntity); - } - public void removeTileEntity(int x, int y, int z){ world.removeTileEntity(x,y,z); } - public void removeTileEntity(IPos pos){ - this.removeTileEntity(pos.getX(),pos.getY(),pos.getZ()); - } - public boolean isBlockFullCube(int x, int y, int z){ return world.func_147469_q(x,y,z); } - public boolean isBlockFullCube(IPos pos){ - return this.isBlockFullCube(pos.getX(),pos.getY(),pos.getZ()); - } - public long getSeed(){ return world.getSeed(); } @@ -369,24 +284,20 @@ public class ScriptWorld implements IWorld { world.setSpawnLocation(x,y,z); } - public void setSpawnLocation(IPos pos){ - this.setSpawnLocation(pos.getX(),pos.getY(),pos.getZ()); - } - public boolean canLightningStrikeAt(int x, int y, int z){ return world.canLightningStrikeAt(x,y,z); } - public boolean canLightningStrikeAt(IPos pos){ - return this.canLightningStrikeAt(pos.getX(),pos.getY(),pos.getZ()); - } - public boolean isBlockHighHumidity(int x, int y, int z){ return world.isBlockHighHumidity(x,y,z); } - public boolean isBlockHighHumidity(IPos pos){ - return this.canLightningStrikeAt(pos.getX(),pos.getY(),pos.getZ()); + /** + * @param pos + * @return The block at the given position. Returns null if there isn't a block + */ + public IBlock getBlock(IPos pos){ + return getBlock(pos.getX(), pos.getY(), pos.getZ()); } /** @@ -398,10 +309,10 @@ public class ScriptWorld implements IWorld { */ public String getSignText(int x, int y, int z){ TileEntity tile = world.getTileEntity(x, y, z); - + if(tile instanceof TileBigSign) return ((TileBigSign)tile).getText(); - + if(tile instanceof TileEntitySign){ TileEntitySign tileSign = (TileEntitySign)tile; String s = tileSign.signText[0] + "\n"; @@ -410,26 +321,18 @@ public class ScriptWorld implements IWorld { s += tileSign.signText[3]; return s; } - + return null; } - public String getSignText(IPos pos) { - return this.getSignText(pos.getX(),pos.getY(),pos.getZ()); - } - - + public void setBlock(int x, int y, int z, IBlock block){ if(block == null || block.getMCBlock().isAir(world, x, y, z)){ - this.removeBlock(x, y, z); + removeBlock(x, y, z); return; } world.setBlock(x, y, z, block.getMCBlock()); } - public void setBlock(IPos pos, IBlock block){ - this.setBlock(pos.getX(),pos.getY(),pos.getZ(),block); - } - /** * @param x World position x * @param y World position y @@ -438,7 +341,7 @@ public class ScriptWorld implements IWorld { */ public void setBlock(int x, int y, int z, IItemStack item){ if(item == null){ - this.removeBlock(x, y, z); + removeBlock(x, y, z); return; } Block block = Block.getBlockFromItem(item.getMCItemStack().getItem()); @@ -446,11 +349,7 @@ public class ScriptWorld implements IWorld { return; world.setBlock(x, y, z, block); } - - public void setBlock(IPos pos, IItemStack itemStack){ - this.setBlock(pos.getX(),pos.getY(),pos.getZ(),itemStack); - } - + /** * @param x World position x * @param y World position y @@ -460,10 +359,6 @@ public class ScriptWorld implements IWorld { world.setBlock(x, y, z, Blocks.air); } - public void removeBlock(IPos pos){ - this.removeBlock(pos.getX(),pos.getY(),pos.getZ()); - } - public IPos rayCastPos(double[] startPos, double[] lookVector, int maxDistance, boolean stopOnBlock, boolean stopOnLiquid, boolean stopOnCollision) { if (startPos.length != 3 || lookVector.length != 3) { return null; @@ -474,7 +369,7 @@ public class ScriptWorld implements IWorld { while (rep++ < maxDistance + 10) { currentPos = currentPos.addVector(lookVector[0], lookVector[1], lookVector[2]); - pos = NpcAPI.Instance().getIPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord); + pos = new ScriptBlockPos(new BlockPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord)); IBlock block = getBlock((int)currentPos.xCoord, (int)currentPos.yCoord, (int)currentPos.zCoord); if (block != null && stopOnBlock) { @@ -563,7 +458,7 @@ public class ScriptWorld implements IWorld { while (rep++ < maxDistance + 10) { currentPos = currentPos.addVector(lookVector[0], lookVector[1], lookVector[2]); - IPos pos = NpcAPI.Instance().getIPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord); + IPos pos = new ScriptBlockPos(new BlockPos(currentPos.xCoord, currentPos.yCoord, currentPos.zCoord)); IBlock block = getBlock(pos); if (block != null && stopOnBlock) { @@ -608,6 +503,14 @@ public class ScriptWorld implements IWorld { return rayCastEntities(new double[] {startPos.getX(), startPos.getY(), startPos.getZ()}, lookVector.normalize(), maxDistance, offset, range, true, false, true); } + public boolean canSeeSky(int x, int y, int z) { + return world.canBlockSeeTheSky(x, y, z); + } + + public boolean canSeeSky(IPos pos) { + return canSeeSky(pos.getX(), pos.getY(), pos.getZ()); + } + /** * @param name The name of the player to be returned * @return The Player with name. Null is returned when the player isnt found @@ -622,7 +525,7 @@ public class ScriptWorld implements IWorld { public IPlayer getPlayerByUUID(String uuid){ return (IPlayer) NpcAPI.Instance().getIEntity(world.func_152378_a(UUID.fromString(uuid))); } - + /** * @param time The world time to be set */ @@ -636,21 +539,21 @@ public class ScriptWorld implements IWorld { public boolean isDay(){ return world.getWorldTime() % 24000 < 12000; } - + /** * @return Whether or not its currently raining */ public boolean isRaining(){ return world.getWorldInfo().isRaining(); } - + /** * @param bo Set if it's raining */ public void setRaining(boolean bo){ world.getWorldInfo().setRaining(bo); } - + /** * @param x The x position * @param y The y position @@ -659,11 +562,7 @@ public class ScriptWorld implements IWorld { public void thunderStrike(double x, double y, double z){ world.addWeatherEffect(new EntityLightningBolt(world, x, y, z)); } - - public void thunderStrike(IPos pos){ - this.thunderStrike(pos.getX(),pos.getY(),pos.getZ()); - } - + /** * Sends a packet from the server to the client everytime its called. Probably should not use this too much. * @param particle Particle name. Particle name list: http://minecraft.gamepedia.com/Particles @@ -679,11 +578,7 @@ public class ScriptWorld implements IWorld { public void spawnParticle(String particle, double x, double y, double z, double dx, double dy, double dz, double speed, int count){ world.func_147487_a(particle, x, y, z, count, dx, dy, dz, speed); } - - public void spawnParticle(String particle, IPos pos, double dx, double dy, double dz, double speed, int count){ - this.spawnParticle(particle, pos.getX(), pos.getY(), pos.getZ(), dx, dy, dz, speed, count); - } - + /** * @param id The items name * @param damage The damage value @@ -710,7 +605,7 @@ public class ScriptWorld implements IWorld { public Object getTempData(String key){ return tempData.get(key); } - + /** * Tempdata gets cleared when the server restarts. All worlds share the same temp data. * @param key The key for the data stored @@ -719,7 +614,7 @@ public class ScriptWorld implements IWorld { public void setTempData(String key, Object value){ tempData.put(key, value); } - + /** * @param key The key thats going to be tested against the temp data * @return Whether or not temp data containes the key @@ -727,21 +622,21 @@ public class ScriptWorld implements IWorld { public boolean hasTempData(String key){ return tempData.containsKey(key); } - + /** * @param key The key for the temp data to be removed */ public void removeTempData(String key){ tempData.remove(key); } - + /** * Removes all tempdata */ public void clearTempData(){ tempData.clear(); } - + /** * @param key The key of the data to be returned * @return Returns the stored data @@ -755,7 +650,7 @@ public class ScriptWorld implements IWorld { return ((NBTPrimitive)base).func_150286_g(); return ((NBTTagString)base).func_150285_a_(); } - + /** * Stored data persists through world restart. Unlike tempdata only Strings and Numbers can be saved * @param key The key for the data stored @@ -769,7 +664,7 @@ public class ScriptWorld implements IWorld { compound.setString(key, (String)value); ScriptController.Instance.shouldSave = true; } - + /** * @param key The key of the data to be checked * @return Returns whether or not the stored data contains the key @@ -777,7 +672,7 @@ public class ScriptWorld implements IWorld { public boolean hasStoredData(String key){ return ScriptController.Instance.compound.hasKey(key); } - + /** * @param key The key of the data to be removed */ @@ -785,7 +680,7 @@ public class ScriptWorld implements IWorld { ScriptController.Instance.compound.removeTag(key); ScriptController.Instance.shouldSave = true; } - + /** * Remove all stored data */ @@ -793,7 +688,7 @@ public class ScriptWorld implements IWorld { ScriptController.Instance.compound = new NBTTagCompound(); ScriptController.Instance.shouldSave = true; } - + /** * @param x Position x * @param y Position y @@ -806,10 +701,6 @@ public class ScriptWorld implements IWorld { world.newExplosion(null, x, y, z, range, fire, grief); } - public void explode(IPos pos, float range, boolean fire, boolean grief){ - this.explode(pos.getX(),pos.getY(),pos.getZ(),range,fire,grief); - } - @Deprecated public IPlayer[] getAllServerPlayers(){ List list = MinecraftServer.getServer().getConfigurationManager().playerEntityList; @@ -817,7 +708,7 @@ public class ScriptWorld implements IWorld { for(int i = 0; i < list.size(); i++){ arr[i] = (IPlayer) NpcAPI.Instance().getIEntity(list.get(i)); } - + return arr; } @@ -838,11 +729,7 @@ public class ScriptWorld implements IWorld { public String getBiomeName(int x, int z){ return world.getBiomeGenForCoords(x, z).biomeName; } - - public String getBiomeName(IPos pos){ - return this.getBiomeName(pos.getX(),pos.getZ()); - } - + /** * Lets you spawn a server side cloned entity * @param x The x position the clone will be spawned at @@ -865,18 +752,10 @@ public class ScriptWorld implements IWorld { return entity == null ? null : NpcAPI.Instance().getIEntity(entity); } - public IEntity spawnClone(IPos pos, int tab, String name, boolean ignoreProtection) { - return this.spawnClone(pos.getX(),pos.getY(),pos.getZ(),tab,name,ignoreProtection); - } - public IEntity spawnClone(int x, int y, int z, int tab, String name) { return this.spawnClone(x,y,z,tab,name,true); } - - public IEntity spawnClone(IPos pos, int tab, String name) { - return this.spawnClone(pos.getX(),pos.getY(),pos.getZ(),tab,name); - } - + public ScriptScoreboard getScoreboard(){ return new ScriptScoreboard(); } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptAnimal.java b/src/main/java/noppes/npcs/scripted/entity/ScriptAnimal.java index 3171cca84..33f0b28d5 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptAnimal.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptAnimal.java @@ -1,19 +1,13 @@ package noppes.npcs.scripted.entity; import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import noppes.npcs.scripted.constants.EntityType; import noppes.npcs.scripted.interfaces.entity.IAnimal; -import noppes.npcs.scripted.interfaces.entity.IPlayer; -import noppes.npcs.scripted.interfaces.item.IItemStack; public class ScriptAnimal extends ScriptLiving implements IAnimal { - protected T entity; - + public ScriptAnimal(T entity) { super(entity); - this.entity = entity; } @Override @@ -21,35 +15,8 @@ public class ScriptAnimal extends ScriptLiving implem return EntityType.ANIMAL; } - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(IItemStack itemStack) { - return this.entity.isBreedingItem(itemStack.getMCItemStack()); - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(IPlayer player) { - return this.entity.interact((EntityPlayer) player.getMCEntity()); - } - - public boolean isInLove() { - return this.entity.isInLove(); - } - - public void resetInLove() { - this.entity.resetInLove(); - } - - public boolean canMateWith(IAnimal animal) { - return this.entity.canMateWith((EntityAnimal) animal.getMCEntity()); - } - @Override public boolean typeOf(int type){ - return type == EntityType.ANIMAL || super.typeOf(type); + return type == EntityType.ANIMAL?true:super.typeOf(type); } } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java index 41bdc1a95..fc10f7447 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java @@ -363,14 +363,6 @@ public class ScriptEntity implements IEntity { this.setMotionZ(z); } - public void setMotion(IPos pos) { - this.setMotion(pos.getX(),pos.getY(),pos.getZ()); - } - - public IPos getMotion() { - return NpcAPI.Instance().getIPos(entity.motionX,entity.motionY,entity.motionZ); - } - public boolean isAirborne(){ return entity.isAirBorne; } @@ -406,21 +398,13 @@ public class ScriptEntity implements IEntity { } public IPos getPos() { - return NpcAPI.Instance().getIPos(entity.posX, entity.posY, entity.posZ); - } - - public IPos getPosition() { - return getPos(); + return new ScriptBlockPos(new BlockPos(entity.posX,entity.posY,entity.posZ)); } public void setPos(IPos pos) { this.entity.setPosition((double)((float)pos.getX() + 0.5F), (double)pos.getY(), (double)((float)pos.getZ() + 0.5F)); } - public void setPosition(IPos pos) { - this.setPos(pos); - } - public int getDimension(){ return entity.dimension; } @@ -746,10 +730,6 @@ public class ScriptEntity implements IEntity { entity.velocityChanged = true; } - public void knockback(IPos pos, float direction){ - this.knockback(pos.getX(),pos.getY(),pos.getZ(),direction); - } - public void setImmune(int ticks) { entity.hurtResistantTime = ticks; }; @@ -809,11 +789,6 @@ public class ScriptEntity implements IEntity { this.entity.readFromNBT(nbt.getMCNBT()); } - public INbt getNbtOptional() { - NBTTagCompound compound = new NBTTagCompound(); - return this.entity.writeToNBTOptional(compound) ? NpcAPI.Instance().getINbt(compound) : null; - } - public void storeAsClone(int tab, String name) { NBTTagCompound compound = new NBTTagCompound(); if (!this.entity.writeToNBTOptional(compound)) { diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptLiving.java b/src/main/java/noppes/npcs/scripted/entity/ScriptLiving.java index 216065035..5d80811e2 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptLiving.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptLiving.java @@ -63,88 +63,4 @@ public class ScriptLiving extends ScriptLivingBase im public boolean canSeeEntity(IEntity entity){ return this.entity.getEntitySenses().canSee(entity.getMCEntity()); } - - public void playLivingSound() { - this.entity.playLivingSound(); - } - - public void spawnExplosionParticle() - { - this.entity.spawnExplosionParticle(); - } - - public void setMoveForward(float speed) - { - this.entity.setMoveForward(speed); - } - - public void faceEntity(IEntity entity, float pitch, float yaw) - { - this.entity.faceEntity(entity.getMCEntity(), pitch, yaw); - } - - public boolean canPickUpLoot() - { - return this.entity.canPickUpLoot(); - } - - public void setCanPickUpLoot(boolean pickUp) - { - this.entity.setCanPickUpLoot(pickUp); - } - - public boolean isPersistent() - { - return this.entity.isNoDespawnRequired(); - } - - public void enablePersistence() { - this.entity.func_110163_bv(); - } - - public void setCustomNameTag(String text) - { - this.entity.setCustomNameTag(text); - } - - public String getCustomNameTag() - { - return this.entity.getCustomNameTag(); - } - - public boolean hasCustomNameTag() - { - return this.entity.hasCustomNameTag(); - } - - public void setAlwaysRenderNameTag(boolean alwaysRender) - { - this.entity.setAlwaysRenderNameTag(alwaysRender); - } - - public boolean getAlwaysRenderNameTag() - { - return this.entity.getAlwaysRenderNameTag(); - } - - public void clearLeashed(boolean sendPacket, boolean dropLeash) - { - this.entity.clearLeashed(sendPacket,dropLeash); - } - - public boolean allowLeashing() { - return this.entity.allowLeashing(); - } - - public boolean getLeashed() { - return this.entity.getLeashed(); - } - - public IEntity getLeashedTo() { - return NpcAPI.Instance().getIEntity(entity.getLeashedToEntity()); - } - - public void setLeashedTo(IEntity entity, boolean sendPacket) { - this.entity.setLeashedToEntity(entity.getMCEntity(), sendPacket); - } } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptLivingBase.java b/src/main/java/noppes/npcs/scripted/entity/ScriptLivingBase.java index 1b733959a..0ff394203 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptLivingBase.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptLivingBase.java @@ -1,5 +1,6 @@ package noppes.npcs.scripted.entity; +import net.minecraft.block.BlockLiquid; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.potion.Potion; @@ -7,14 +8,18 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.Vec3; -import noppes.npcs.scripted.NpcAPI; -import noppes.npcs.scripted.ScriptDamageSource; -import noppes.npcs.scripted.constants.EntityType; +import net.minecraft.util.math.BlockPos; +import noppes.npcs.scripted.ScriptBlockPos; import noppes.npcs.scripted.interfaces.IBlock; import noppes.npcs.scripted.interfaces.IPos; import noppes.npcs.scripted.interfaces.entity.IEntity; -import noppes.npcs.scripted.interfaces.entity.IEntityLivingBase; import noppes.npcs.scripted.interfaces.item.IItemStack; +import noppes.npcs.scripted.constants.EntityType; +import noppes.npcs.scripted.interfaces.entity.IEntityLivingBase; +import noppes.npcs.scripted.NpcAPI; +import noppes.npcs.scripted.ScriptDamageSource; + +import java.util.ArrayList; public class ScriptLivingBase extends ScriptEntity implements IEntityLivingBase { protected T entity; @@ -103,7 +108,7 @@ public class ScriptLivingBase extends ScriptEntity extends ScriptEntity extends ScriptLiving imp npc.script.clientNeedsUpdate = true; } - public IPos getHome() { - return NpcAPI.Instance().getIPos(npc.ai.startPos[0],npc.ai.startPos[1],npc.ai.startPos[2]); - } - /** * @return Home position x */ @@ -206,11 +201,6 @@ public class ScriptNpc extends ScriptLiving imp public void setHome(int x, int y, int z){ npc.ai.startPos = new int[]{x, y, z}; } - - public void setHome(IPos pos){ - npc.ai.startPos = new int[]{pos.getX(), pos.getY(), pos.getZ()}; - } - /** * @param health New max health */ @@ -1143,7 +1133,7 @@ public class ScriptNpc extends ScriptLiving imp public void setSkinType(byte type) { npc.display.skinType = type; - npc.script.clientNeedsUpdate = true; + npc.updateClient = true; } public byte getSkinType() { @@ -1156,7 +1146,7 @@ public class ScriptNpc extends ScriptLiving imp this.npc.display.url = url; npc.textureLocation = null; npc.display.skinType = 2; - npc.script.clientNeedsUpdate = true; + npc.updateClient = true; } public String getSkinUrl() { @@ -1165,7 +1155,7 @@ public class ScriptNpc extends ScriptLiving imp public void setCloakTexture(String cloakTexture) { npc.display.cloakTexture = cloakTexture; - npc.script.clientNeedsUpdate = true; + npc.updateClient = true; } public String getCloakTexture() { @@ -1178,7 +1168,7 @@ public class ScriptNpc extends ScriptLiving imp } this.getOverlays().add(0, NpcAPI.Instance().createSkinOverlay(overlayTexture)); - npc.script.clientNeedsUpdate = true; + npc.updateClient = true; } public String getOverlayTexture() { @@ -1200,6 +1190,4 @@ public class ScriptNpc extends ScriptLiving imp } public void updateClient() { this.npc.updateClient(); } - - public void updateAI() { this.npc.updateTasks(); } } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java index 45b63c8e2..385744cf9 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java @@ -86,10 +86,6 @@ public class ScriptPlayer extends ScriptLivingBase NoppesUtilPlayer.teleportPlayer(player, x, y, z, player.dimension); } - public void setPosition(IPos pos) { - this.setPosition(pos.getX(),pos.getY(),pos.getZ()); - } - public void setPosition(double x, double y, double z, int dimensionId){ if (NpcAPI.Instance().getIWorld(dimensionId) == null) return; @@ -97,10 +93,6 @@ public class ScriptPlayer extends ScriptLivingBase NoppesUtilPlayer.teleportPlayer(player, x, y, z, dimensionId); } - public void setPosition(IPos pos, int dimensionId) { - this.setPosition(pos.getX(),pos.getY(),pos.getZ(), dimensionId); - } - public int getHunger(){ return player.getFoodStats().getFoodLevel(); } @@ -513,10 +505,6 @@ public class ScriptPlayer extends ScriptLivingBase y = ValueUtil.CorrectInt(y, 0, 256); player.setSpawnChunk(new ChunkCoordinates(x, y, z), true); } - - public void setSpawnpoint(IPos pos){ - this.setSpawnpoint(pos.getX(),pos.getY(),pos.getZ()); - } public void resetSpawnpoint(){ player.setSpawnChunk(null, false); diff --git a/src/main/java/noppes/npcs/scripted/event/PlayerEvent.java b/src/main/java/noppes/npcs/scripted/event/PlayerEvent.java index 88fe5efe9..5a617fc85 100644 --- a/src/main/java/noppes/npcs/scripted/event/PlayerEvent.java +++ b/src/main/java/noppes/npcs/scripted/event/PlayerEvent.java @@ -459,7 +459,7 @@ public class PlayerEvent extends CustomNPCsEvent { public Bonemeal(IPlayer player, int x, int y, int z, World world) { super(player); - this.block = API.getIBlock(NpcAPI.Instance().getIWorld(world), x, y, z); + this.block = API.getIBlock(world, x, y, z); this.x = x; this.y = y; this.z = z; diff --git a/src/main/java/noppes/npcs/scripted/interfaces/AbstractNpcAPI.java b/src/main/java/noppes/npcs/scripted/interfaces/AbstractNpcAPI.java index 9f6871c1c..19ff53c72 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/AbstractNpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/AbstractNpcAPI.java @@ -17,7 +17,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -67,37 +66,23 @@ public abstract class AbstractNpcAPI { public abstract String[] getAllBiomeNames(); - public abstract ICustomNpc createNPC(IWorld var1); + public abstract ICustomNpc createNPC(World var1); /** * * Spawns a new NPC in the world at the given coordinates and returns an ICustomNpc object of it. */ - public abstract ICustomNpc spawnNPC(IWorld var1, int var2, int var3, int var4); + public abstract ICustomNpc spawnNPC(World var1, int var2, int var3, int var4); - public abstract ICustomNpc spawnNPC(IWorld world, IPos pos); + public abstract IEntity getIEntity(Entity var1); - public abstract IEntity getIEntity(Entity var1); + public abstract IEntity[] getLoadedEntities(); - public abstract IEntity[] getLoadedEntities(); + public abstract IBlock getIBlock(World var1, BlockPos var2); - public abstract IBlock getIBlock(IWorld world, int x, int y, int z); + public abstract IBlock getIBlock(World world, Block block, BlockPos pos); - public abstract IBlock getIBlock(IWorld world, IPos pos); - - public abstract ITileEntity getITileEntity(IWorld world, IPos pos); - - public abstract ITileEntity getITileEntity(IWorld world, int x, int y, int z); - - public abstract ITileEntity getITileEntity(TileEntity tileEntity); - - public abstract IPos getIPos(BlockPos pos); - - public abstract IPos getIPos(int x, int y, int z); - - public abstract IPos getIPos(double x, double y, double z); - - public abstract IPos getIPos(float x, float y, float z); + public abstract IBlock getIBlock(World world, int x, int y, int z); public abstract IContainer getIContainer(IInventory var1); @@ -113,7 +98,7 @@ public abstract class AbstractNpcAPI { public abstract IDamageSource getIDamageSource(DamageSource var1); - public abstract IDamageSource getIDamageSource(IEntity entity); + public abstract IDamageSource getIDamageSource(IEntity entity); public abstract EventBus events(); @@ -132,7 +117,7 @@ public abstract class AbstractNpcAPI { return null; } else { try { - Class c = Class.forName("noppes.npcs.scripted.NpcAPI"); + Class c = Class.forName("noppes.npcs.scripted.NpcAPI"); instance = (AbstractNpcAPI) c.getMethod("Instance").invoke((Object) null); } catch (Exception var1) { var1.printStackTrace(); @@ -169,15 +154,15 @@ public abstract class AbstractNpcAPI { public abstract INbt stringToNbt(String str); - public abstract IPlayer[] getAllServerPlayers(); + public abstract IPlayer[] getAllServerPlayers(); public abstract String[] getPlayerNames(); public abstract IItemStack createItem(String id, int damage, int size); - public abstract void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch); + public abstract void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch); - public abstract void playSoundToNearExcept(IPlayer player, String sound, float volume, float pitch); + public abstract void playSoundToNearExcept(IPlayer player, String sound, float volume, float pitch); /** * diff --git a/src/main/java/noppes/npcs/scripted/interfaces/IParticle.java b/src/main/java/noppes/npcs/scripted/interfaces/IParticle.java index a5fdb84f2..3c97f32f8 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/IParticle.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/IParticle.java @@ -137,9 +137,6 @@ public interface IParticle { double getY(); double getZ(); - void setPosition(IPos pos); - void getPos(); - void setMotion(double motionX, double motionY, double motionZ, float gravity); double getMotionX(); double getMotionY(); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/IPos.java b/src/main/java/noppes/npcs/scripted/interfaces/IPos.java index c56ac3a78..13a07fbb2 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/IPos.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/IPos.java @@ -5,8 +5,6 @@ package noppes.npcs.scripted.interfaces; -import net.minecraft.util.math.BlockPos; - public interface IPos { int getX(); @@ -158,6 +156,4 @@ public interface IPos { * @return The distance between this IPos object and the other. */ double distanceTo(IPos pos); - - BlockPos getMCPos(); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/ITileEntity.java b/src/main/java/noppes/npcs/scripted/interfaces/ITileEntity.java index caba3874c..0df505aae 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/ITileEntity.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/ITileEntity.java @@ -16,9 +16,7 @@ public interface ITileEntity { * * @return The world this tile entity is in. */ - IWorld getWorld(); - - void setWorld(IWorld world); + ScriptWorld getWorld(); /** * @@ -26,8 +24,6 @@ public interface ITileEntity { */ TileEntity getMCTileEntity(); - void markDirty(); - /** * Reads an INbt compound tag, creates a tile entity based on the data, and replaces this entity with the new one. */ @@ -37,7 +33,6 @@ public interface ITileEntity { * @return The distance of this tile entity from the point given by the x, y, and z parameters. */ double getDistanceFrom(double x, double y, double z); - double getDistanceFrom(IPos pos); /** * @return A new IBlock object based on this tile entity's type. diff --git a/src/main/java/noppes/npcs/scripted/interfaces/IWorld.java b/src/main/java/noppes/npcs/scripted/interfaces/IWorld.java index 98df9b79b..55414b52f 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/IWorld.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/IWorld.java @@ -1,7 +1,7 @@ package noppes.npcs.scripted.interfaces; import net.minecraft.world.WorldServer; -import noppes.npcs.scripted.scoreboard.ScriptScoreboard; +import noppes.npcs.scripted.ScriptScoreboard; import noppes.npcs.scripted.interfaces.entity.IEntity; import noppes.npcs.scripted.interfaces.entity.IPlayer; import noppes.npcs.scripted.interfaces.handler.data.ISound; @@ -39,65 +39,41 @@ public interface IWorld { * @return The top-most block in the world as an IBlock object. */ IBlock getTopBlock(int x, int z); - IBlock getTopBlock(IPos pos); - boolean isBlockFreezable(IPos pos); boolean isBlockFreezable(int x, int y, int z); - boolean isBlockFreezableNaturally(IPos pos); boolean isBlockFreezableNaturally(int x, int y, int z); - boolean canBlockFreeze(IPos pos, boolean adjacentToWater); boolean canBlockFreeze(int x, int y, int z, boolean adjacentToWater); - boolean canBlockFreezeBody(IPos pos, boolean adjacentToWater); boolean canBlockFreezeBody(int x, int y, int z, boolean adjacentToWater); - boolean canSnowAt(IPos pos, boolean checkLight); boolean canSnowAt(int x, int y, int z, boolean checkLight); - boolean canSnowAtBody(IPos pos, boolean checkLight); boolean canSnowAtBody(int x, int y, int z, boolean checkLight); /** * @return The Y-value of the world at this x & z value based on the height map of the world. */ int getHeightValue(int x, int z); - int getHeightValue(IPos pos); /** * @return The minimum Y-value of the world at this x & z value based on the height map of the world. */ int getChunkHeightMapMinimum(int x, int z); - int getChunkHeightMapMinimum(IPos pos); /** * @return The metadata of the block at this position. */ int getBlockMetadata(int x, int y, int z); - int getBlockMetadata(IPos pos); boolean setBlockMetadataWithNotify(int x, int y, int z, int metadata, int flag); - boolean setBlockMetadataWithNotify(IPos pos, int metadata, int flag); - /** - * @param x - * @param y - * @param z - * @return can the block at this position see the sky or are there no blocks above this one - */ - boolean canSeeSky(int x, int y, int z); - /** - * @param pos - * @return can the block at this position see the sky or are there no blocks above this one - */ - boolean canSeeSky(IPos pos); + boolean canBlockSeeTheSky(int x, int y, int z); int getFullBlockLightValue(int x, int y, int z); - int getFullBlockLightValue(IPos pos); int getBlockLightValue(int x, int y, int z); - int getBlockLightValue(IPos pos); void playSoundAtEntity(IEntity entity, String sound, float volume, float pitch); @@ -120,12 +96,10 @@ public interface IWorld { IPlayer getClosestPlayerToEntity(IEntity entity, double range); IPlayer getClosestPlayer(double x, double y, double z, double range); - IPlayer getClosestPlayer(IPos pos, double range); IPlayer getClosestVulnerablePlayerToEntity(IEntity entity, double range); IPlayer getClosestVulnerablePlayer(double x, double y, double z, double range); - IPlayer getClosestVulnerablePlayer(IPos pos, double range); /** * @@ -144,31 +118,25 @@ public interface IWorld { * Sets the block's tile entity at the given position. */ void setTileEntity(int x, int y, int z, ITileEntity tileEntity); - void setTileEntity(IPos pos, ITileEntity tileEntity); /** * Removes the block's tile entity at the given position. */ void removeTileEntity(int x, int y, int z); - void removeTileEntity(IPos pos); /** * * @return True if the block at this position is of cubic shape. (Not a stair, slab, etc.) */ boolean isBlockFullCube(int x, int y, int z); - boolean isBlockFullCube(IPos pos); long getSeed(); void setSpawnLocation(int x, int y, int z); - void setSpawnLocation(IPos pos); boolean canLightningStrikeAt(int x, int y, int z); - boolean canLightningStrikeAt(IPos pos); boolean isBlockHighHumidity(int x, int y, int z); - boolean isBlockHighHumidity(IPos pos); /** * @param x World position x @@ -178,7 +146,6 @@ public interface IWorld { * @since 1.7.10d */ String getSignText(int x, int y, int z); - String getSignText(IPos pos); /** * @param x World position x @@ -186,8 +153,7 @@ public interface IWorld { * @param z World position z * @param item The block to be set */ - void setBlock(int x, int y, int z, IItemStack item); - void setBlock(IPos pos, IItemStack item); + public void setBlock(int x, int y, int z, IItemStack item); /** * @param x World position x @@ -195,16 +161,14 @@ public interface IWorld { * @param z World position z * @param block The block to be set */ - void setBlock(int x, int y, int z, IBlock block); - void setBlock(IPos pos, IBlock block); + public void setBlock(int x, int y, int z, IBlock block); /** * @param x World position x * @param y World position y * @param z World position z */ - void removeBlock(int x, int y, int z); - void removeBlock(IPos pos); + public void removeBlock(int x, int y, int z); IPos rayCastPos(double[] startPos, double[] lookVector, int maxDistance, boolean stopOnBlock, boolean stopOnLiquid, boolean stopOnCollision); @@ -244,6 +208,20 @@ public interface IWorld { IEntity[] rayCastEntities(IPos startPos, IPos lookVector, int maxDistance, double offset, double range); + /** + * @param x + * @param y + * @param z + * @return can the block at this position see the sky or are there no blocks above this one + */ + public boolean canSeeSky(int x, int y, int z); + + /** + * @param pos + * @return can the block at this position see the sky or are there no blocks above this one + */ + public boolean canSeeSky(IPos pos); + /** * @param name The name of the player to be returned * @return The Player with name. Null is returned when the player isnt found @@ -278,7 +256,6 @@ public interface IWorld { * @param z The z position */ void thunderStrike(double x, double y, double z); - void thunderStrike(IPos pos); /** * Sends a packet from the server to the client everytime its called. Probably should not use this too much. @@ -293,7 +270,6 @@ public interface IWorld { * @param count Particle count */ void spawnParticle(String particle, double x, double y, double z, double dx, double dy, double dz, double speed, int count); - void spawnParticle(String particle, IPos pos, double dx, double dy, double dz, double speed, int count); /** * @param id The items name @@ -377,7 +353,6 @@ public interface IWorld { * @param grief Whether or not the explosion does damage to blocks */ void explode(double x, double y, double z, float range, boolean fire, boolean grief); - void explode(IPos pos, float range, boolean fire, boolean grief); IPlayer[] getAllServerPlayers(); @@ -390,7 +365,6 @@ public interface IWorld { * @return Returns the name of the biome */ String getBiomeName(int x, int z); - String getBiomeName(IPos pos); /** * Lets you spawn a server side cloned entity @@ -403,10 +377,8 @@ public interface IWorld { * @return Returns the entity which was spawned */ IEntity spawnClone(int x, int y, int z, int tab, String name, boolean ignoreProtection); - IEntity spawnClone(IPos pos, int tab, String name, boolean ignoreProtection); IEntity spawnClone(int x, int y, int z, int tab, String name); - IEntity spawnClone(IPos pos, int tab, String name); ScriptScoreboard getScoreboard(); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/IAnimal.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/IAnimal.java index 2f9dc4fe5..28a74b2ae 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/IAnimal.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/IAnimal.java @@ -6,23 +6,6 @@ package noppes.npcs.scripted.interfaces.entity; import net.minecraft.entity.passive.EntityAnimal; -import noppes.npcs.scripted.interfaces.item.IItemStack; public interface IAnimal extends IEntityLiving { - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - boolean isBreedingItem(IItemStack itemStack); - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - boolean interact(IPlayer player); - - boolean isInLove(); - - void resetInLove(); - - boolean canMateWith(IAnimal animal); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/ICustomNpc.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/ICustomNpc.java index 8e684cc71..789d32050 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/ICustomNpc.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/ICustomNpc.java @@ -6,7 +6,6 @@ package noppes.npcs.scripted.interfaces.entity; import net.minecraft.entity.EntityCreature; -import noppes.npcs.scripted.interfaces.IPos; import noppes.npcs.scripted.interfaces.ITimers; import noppes.npcs.scripted.interfaces.handler.IOverlayHandler; import noppes.npcs.scripted.interfaces.handler.data.IFaction; @@ -73,8 +72,6 @@ public interface ICustomNpc extends IEntityLiving { */ void setTexture(String texture); - IPos getHome(); - /** * @return Home position x */ @@ -111,9 +108,6 @@ public interface ICustomNpc extends IEntityLiving { * @param z The home z position */ void setHome(int x, int y, int z); - - void setHome(IPos pos); - /** * @param health New max health */ @@ -814,6 +808,4 @@ public interface ICustomNpc extends IEntityLiving { int getCollisionType(); void updateClient(); - - void updateAI(); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntity.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntity.java index b6166ef00..2d35aaf9c 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntity.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntity.java @@ -95,10 +95,6 @@ public interface IEntity { void setMotion(double x, double y, double z); - void setMotion(IPos pos); - - IPos getMotion(); - boolean isAirborne(); /** @@ -123,9 +119,9 @@ public interface IEntity { */ void setPosition(double x, double y, double z); - void setPosition(IPos pos); + IPos getPos(); - IPos getPosition(); + void setPos(IPos pos); int getDimension(); @@ -309,7 +305,6 @@ public interface IEntity { void knockback(int power, float direction); void knockback(int xpower, int ypower, int zpower, float direction); - void knockback(IPos pos, float direction); void setImmune(int ticks); @@ -346,8 +341,6 @@ public interface IEntity { public void setNbt(INbt nbt); - INbt getNbtOptional(); - void storeAsClone(int tab, String name); IWorld getWorld(); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLiving.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLiving.java index b074eabc4..6adef4fe3 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLiving.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLiving.java @@ -15,40 +15,4 @@ public interface IEntityLiving extends IEntityLivingBase void navigateTo(double var1, double var3, double var5, double var7); T getMCEntity(); - - void playLivingSound(); - - void spawnExplosionParticle(); - - void setMoveForward(float speed); - - void faceEntity(IEntity entity, float pitch, float yaw); - - boolean canPickUpLoot(); - - void setCanPickUpLoot(boolean pickUp); - - boolean isPersistent(); - - void enablePersistence(); - - void setCustomNameTag(String text); - - String getCustomNameTag(); - - boolean hasCustomNameTag(); - - void setAlwaysRenderNameTag(boolean alwaysRender); - - boolean getAlwaysRenderNameTag(); - - void clearLeashed(boolean sendPacket, boolean dropLeash); - - boolean allowLeashing(); - - boolean getLeashed(); - - IEntity getLeashedTo(); - - void setLeashedTo(IEntity entity, boolean sendPacket); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLivingBase.java b/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLivingBase.java index 62e9b21ff..3acc3b7d9 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLivingBase.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/entity/IEntityLivingBase.java @@ -146,12 +146,4 @@ public interface IEntityLivingBase extends IEntity extends IEntityLivingBase void kick(String reason); void setPosition(double x, double y, double z); - void setPosition(IPos pos); void setPosition(double x, double y, double z, int dimensionId); - void setPosition(IPos pos, int dimensionId); int getHunger(); @@ -212,7 +210,6 @@ public interface IPlayer extends IEntityLivingBase * @param z The z position */ void setSpawnpoint(int x, int y, int z); - void setSpawnpoint(IPos pos); void resetSpawnpoint(); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/handler/ICloneHandler.java b/src/main/java/noppes/npcs/scripted/interfaces/handler/ICloneHandler.java index 66487249a..9fe8108fe 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/handler/ICloneHandler.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/handler/ICloneHandler.java @@ -5,17 +5,14 @@ package noppes.npcs.scripted.interfaces.handler; -import noppes.npcs.scripted.interfaces.IPos; import noppes.npcs.scripted.interfaces.IWorld; import noppes.npcs.scripted.interfaces.entity.IEntity; public interface ICloneHandler { IEntity spawn(double x, double y, double z, int tab, String name, IWorld world, boolean ignoreProtection); - IEntity spawn(IPos pos, int tab, String name, IWorld world, boolean ignoreProtection); IEntity spawn(double x, double y, double z, int tab, String name, IWorld world); - IEntity spawn(IPos pos, int tab, String name, IWorld world); IEntity[] getTab(int tab, IWorld world); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/handler/data/ITransportLocation.java b/src/main/java/noppes/npcs/scripted/interfaces/handler/data/ITransportLocation.java index a754ccd37..6978ae0b9 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/handler/data/ITransportLocation.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/handler/data/ITransportLocation.java @@ -1,7 +1,5 @@ package noppes.npcs.scripted.interfaces.handler.data; -import noppes.npcs.scripted.interfaces.IPos; - public interface ITransportLocation { int getId(); @@ -20,8 +18,6 @@ public interface ITransportLocation { void setPosition(int x, int y, int z); - void setPosition(IPos pos); - double getX(); double getY(); diff --git a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobBard.java b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobBard.java index 55df048f5..a9416d60e 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobBard.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobBard.java @@ -5,20 +5,4 @@ public interface IJobBard extends IJob { String getSong(); void setSong(String song); - - void setInstrument(int i); - - int getInstrumentId(); - - void setMinRange(int range); - int getMinRange(); - - void setMaxRange(int range); - int getMaxRange(); - - void setStreaming(boolean streaming); - boolean getStreaming(); - - void hasOffRange(boolean value); - boolean hasOffRange(); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobGuard.java b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobGuard.java index 20f5245df..16710a8a7 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobGuard.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobGuard.java @@ -1,12 +1,4 @@ package noppes.npcs.scripted.interfaces.jobs; public interface IJobGuard extends IJob { - boolean attackCreepers(); - void attackCreepers(boolean value); - - boolean attacksAnimals(); - void attacksAnimals(boolean value); - - boolean attackHostileMobs(); - void attackHostileMobs(boolean value); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobHealer.java b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobHealer.java index b5a4cb2ff..4cc335383 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobHealer.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobHealer.java @@ -5,10 +5,4 @@ import noppes.npcs.scripted.interfaces.entity.IEntityLivingBase; public interface IJobHealer extends IJob { void heal(IEntityLivingBase entity, float amount); - - void setRange(int range); - int getRange(); - - void setSpeed(int speed); - int getSpeed(); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobSpawner.java b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobSpawner.java index 1e9763f6b..b9ff96ac5 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobSpawner.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/jobs/IJobSpawner.java @@ -1,31 +1,10 @@ package noppes.npcs.scripted.interfaces.jobs; -import net.minecraft.entity.player.EntityPlayerMP; -import noppes.npcs.scripted.interfaces.IPos; -import noppes.npcs.scripted.interfaces.IWorld; import noppes.npcs.scripted.interfaces.entity.IEntityLivingBase; -import noppes.npcs.scripted.interfaces.entity.IPlayer; public interface IJobSpawner extends IJob { - IEntityLivingBase spawnEntity(int number); + IEntityLivingBase spawnEntity(int number); - IEntityLivingBase getEntity(int number, int x, int y, int z, IWorld world); - - IEntityLivingBase getEntity(int number, IPos pos, IWorld world); - - void setEntity(int number, IEntityLivingBase entityLivingBase); - - /** - * Removes all spawned entities - */ void removeAllSpawned(); - - IEntityLivingBase[] getNearbySpawned(); - - boolean hasPixelmon(); - - boolean isEmpty(); - - boolean isOnCooldown(IPlayer player); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/roles/IRole.java b/src/main/java/noppes/npcs/scripted/interfaces/roles/IRole.java index 15b535177..f309d7bd0 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/roles/IRole.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/roles/IRole.java @@ -1,10 +1,6 @@ package noppes.npcs.scripted.interfaces.roles; -import net.minecraft.entity.INpc; - public interface IRole { - INpc getNpc(); - int getType(); } diff --git a/src/main/java/noppes/npcs/scripted/interfaces/roles/IRoleTransporter.java b/src/main/java/noppes/npcs/scripted/interfaces/roles/IRoleTransporter.java index fc6c6c0c1..b5c9b8f4c 100644 --- a/src/main/java/noppes/npcs/scripted/interfaces/roles/IRoleTransporter.java +++ b/src/main/java/noppes/npcs/scripted/interfaces/roles/IRoleTransporter.java @@ -1,19 +1,5 @@ package noppes.npcs.scripted.interfaces.roles; -import net.minecraft.entity.player.EntityPlayerMP; -import noppes.npcs.scripted.interfaces.entity.IPlayer; -import noppes.npcs.scripted.interfaces.handler.data.ITransportLocation; - public interface IRoleTransporter extends IRole { - String getName(); - int getTransportId(); - - void unlock(IPlayer player, ITransportLocation location); - - ITransportLocation getTransport(); - - boolean hasTransport(); - - void setTransport(ITransportLocation location); } diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptJobBard.java b/src/main/java/noppes/npcs/scripted/roles/ScriptJobBard.java index da81c8877..fe5811930 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptJobBard.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptJobBard.java @@ -30,50 +30,4 @@ public class ScriptJobBard extends ScriptJobInterface implements IJobBard { job.song = song; npc.script.clientNeedsUpdate = true; } - - /** - * - * @param i The id of the instrument. IDs: - * 0 - None, - * 1 - Banjo, - * 2 - Violin, - * 3 - Guitar, - * 4 - Harp, - * 5 - FrenchHorn - */ - public void setInstrument(int i) { - this.job.setInstrument(i); - } - - public int getInstrumentId() { - return this.job.getInstrument().ordinal(); - } - - public void setMinRange(int range) { - this.job.minRange = range; - } - public int getMinRange() { - return this.job.minRange; - } - - public void setMaxRange(int range) { - this.job.maxRange = range; - } - public int getMaxRange() { - return this.job.maxRange; - } - - public void setStreaming(boolean streaming) { - this.job.isStreamer = streaming; - } - public boolean getStreaming() { - return this.job.isStreamer; - } - - public void hasOffRange(boolean value) { - this.job.hasOffRange = value; - } - public boolean hasOffRange() { - return this.job.hasOffRange; - } } diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptJobGuard.java b/src/main/java/noppes/npcs/scripted/roles/ScriptJobGuard.java index d00154541..e16340f30 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptJobGuard.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptJobGuard.java @@ -11,27 +11,6 @@ public class ScriptJobGuard extends ScriptJobInterface implements IJobGuard { super(npc); this.job = (JobGuard) npc.jobInterface; } - - public boolean attackCreepers() { - return job.attackCreepers; - } - public void attackCreepers(boolean value) { - job.attackCreepers = value; - } - - public boolean attacksAnimals() { - return job.attacksAnimals; - } - public void attacksAnimals(boolean value) { - job.attacksAnimals = value; - } - - public boolean attackHostileMobs() { - return job.attackHostileMobs; - } - public void attackHostileMobs(boolean value) { - job.attackHostileMobs = value; - } @Override public int getType(){ diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptJobHealer.java b/src/main/java/noppes/npcs/scripted/roles/ScriptJobHealer.java index c7e99ab5c..85578453b 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptJobHealer.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptJobHealer.java @@ -16,20 +16,6 @@ public class ScriptJobHealer extends ScriptJobInterface implements IJobHealer { public void heal(IEntityLivingBase entity, float amount){ job.heal(entity.getMCEntity(), amount); } - - public void setRange(int range) { - this.job.range = range; - } - public int getRange() { - return this.job.range; - } - - public void setSpeed(int speed) { - this.job.speed = speed; - } - public int getSpeed() { - return this.job.speed; - } @Override public int getType(){ diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptJobSpawner.java b/src/main/java/noppes/npcs/scripted/roles/ScriptJobSpawner.java index ed3f5cf97..c44f03aad 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptJobSpawner.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptJobSpawner.java @@ -1,26 +1,17 @@ package noppes.npcs.scripted.roles; import java.util.ArrayList; -import java.util.List; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import noppes.npcs.NoppesUtilServer; import noppes.npcs.entity.EntityNPCInterface; import noppes.npcs.roles.JobSpawner; import noppes.npcs.scripted.NpcAPI; import noppes.npcs.scripted.constants.JobType; -import noppes.npcs.scripted.interfaces.INbt; -import noppes.npcs.scripted.interfaces.IPos; -import noppes.npcs.scripted.interfaces.IWorld; import noppes.npcs.scripted.interfaces.entity.IEntityLivingBase; -import noppes.npcs.scripted.interfaces.entity.IPlayer; import noppes.npcs.scripted.interfaces.jobs.IJobSpawner; public class ScriptJobSpawner extends ScriptJobInterface implements IJobSpawner { - private final JobSpawner job; + private JobSpawner job; public ScriptJobSpawner(EntityNPCInterface npc){ super(npc); this.job = (JobSpawner) npc.jobInterface; @@ -36,64 +27,21 @@ public class ScriptJobSpawner extends ScriptJobInterface implements IJobSpawner * @param number The entity going to be spawned (1-6) * @return Returns spawned entity */ - public IEntityLivingBase spawnEntity(int number){ + public IEntityLivingBase spawnEntity(int number){ EntityLivingBase base = job.spawnEntity(number); if(base == null) return null; - return (IEntityLivingBase) NpcAPI.Instance().getIEntity(base); + return (IEntityLivingBase) NpcAPI.Instance().getIEntity(base); } - - public IEntityLivingBase getEntity(int number, int x, int y, int z, IWorld world) { - NBTTagCompound compound = this.job.getCompound(number); - if(compound == null || !compound.hasKey("id")) - return null; - Entity entity = NoppesUtilServer.getEntityFromNBT(compound,x,y,z,world.getMCWorld()); - if (!(entity instanceof EntityLivingBase)) { - return null; - } - return (IEntityLivingBase) NpcAPI.Instance().getIEntity(entity); - } - - public IEntityLivingBase getEntity(int number, IPos pos, IWorld world) { - return this.getEntity(number,pos.getX(),pos.getY(),pos.getZ(),world); - } - - public void setEntity(int number, IEntityLivingBase entityLivingBase){ - INbt nbt = entityLivingBase.getNbtOptional(); - if (nbt == null) - return; - this.job.setJobCompound(number,nbt.getMCNBT()); - } - - /** - * Removes all spawned entities - */ + + /** + * Removes all spawned entities + */ public void removeAllSpawned(){ for(EntityLivingBase entity : job.spawned){ entity.isDead = true; } - job.spawned = new ArrayList<>(); - } - - public IEntityLivingBase[] getNearbySpawned() { - List nearbySpawned = this.job.getNearbySpawned(); - List> list = new ArrayList<>(); - for (EntityLivingBase entity : nearbySpawned) { - list.add((IEntityLivingBase) NpcAPI.Instance().getIEntity(entity)); - } - return list.toArray(new IEntityLivingBase[0]); - } - - public boolean hasPixelmon() { - return this.job.hasPixelmon(); - } - - public boolean isEmpty() { - return this.job.isEmpty(); - } - - public boolean isOnCooldown(IPlayer player) { - return this.job.isOnCooldown(player.getName()); + job.spawned = new ArrayList(); } } diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptRoleInterface.java b/src/main/java/noppes/npcs/scripted/roles/ScriptRoleInterface.java index d4a41dffa..eef73dd82 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptRoleInterface.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptRoleInterface.java @@ -1,9 +1,7 @@ package noppes.npcs.scripted.roles; -import net.minecraft.entity.INpc; import noppes.npcs.entity.EntityNPCInterface; import noppes.npcs.roles.RoleInterface; -import noppes.npcs.scripted.NpcAPI; import noppes.npcs.scripted.constants.RoleType; import noppes.npcs.scripted.interfaces.roles.IRole; @@ -16,10 +14,6 @@ public class ScriptRoleInterface implements IRole { this.role = npc.roleInterface; } - public INpc getNpc() { - return (INpc) NpcAPI.Instance().getIEntity(npc); - } - /** * @see noppes.npcs.scripted.constants.RoleType * @return The RoleType of this role diff --git a/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTransporter.java b/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTransporter.java index c230e7ff6..3fbe5560b 100644 --- a/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTransporter.java +++ b/src/main/java/noppes/npcs/scripted/roles/ScriptRoleTransporter.java @@ -1,44 +1,13 @@ package noppes.npcs.scripted.roles; -import net.minecraft.entity.player.EntityPlayerMP; import noppes.npcs.entity.EntityNPCInterface; -import noppes.npcs.roles.RoleTransporter; import noppes.npcs.scripted.constants.RoleType; -import noppes.npcs.scripted.interfaces.entity.IPlayer; -import noppes.npcs.scripted.interfaces.handler.data.ITransportLocation; import noppes.npcs.scripted.interfaces.roles.IRoleTransporter; public class ScriptRoleTransporter extends ScriptRoleInterface implements IRoleTransporter { - private final RoleTransporter role; public ScriptRoleTransporter(EntityNPCInterface npc) { super(npc); - role = (RoleTransporter) npc.roleInterface; - - } - - public String getName() { - return role.name; - } - - public int getTransportId() { - return role.transportId; - } - - public void unlock(IPlayer player, ITransportLocation location) { - this.role.unlock(player.getMCEntity(), location); - } - - public ITransportLocation getTransport(){ - return this.role.getLocation(); - } - - public boolean hasTransport(){ - return this.role.hasTransport(); - } - - public void setTransport(ITransportLocation location) { - this.role.setTransport(location); } @Override