Compare commits

...

29 Commits

Author SHA1 Message Date
Tschipp
07eb70aed5 Merge branch 'master' into 1.10 2018-07-06 16:46:29 +02:00
Tschipp
d9ab1f3d60 Merge branch 'master' into 1.10 2018-05-11 23:30:26 +02:00
Tschipp
ed4449aa45 Merge branch 'master' into 1.10 2018-05-11 20:22:10 +02:00
Tschipp
48b0e03340 Merge branch 'master' into 1.10 2018-03-24 11:40:03 +01:00
Tschipp
8436abe222 Update for 1.10 2018-01-24 16:30:08 +01:00
Tschipp
5b27cb8ec6 1.10 Render Crash 2018-01-22 00:01:09 +01:00
Tschipp
fa2e013a4b Merge branch 'master' into 1.10 2017-11-04 11:51:06 +01:00
Tschipp
a9bdc384b9 1.10 ItemStack crashes... 2017-11-04 11:22:13 +01:00
Tschipp
f3a3843dc8 Breakspeed 2017-10-07 18:28:23 +02:00
Tschipp
063a34ef5c Merge branch 'master' into 1.10 2017-10-07 18:27:38 +02:00
Tschipp
592bee78b8 1.10 changes 2017-10-07 18:19:21 +02:00
Tschipp
32a837eb39 Merge branch 'master' into 1.10 2017-10-07 18:18:23 +02:00
Tschipp
acd0f06e4f Merge branch 'master' into 1.10 2017-10-03 16:45:47 +02:00
Tschipp
f4ae211a6a Command 2017-10-01 21:25:02 +02:00
Tschipp
a4fcb39cb6 Merge branch 'master' into 1.10 2017-10-01 21:24:53 +02:00
Tschipp
ac4a3d6a14 Merge branch 'master' into 1.10 2017-09-18 17:06:08 +02:00
Tschipp
9a38b115b7 Merge branch 'master' into 1.10 2017-09-17 22:44:37 +02:00
Tschipp
28b7fdc124 Merge branch 'master' into 1.10 2017-09-04 18:30:20 +02:00
Tschipp
a757659d68 Oops 2017-09-03 18:18:14 +02:00
Tschipp
295310b603 Merge branch 'master' into 1.10 2017-09-03 18:11:32 +02:00
Tschipp
780faaeca3 Merge branch 'master' into 1.10 2017-08-27 22:35:22 +02:00
Tschipp
a1c4313e50 fixed a bug 2017-08-27 22:23:02 +02:00
Tschipp
07b882da12 build.gradle 2017-08-20 00:27:12 +02:00
Tschipp
20294c004d Update to 1.2 2017-08-20 00:26:58 +02:00
Tschipp
0bad034983 Fix 1.10 2017-08-15 14:42:58 +02:00
Tschipp
d5ff19cdc2 Merge branch 'master' into 1.10 2017-08-15 14:35:52 +02:00
Tschipp
1036890e39 Merge branch 'master' into 1.10 2017-08-14 23:06:33 +02:00
Tschipp
95b56d78a8 Merge branch 'master' into 1.10 2017-08-14 15:00:26 +02:00
Tschipp
f60ee55fbe Downdate to 1.10 2017-08-14 11:08:00 +02:00
26 changed files with 233 additions and 419 deletions

View File

@ -24,16 +24,14 @@ compileJava {
}
minecraft {
version = "1.11.2-13.20.1.2386"
version = "1.10.2-12.18.3.2185"
runDir = "run"
mappings = "snapshot_20161220"
mappings = "snapshot_20161111"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}
repositories {
maven { url 'http://maven.epoxide.org' }
ivy {
name "LatMod"
@ -45,7 +43,6 @@ repositories {
dependencies {
deobfCompile "net.darkhax.gamestages:GameStages-1.11.2:1.0.11"
deobfCompile "LatMod:FTBUtilities:1.1x-3.6.5"
deobfCompile "LatMod:FTBLib:1.1x-3.6.5"

View File

@ -23,7 +23,7 @@ import tschipp.carryon.common.command.CommandCarryOn;
import tschipp.carryon.common.command.CommandCarryOnReload;
@EventBusSubscriber
@Mod(modid = CarryOn.MODID, name = CarryOn.NAME, version = CarryOn.VERSION, guiFactory = "tschipp.carryon.client.gui.GuiFactoryCarryOn", dependencies = "required-after:forge@[13.20.1.2386,)", updateJSON = CarryOn.UPDATE_JSON, acceptedMinecraftVersions = CarryOn.ACCEPTED_VERSIONS)
@Mod(modid = CarryOn.MODID, name = CarryOn.NAME, version = CarryOn.VERSION, guiFactory = "tschipp.carryon.client.gui.GuiFactoryCarryOn", updateJSON = CarryOn.UPDATE_JSON, acceptedMinecraftVersions = CarryOn.ACCEPTED_VERSIONS)
public class CarryOn {
@SidedProxy(clientSide = "tschipp.carryon.client.ClientProxy", serverSide = "tschipp.carryon.common.CommonProxy")
@ -36,7 +36,7 @@ public class CarryOn {
public static final String MODID = "carryon";
public static final String VERSION = "1.9.1";
public static final String NAME = "Carry On";
public static final String ACCEPTED_VERSIONS = "[1.11,1.12)";
public static final String ACCEPTED_VERSIONS = "[1.10,1.11)";
public static final String UPDATE_JSON = "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/";
public static final Logger LOGGER = LogManager.getFormatterLogger("CarryOn");
public static File CONFIGURATION_FILE;

View File

@ -4,8 +4,10 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.model.ModelPlayer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
@ -49,9 +51,8 @@ public class RenderEntityEvents
{
if (event.getDwheel() > 0 || event.getDwheel() < 0 || Minecraft.getMinecraft().gameSettings.keyBindPickBlock.isPressed())
{
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity)
ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemEntity))
{
if (ItemEntity.hasEntityData(stack))
{
@ -71,15 +72,13 @@ public class RenderEntityEvents
if (event.getGui() != null)
{
boolean inventory = event.getGui() instanceof GuiContainer;
EntityPlayer player = Minecraft.getMinecraft().player;
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (player != null && inventory)
{
ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
if (inventory && (stack != null ? stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack) : false))
{
Minecraft.getMinecraft().player.closeScreen();
Minecraft.getMinecraft().thePlayer.closeScreen();
Minecraft.getMinecraft().currentScreen = null;
Minecraft.getMinecraft().setIngameFocus();
@ -98,10 +97,9 @@ public class RenderEntityEvents
GameSettings settings = Minecraft.getMinecraft().gameSettings;
Field field = KeyBinding.class.getDeclaredFields()[7];
field.setAccessible(true);
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand();
EntityPlayer player = Minecraft.getMinecraft().player;
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (stack != null ? (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) : false)
{
if (settings.keyBindDrop.isPressed())
{
@ -135,13 +133,15 @@ public class RenderEntityEvents
@SubscribeEvent
public void renderHand(RenderHandEvent event)
{
World world = Minecraft.getMinecraft().world;
EntityPlayer player = Minecraft.getMinecraft().player;
World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand();
int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView;
float partialticks = event.getPartialTicks();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
if (stack != null ? (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) : false)
{
if(Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr"))
return;
@ -182,7 +182,7 @@ public class RenderEntityEvents
String entityname = carryOverride.getRenderNameEntity();
if (entityname != null)
{
Entity newEntity = EntityList.createEntityByIDFromName(new ResourceLocation(entityname), world);
Entity newEntity = EntityList.createEntityByName(entityname, world);
if (newEntity != null)
{
NBTTagCompound nbttag = carryOverride.getRenderNBT();
@ -237,7 +237,7 @@ public class RenderEntityEvents
}
float f = entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw);
int i = this.getBrightnessForRender(entity, Minecraft.getMinecraft().player);
int i = this.getBrightnessForRender(entity, Minecraft.getMinecraft().thePlayer);
if (entity.isBurning())
{
@ -260,12 +260,12 @@ public class RenderEntityEvents
@SideOnly(Side.CLIENT)
private int getBrightnessForRender(Entity entity, EntityPlayer player)
{
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor(player.posX), 0, MathHelper.floor(player.posZ));
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor_double(player.posX), 0, MathHelper.floor_double(player.posZ));
if (entity.world.isBlockLoaded(blockpos$mutableblockpos))
if (entity.worldObj.isBlockLoaded(blockpos$mutableblockpos))
{
blockpos$mutableblockpos.setY(MathHelper.floor(player.posY + entity.getEyeHeight()));
return entity.world.getCombinedLight(blockpos$mutableblockpos, 0);
blockpos$mutableblockpos.setY(MathHelper.floor_double(player.posY + entity.getEyeHeight()));
return entity.worldObj.getCombinedLight(blockpos$mutableblockpos, 0);
}
else
{
@ -297,14 +297,13 @@ public class RenderEntityEvents
@SubscribeEvent
public void onPlayerRenderPost(RenderPlayerEvent.Post event)
{
World world = Minecraft.getMinecraft().world;
World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = event.getEntityPlayer();
event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player;
ModelPlayer modelPlayer = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().thePlayer;
ItemStack stack = player.getHeldItemMainhand();
float partialticks = event.getPartialRenderTick();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
if (stack != null ? stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack) : false)
{
Entity entity = ItemEntity.getEntity(stack, world);
float rotation = -(player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * partialticks);
@ -357,7 +356,7 @@ public class RenderEntityEvents
String entityname = carryOverride.getRenderNameEntity();
if (entityname != null)
{
Entity newEntity = EntityList.createEntityByIDFromName(new ResourceLocation(entityname), world);
Entity newEntity = EntityList.createEntityByName(entityname, world);
if (newEntity != null)
{
NBTTagCompound nbttag = carryOverride.getRenderNBT();

View File

@ -71,9 +71,8 @@ public class RenderEvents
{
if (event.getDwheel() > 0 || event.getDwheel() < 0 || Minecraft.getMinecraft().gameSettings.keyBindPickBlock.isPressed())
{
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile)
ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
if (stack == null ? false : stack.getItem() == RegistrationHandler.itemTile)
{
if (ItemTile.hasTileData(stack))
{
@ -117,15 +116,13 @@ public class RenderEvents
if (event.getGui() != null)
{
boolean inventory = event.getGui() instanceof GuiContainer;
EntityPlayer player = Minecraft.getMinecraft().player;
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (player != null && inventory)
{
ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
if (inventory && (stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false))
{
Minecraft.getMinecraft().player.closeScreen();
Minecraft.getMinecraft().thePlayer.closeScreen();
Minecraft.getMinecraft().currentScreen = null;
Minecraft.getMinecraft().setIngameFocus();
@ -144,10 +141,9 @@ public class RenderEvents
GameSettings settings = Minecraft.getMinecraft().gameSettings;
Field field = KeyBinding.class.getDeclaredFields()[7];
field.setAccessible(true);
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand();
EntityPlayer player = Minecraft.getMinecraft().player;
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
if (stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false)
{
if (settings.keyBindDrop.isPressed())
{
@ -181,14 +177,14 @@ public class RenderEvents
@SubscribeEvent
public void renderHand(RenderHandEvent event)
{
World world = Minecraft.getMinecraft().world;
EntityPlayer player = Minecraft.getMinecraft().player;
World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand();
int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView;
boolean f1 = Minecraft.getMinecraft().gameSettings.hideGUI;
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) && perspective == 0 && !f1)
if ((stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false) && !f1 && perspective == 0)
{
if (Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr"))
return;
@ -236,12 +232,12 @@ public class RenderEvents
}
int i = this.getBrightnessForRender(Minecraft.getMinecraft().player);
int j = i % 65536;
int k = i / 65536;
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, j, k);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.setLightmapDisabled(false);
int i = this.getBrightnessForRender(Minecraft.getMinecraft().thePlayer);
int j = i % 65536;
int k = i / 65536;
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, j, k);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.setLightmapDisabled(false);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
@ -256,12 +252,12 @@ public class RenderEvents
}
else
{
Minecraft.getMinecraft().getRenderItem().renderItem(tileStack.isEmpty() ? stack : tileStack, model);
Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model);
}
}
else
{
Minecraft.getMinecraft().getRenderItem().renderItem(tileStack.isEmpty() ? stack : tileStack, model);
Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model);
}
this.setLightmapDisabled(true);
@ -277,7 +273,7 @@ public class RenderEvents
}
else
{
if (stack.isEmpty() ? true : stack.getItem() != RegistrationHandler.itemEntity)
if (stack == null ? true : stack.getItem() != RegistrationHandler.itemEntity)
{
event.setCanceled(false);
Minecraft mc = Minecraft.getMinecraft();
@ -302,12 +298,12 @@ public class RenderEvents
@SideOnly(Side.CLIENT)
private int getBrightnessForRender(EntityPlayer player)
{
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor(player.posX), 0, MathHelper.floor(player.posZ));
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor_double(player.posX), 0, MathHelper.floor_double(player.posZ));
if (player.world.isBlockLoaded(blockpos$mutableblockpos))
if (player.worldObj.isBlockLoaded(blockpos$mutableblockpos))
{
blockpos$mutableblockpos.setY(MathHelper.floor(player.posY + player.getEyeHeight()));
return player.world.getCombinedLight(blockpos$mutableblockpos, 0);
blockpos$mutableblockpos.setY(MathHelper.floor_double(player.posY + player.getEyeHeight()));
return player.worldObj.getCombinedLight(blockpos$mutableblockpos, 0);
}
else
{
@ -339,13 +335,13 @@ public class RenderEvents
@SubscribeEvent
public void onPlayerRenderPost(RenderPlayerEvent.Post event)
{
World world = Minecraft.getMinecraft().world;
World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = event.getEntityPlayer();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player;
ModelPlayer modelPlayer = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().thePlayer;
ItemStack stack = player.getHeldItemMainhand();
float partialticks = event.getPartialRenderTick();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
if (stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false)
{
Block block = ItemTile.getBlock(stack);
IBlockState state = ItemTile.getBlockState(stack);
@ -390,7 +386,7 @@ public class RenderEvents
GlStateManager.translate(0, -0.3, 0);
}
IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileItem, world, player);
IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileItem == null ? stack : tileItem, world, player);
CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
if (carryOverride != null)
@ -426,14 +422,13 @@ public class RenderEvents
}
else
{
Minecraft.getMinecraft().getRenderItem().renderItem(tileItem.isEmpty() ? stack : tileItem, model);
Minecraft.getMinecraft().getRenderItem().renderItem(tileItem == null ? stack : tileItem, model);
}
}
else
{
Minecraft.getMinecraft().getRenderItem().renderItem(tileItem.isEmpty() ? stack : tileItem, model);
Minecraft.getMinecraft().getRenderItem().renderItem(tileItem == null ? stack : tileItem, model);
}
GlStateManager.scale(1, 1, 1);
GlStateManager.popMatrix();
}
@ -452,12 +447,14 @@ public class RenderEvents
AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand();
ModelPlayer model = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().thePlayer;
ResourceLocation skinLoc = DefaultPlayerSkin.getDefaultSkin(player.getPersistentID());
if (!initModels)
{
this.fakeLeftArm = new ModelRenderer(model, 32, 48);
this.fakeRightArm = new ModelRenderer(model, 40, 16);
this.fakeLeftArm = new ModelRenderer(model, 32, 48);
this.fakeLeftArmwear = new ModelRenderer(model, 48, 48);
this.fakeRightArmwear = new ModelRenderer(model, 40, 32);
initModels = true;
@ -465,7 +462,7 @@ public class RenderEvents
player.setArrowCountInEntity(0); // TODO Temporary Fix
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
if (stack != null ? ((stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))) : false)
{
CarryOnOverride overrider = ScriptChecker.getOverride(player);
if (overrider != null)
@ -783,7 +780,7 @@ public class RenderEvents
}
}
if (stack.isEmpty() || stack.getItem() != RegistrationHandler.itemTile && stack.getItem() != RegistrationHandler.itemEntity)
if (stack == null || (stack != null && stack.getItem() != RegistrationHandler.itemTile && stack.getItem() != RegistrationHandler.itemEntity))
{
model.bipedLeftArm.isHidden = false;
model.bipedRightArm.isHidden = false;

View File

@ -29,6 +29,7 @@ public class GuiFactoryCarryOn implements IModGuiFactory
}
/*
@Override
public boolean hasConfigGui()
{
@ -40,7 +41,7 @@ public class GuiFactoryCarryOn implements IModGuiFactory
{
return new GuiConfigCarryOn(parentScreen);
}
} */

View File

@ -24,7 +24,7 @@ public class PositionClientEvents
{
if (event.getGui() != null)
{
EntityPlayer player = Minecraft.getMinecraft().player;
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
boolean inventory = event.getGui() instanceof GuiContainer;
if (player != null && inventory)
@ -34,7 +34,7 @@ public class PositionClientEvents
IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY, null);
if(cap.isBlockActivated())
{
World world = player.world;
World world = player.worldObj;
BlockPos pos = cap.getPos();
if(world != null)
{

View File

@ -17,7 +17,6 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
import tschipp.carryon.CarryOn;
import tschipp.carryon.common.handler.CustomPickupOverrideHandler;
import tschipp.carryon.common.handler.ModelOverridesHandler;
import tschipp.carryon.common.handler.RegistrationHandler;
import tschipp.carryon.common.item.ItemEntity;
@ -39,27 +38,29 @@ public class CommandCarryOn extends CommandBase implements ICommand
@Override
public int compareTo(ICommand o)
{
return this.getName().compareTo(o.getName());
return this.getCommandName().compareTo(o.getCommandName());
}
@Override
public String getName()
public String getCommandName()
{
return "carryon";
}
@Override
public String getUsage(ICommandSender sender)
public String getCommandUsage(ICommandSender sender)
{
return "/carryon <mode>";
}
@Override
public List<String> getAliases()
public List<String> getCommandAliases()
{
return this.names;
}
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
@ -80,9 +81,9 @@ public class CommandCarryOn extends CommandBase implements ICommand
CarryOn.network.sendTo(new CarrySlotPacket(9, player.getEntityId()), (EntityPlayerMP) player);
if (cleared != 1)
player.sendMessage(new TextComponentString("Cleared " + cleared + " Items!"));
player.addChatMessage(new TextComponentString("Cleared " + cleared + " Items!"));
else
player.sendMessage(new TextComponentString("Cleared " + cleared + " Item!"));
player.addChatMessage(new TextComponentString("Cleared " + cleared + " Item!"));
}
}
@ -94,58 +95,47 @@ public class CommandCarryOn extends CommandBase implements ICommand
{
EntityPlayer player = (EntityPlayer) sender;
ItemStack main = player.getHeldItemMainhand();
if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemTile)
if (main != null && main.getItem() == RegistrationHandler.itemTile)
{
player.sendMessage(new TextComponentString("Block: " + ItemTile.getBlock(main)));
player.sendMessage(new TextComponentString("BlockState: " + ItemTile.getBlockState(main)));
player.sendMessage(new TextComponentString("Meta: " + ItemTile.getMeta(main)));
player.sendMessage(new TextComponentString("ItemStack: " + ItemTile.getItemStack(main)));
player.addChatMessage(new TextComponentString("Block: " + ItemTile.getBlock(main)));
player.addChatMessage(new TextComponentString("BlockState: " + ItemTile.getBlockState(main)));
player.addChatMessage(new TextComponentString("Meta: " + ItemTile.getMeta(main)));
player.addChatMessage(new TextComponentString("ItemStack: " + ItemTile.getItemStack(main)));
if(ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(main), ItemTile.getTileData(main)))
player.sendMessage(new TextComponentString("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main))));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemTile.getBlockState(main)))
player.sendMessage(new TextComponentString("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemTile.getBlockState(main))));
player.addChatMessage(new TextComponentString("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main))));
CarryOn.LOGGER.info("Block: " + ItemTile.getBlock(main));
CarryOn.LOGGER.info("BlockState: " + ItemTile.getBlockState(main));
CarryOn.LOGGER.info("Meta: " + ItemTile.getMeta(main));
CarryOn.LOGGER.info("ItemStack: " + ItemTile.getItemStack(main));
if(ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(main), ItemTile.getTileData(main)))
CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main)));
CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main)));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemTile.getBlockState(main)))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemTile.getBlockState(main)));
}
else if(!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity)
else if(main != null && main.getItem() == RegistrationHandler.itemEntity)
{
player.sendMessage(new TextComponentString("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld())));
player.sendMessage(new TextComponentString("Entity Name: " + ItemEntity.getEntityName(main)));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemEntity.getEntity(main, server.getEntityWorld())))
player.sendMessage(new TextComponentString("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemEntity.getEntity(main, server.getEntityWorld()))));
player.addChatMessage(new TextComponentString("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld())));
player.addChatMessage(new TextComponentString("Entity Name: " + ItemEntity.getEntityName(main)));
CarryOn.LOGGER.info("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld()));
CarryOn.LOGGER.info("Entity Name: " + ItemEntity.getEntityName(main));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemEntity.getEntity(main, server.getEntityWorld())))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemEntity.getEntity(main, server.getEntityWorld())));
}
}
}
else
{
throw new WrongUsageException(this.getUsage(sender));
throw new WrongUsageException(this.getCommandUsage(sender));
}
}
else
{
throw new WrongUsageException(this.getUsage(sender));
throw new WrongUsageException(this.getCommandUsage(sender));
}
}
@ -156,8 +146,9 @@ public class CommandCarryOn extends CommandBase implements ICommand
return true;
}
@Override
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos)
public List<String> getTabCompletionOptions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos)
{
if (args.length > 0)
@ -191,4 +182,6 @@ public class CommandCarryOn extends CommandBase implements ICommand
return 2;
}
}

View File

@ -24,18 +24,18 @@ public class CommandCarryOnReload extends CommandBase
if (CarryOnConfig.settings.useScripts)
{
ScriptReader.reloadScripts();
sender.addChatMessage(new TextComponentString("Successfully reloaded scripts!"));
CarryOn.network.sendToAll(new ScriptReloadPacket());
sender.sendMessage(new TextComponentString("Successfully reloaded scripts!"));
}
else
sender.sendMessage(new TextComponentString("To use custom Carry On scripts, enable them in the config!"));
sender.addChatMessage(new TextComponentString("To use custom Carry On scripts, enable them in the config!"));
}
@Override
public boolean checkPermission(MinecraftServer server, ICommandSender sender)
{
return sender.canUseCommand(this.getRequiredPermissionLevel(), this.getName());
return sender.canCommandSenderUseCommand(this.getRequiredPermissionLevel(), this.getCommandName());
}
@Override
@ -45,7 +45,7 @@ public class CommandCarryOnReload extends CommandBase
}
@Override
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos)
public List<String> getTabCompletionOptions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos)
{
if (args.length > 0)
@ -65,16 +65,18 @@ public class CommandCarryOnReload extends CommandBase
return Collections.<String>emptyList();
}
@Override
public String getName()
public String getCommandName()
{
return "reloadscripts";
}
@Override
public String getUsage(ICommandSender sender)
public String getCommandUsage(ICommandSender sender)
{
return "/reloadscripts";
}
}

View File

@ -34,10 +34,6 @@ public class CarryOnConfig {
@Config.LangKey(CarryOn.MODID)
@Config.Comment("Model Overrides based on NBT or on Meta. Advanced Users Only!")
public static Configs.ModelOverrides modelOverrides = new Configs.ModelOverrides();
@Config.LangKey(CarryOn.MODID)
@Config.Comment("Custom Pickup Conditions for certain blocks. ONLY WORKS WHEN GAMESTAGES IS INSTALLED! Advanced Users Only!")
public static Configs.CustomPickupConditions customPickupConditions = new Configs.CustomPickupConditions();
@Mod.EventBusSubscriber
public static class EventHandler {

View File

@ -61,8 +61,7 @@ public class Configs {
@Comment("Whether the player drops the carried object when hit or not")
public boolean dropCarriedWhenHit=false;
@Config.RequiresMcRestart()
@Comment("Use custom Pickup Scripts. Having this set to false, will not allow you to run scripts, but will increase your performance")
@Comment("Use custom Pickup Scripts. Having this set to false, will not allow you to run scripts, but will save you some performance")
public boolean useScripts=false;
@Comment("Allows entities to be stacked using Carry On")
@ -78,13 +77,11 @@ public class Configs {
public static class WhiteList
{
@Config.RequiresMcRestart()
@Comment("Entities that CAN be picked up")
public String[] allowedEntities=new String[]
{
};
@Config.RequiresMcRestart()
@Comment("Blocks that CAN be picked up")
public String[] allowedBlocks=new String[]
{
@ -93,7 +90,6 @@ public class Configs {
public static class Blacklist
{
@Config.RequiresMcRestart()
@Comment("Tile Entities that cannot be picked up")
public String[] forbiddenTiles = new String[]
{
@ -146,19 +142,18 @@ public class Configs {
"minecolonies:*",
};
@Config.RequiresMcRestart()
@Comment("Entities that cannot be picked up")
public String[] forbiddenEntities = new String[]
{
"minecraft:ender_crystal",
"minecraft:ender_dragon",
"minecraft:ghast",
"minecraft:shulker",
"minecraft:leash_knot",
"minecraft:armor_stand",
"minecraft:item_frame",
"minecraft:painting",
"minecraft:shulker_bullet",
"EnderCrystal",
"EnderDragon",
"Ghast",
"Shulker",
"LeashKnot",
"ArmorStand",
"ItemFrame",
"Painting",
"ShulkerBullet",
"animania:textures/entity/pigs/hamster_tarou.png",
"animania:hamster",
"animania:ferret*",
@ -171,7 +166,6 @@ public class Configs {
public static class ModelOverrides
{
@Config.RequiresMcRestart()
@Comment("Model Overrides based on NBT or on Meta. Advanced Users Only!")
public String[] modelOverrides = new String[]
{
@ -240,23 +234,5 @@ public class Configs {
};
}
public static class CustomPickupConditions
{
@Config.RequiresMcRestart()
@Comment("Custom Pickup Conditions for Blocks")
public String[] customPickupConditionsBlocks = new String[]
{
};
@Config.RequiresMcRestart()
@Comment("Custom Pickup Conditions for Entities")
public String[] customPickupConditionsEntities = new String[]
{
};
}
}

View File

@ -48,7 +48,7 @@ public class ItemEntityEvents
{
EntityPlayer player = event.getEntityPlayer();
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)))
{
player.getEntityData().removeTag("carrySlot");
event.setUseBlock(Result.DENY);
@ -71,10 +71,10 @@ public class ItemEntityEvents
BlockPos pos = eitem.getPosition();
Entity entity = ItemEntity.getEntity(stack, world);
entity.setPosition(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5);
world.spawnEntity(entity);
world.spawnEntityInWorld(entity);
ItemEntity.clearEntityData(stack);
eitem.setEntityItemStack(ItemStack.EMPTY);
eitem.setEntityItemStack(null);
}
}
}
@ -92,7 +92,7 @@ public class ItemEntityEvents
Entity entity = event.getTarget();
BlockPos pos = entity.getPosition();
if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player))
if (main == null && off == null && CarryOnKeybinds.isKeyPressed(player))
{
ItemStack stack = new ItemStack(RegistrationHandler.itemEntity);
@ -128,7 +128,7 @@ public class ItemEntityEvents
}
}
else if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main) && !CarryOnKeybinds.isKeyPressed(player) && CarryOnConfig.settings.stackableEntities)
else if (main != null && main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main) && !CarryOnKeybinds.isKeyPressed(player) && CarryOnConfig.settings.stackableEntities)
{
Entity entityHeld = ItemEntity.getEntity(main, world);
@ -161,20 +161,20 @@ public class ItemEntityEvents
double tempY = entity.posY;
double tempZ = entity.posZ;
entityHeld.setPosition(tempX, tempY + 2.6, tempZ);
world.spawnEntity(entityHeld);
world.spawnEntityInWorld(entityHeld);
entityHeld.startRiding(topEntity, false);
entityHeld.setPositionAndUpdate(tempX, tempY, tempZ);
}
else
{
entityHeld.setPosition(entity.posX, entity.posY, entity.posZ);
world.spawnEntity(entityHeld);
world.spawnEntityInWorld(entityHeld);
entityHeld.startRiding(topEntity, false);
}
ItemEntity.clearEntityData(main);
player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY);
player.setHeldItem(EnumHand.MAIN_HAND, null);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
event.setCanceled(true);
world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_HORSE_SADDLE, SoundCategory.PLAYERS, 0.5F, 1.5F);
@ -235,9 +235,9 @@ public class ItemEntityEvents
public void onLivingUpdate(LivingUpdateEvent event)
{
EntityLivingBase entity = event.getEntityLiving();
World world = entity.world;
World world = entity.worldObj;
ItemStack main = entity.getHeldItemMainhand();
if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main))
if (main != null ? (main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main)) : false)
{
BlockPos pos = entity.getPosition();
BlockPos below = pos.offset(EnumFacing.DOWN);

View File

@ -55,7 +55,7 @@ public class ItemEvents
{
EntityPlayer player = event.getEntityPlayer();
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)))
{
player.getEntityData().removeTag("carrySlot");
event.setUseBlock(Result.DENY);
@ -98,7 +98,7 @@ public class ItemEvents
tile.setPos(finalPos);
}
ItemTile.clearTileData(stack);
eitem.setEntityItemStack(ItemStack.EMPTY);
eitem.setEntityItemStack(null);
}
}
@ -113,7 +113,7 @@ public class ItemEvents
World world = player.getEntityWorld();
ItemStack carried = player.getHeldItemMainhand();
if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity)
if (carried == null ? false : (carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity))
{
if (carried.getItem() == RegistrationHandler.itemTile)
{
@ -148,7 +148,7 @@ public class ItemEvents
World world = player.getEntityWorld();
ItemStack carried = player.getHeldItemMainhand();
if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity)
if (carried == null ? false : (carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity))
{
if (carried.getItem() == RegistrationHandler.itemTile)
{
@ -178,8 +178,8 @@ public class ItemEvents
if (player != null && !CarryOnConfig.settings.hitWhileCarrying)
{
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setNewSpeed(0);
if(stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setNewSpeed(0);
}
}
@ -188,7 +188,7 @@ public class ItemEvents
{
EntityPlayer player = event.getEntityPlayer();
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && !CarryOnConfig.settings.hitWhileCarrying && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
if (!CarryOnConfig.settings.hitWhileCarrying && stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{
event.setCanceled(true);
}
@ -201,7 +201,7 @@ public class ItemEvents
if (player != null && !CarryOnConfig.settings.hitWhileCarrying)
{
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setCanceled(true);
}
}
@ -215,14 +215,14 @@ public class ItemEvents
{
EntityPlayer player = (EntityPlayer) eliving;
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{
if (!player.world.isRemote)
if (!player.worldObj.isRemote)
{
player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY);
EntityItem item = new EntityItem(player.world, player.posX, player.posY, player.posZ, stack);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(player.world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
player.world.spawnEntity(item);
player.setHeldItem(EnumHand.MAIN_HAND, null);
EntityItem item = new EntityItem(player.worldObj, player.posX, player.posY, player.posZ, stack);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(player.worldObj.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
player.worldObj.spawnEntityInWorld(item);
}
}
@ -244,7 +244,7 @@ public class ItemEvents
Block block = world.getBlockState(pos).getBlock();
IBlockState state = world.getBlockState(pos);
if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player))
if (main == null && off == null && CarryOnKeybinds.isKeyPressed(player))
{
ItemStack stack = new ItemStack(RegistrationHandler.itemTile);
@ -288,10 +288,10 @@ public class ItemEvents
if (!tag.hasNoTags())
TileEntity.create(world, tag);
player.sendMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot pick up block."));
player.addChatMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot pick up block."));
TextComponentString s = new TextComponentString(TextFormatting.GOLD + "here");
s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues"));
player.sendMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s));
player.addChatMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s));
}
}
@ -351,7 +351,7 @@ public class ItemEvents
EntityPlayer original = event.getOriginal();
EntityPlayer player = event.getEntityPlayer();
boolean wasDead = event.isWasDeath();
GameRules rules = player.world.getGameRules();
GameRules rules = player.worldObj.getGameRules();
boolean keepInv = rules.getBoolean("keepInventory");
boolean wasCarrying = player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemEntity));
@ -360,15 +360,15 @@ public class ItemEvents
int carrySlot = original.inventory.currentItem;
ItemStack stack = player.inventory.removeStackFromSlot(carrySlot);
World world = player.world;
World world = player.worldObj;
EntityItem item = new EntityItem(world);
item.setEntityItemStack(stack);
BlockPos pos = original.getBedLocation();
if (pos == null)
pos = player.getPosition();
item.setPosition(pos.getX(), pos.getY(), pos.getZ());
world.spawnEntity(item);
world.spawnEntityInWorld(item);
}
}

View File

@ -1,125 +0,0 @@
package tschipp.carryon.common.handler;
import java.util.HashMap;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import net.minecraftforge.fml.common.Loader;
import tschipp.carryon.common.config.CarryOnConfig;
import tschipp.carryon.common.helper.InvalidConfigException;
public class CustomPickupOverrideHandler
{
public static HashMap<String, String> PICKUP_CONDITIONS = new HashMap<String, String>();
public static HashMap<String, String> PICKUP_CONDITIONS_ENTITIES = new HashMap<String, String>();
public static void initPickupOverrides()
{
if (Loader.isModLoaded("gamestages"))
{
String[] conditions = CarryOnConfig.customPickupConditions.customPickupConditionsBlocks;
for (int i = 0; i < conditions.length; i++)
{
String line = conditions[i];
if (!line.contains("(") || !line.contains(")"))
new InvalidConfigException("Invalid Condition at line " + i + ": " + line).printException();
String condition = line.substring(line.indexOf("("));
String blockname = line.replace(condition, "");
condition = condition.replace("(", "");
condition = condition.replace(")", "");
if (blockname.contains("*"))
{
String modid = blockname.replace("*", "");
for (int k = 0; k < Block.REGISTRY.getKeys().size(); k++)
{
if (Block.REGISTRY.getKeys().toArray()[k].toString().contains(modid))
{
PICKUP_CONDITIONS.put(Block.REGISTRY.getKeys().toArray()[k].toString() + ";any", condition);
}
}
}
else
{
if (!blockname.contains(";"))
blockname = blockname + ";any";
PICKUP_CONDITIONS.put(blockname, condition);
}
}
String[] entityConditions = CarryOnConfig.customPickupConditions.customPickupConditionsEntities;
for (int i = 0; i < entityConditions.length; i++)
{
String line = entityConditions[i];
if (!line.contains("(") || !line.contains(")"))
new InvalidConfigException("Invalid Condition at line " + i + ": " + line).printException();
String condition = line.substring(line.indexOf("("));
String entityname = line.replace(condition, "");
condition = condition.replace("(", "");
condition = condition.replace(")", "");
PICKUP_CONDITIONS_ENTITIES.put(entityname, condition);
}
}
}
public static boolean hasSpecialPickupConditions(IBlockState state)
{
if (!Loader.isModLoaded("gamestages"))
return false;
String block = state.getBlock().getRegistryName().toString();
String meta = "" + state.getBlock().getMetaFromState(state);
boolean absolute = PICKUP_CONDITIONS.containsKey(block + ";" + meta);
boolean any = PICKUP_CONDITIONS.containsKey(block + ";any");
return absolute || any;
}
public static String getPickupCondition(IBlockState state)
{
String block = state.getBlock().getRegistryName().toString();
String meta = "" + state.getBlock().getMetaFromState(state);
String absolute = PICKUP_CONDITIONS.get(block + ";" + meta);
String any = PICKUP_CONDITIONS.get(block + ";any");
if (absolute != null)
return absolute;
else
return any;
}
public static boolean hasSpecialPickupConditions(Entity entity)
{
if (!Loader.isModLoaded("gamestages"))
return false;
String entityname = EntityList.getKey(entity).toString();
boolean condition = PICKUP_CONDITIONS_ENTITIES.containsKey(entityname);
return condition;
}
public static String getPickupCondition(Entity entity)
{
String entityname = EntityList.getKey(entity).toString();
String condition = PICKUP_CONDITIONS_ENTITIES.get(entityname);
return condition;
}
}

View File

@ -39,9 +39,9 @@ public class ListHandler
public static boolean isForbidden(Entity entity)
{
if (EntityList.getKey(entity) != null)
if (EntityList.getEntityString(entity) != null)
{
String name = EntityList.getKey(entity).toString();
String name = EntityList.getEntityString(entity);
boolean contains = FORBIDDEN_ENTITIES.contains(name);
return contains;
}
@ -50,9 +50,9 @@ public class ListHandler
public static boolean isAllowed(Entity entity)
{
if (EntityList.getKey(entity) != null)
if (EntityList.getEntityString(entity) != null)
{
String name = EntityList.getKey(entity).toString();
String name = EntityList.getEntityString(entity).toString();
boolean contains = ALLOWED_ENTITIES.contains(name);
return contains;
}
@ -98,11 +98,11 @@ public class ListHandler
if (forbiddenEntity[i].contains("*"))
{
String modid = forbiddenEntity[i].replace("*", "");
for (int k = 0; k < ForgeRegistries.ENTITIES.getKeys().size(); k++)
for (int k = 0; k < EntityList.getEntityNameList().size(); k++)
{
if (ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString().contains(modid))
if (EntityList.getEntityNameList().get(k).contains(modid))
{
FORBIDDEN_ENTITIES.add(ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString());
FORBIDDEN_ENTITIES.add(EntityList.getEntityNameList().get(k));
}
}
}
@ -115,13 +115,13 @@ public class ListHandler
{
if (allowedEntities[i].contains("*"))
{
String modid = allowedEntities[i].replace("*", "");
for (int k = 0; k < ForgeRegistries.ENTITIES.getKeys().size(); k++)
String modid=allowedEntities[i].replace("*", "");
for (int k = 0; k < EntityList.getEntityNameList().size(); k++)
{
if (ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString().contains(modid))
{
ALLOWED_ENTITIES.add(ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString());
}
if (EntityList.getEntityNameList().get(k).contains(modid))
ALLOWED_ENTITIES.add(EntityList.getEntityNameList().get(k));
}
}
ALLOWED_ENTITIES.add(allowedEntities[i]);

View File

@ -118,9 +118,8 @@ public class ModelOverridesHandler
if (override.contains(":"))
modidOverride = override.replace(override.substring(override.indexOf(":")), "");
if (Loader.isModLoaded(modidOverride) && Loader.isModLoaded(modidToOverride) && !errored)
if (!errored && (Loader.isModLoaded(modidOverride) && Loader.isModLoaded(modidToOverride)) || (modidOverride.equals("minecraft") && modidToOverride.equals("minecraft")))
{
int meta = StringParser.getMeta(toOverride);
if (meta == 0)
toOverrideObject = StringParser.getBlock(toOverride);

View File

@ -4,8 +4,6 @@ import java.util.UUID;
import javax.annotation.Nullable;
import net.darkhax.gamestages.capabilities.PlayerDataHandler;
import net.darkhax.gamestages.capabilities.PlayerDataHandler.IStageData;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
@ -73,18 +71,8 @@ public class PickupHandler
if (!ItemTile.isLocked(pos, world))
{
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(state))
if (CarryOnConfig.settings.pickupAllBlocks ? true : tile != null)
{
IStageData stageData = PlayerDataHandler.getStageData(player);
String condition = CustomPickupOverrideHandler.getPickupCondition(state);
if (stageData.hasUnlockedStage(condition))
return true && handleProtections((EntityPlayerMP) player, world, pos, state);
}
else if (CarryOnConfig.settings.pickupAllBlocks ? true : tile != null)
{
return true && handleProtections((EntityPlayerMP) player, world, pos, state);
}
@ -128,14 +116,6 @@ public class PickupHandler
return false;
}
}
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(toPickUp))
{
IStageData stageData = PlayerDataHandler.getStageData(player);
String condition = CustomPickupOverrideHandler.getPickupCondition(toPickUp);
if (stageData.hasUnlockedStage(condition))
return true && handleProtections((EntityPlayerMP) player, toPickUp);
}
else
return true && handleProtections((EntityPlayerMP) player, toPickUp);
}
@ -173,16 +153,7 @@ public class PickupHandler
if (owner != null && !owner.equals(playerID))
return false;
}
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(toPickUp))
{
IStageData stageData = PlayerDataHandler.getStageData(player);
String condition = CustomPickupOverrideHandler.getPickupCondition(toPickUp);
if (stageData.hasUnlockedStage(condition))
return true && handleProtections((EntityPlayerMP) player, toPickUp);
}
else
return true && handleProtections((EntityPlayerMP) player, toPickUp);
return true && handleProtections((EntityPlayerMP) player, toPickUp);
}
}
}
@ -200,12 +171,12 @@ public class PickupHandler
BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, pos, state, player);
MinecraftForge.EVENT_BUS.post(event);
if(event.isCanceled())
if (event.isCanceled())
breakable = false;
return breakable;
}
private static boolean handleProtections(EntityPlayerMP player, Entity entity)
{
boolean canPickup = true;
@ -213,9 +184,9 @@ public class PickupHandler
AttackEntityEvent event = new AttackEntityEvent(player, entity);
MinecraftForge.EVENT_BUS.post(event);
if(event.isCanceled())
if (event.isCanceled())
canPickup = false;
return canPickup;
}

View File

@ -52,7 +52,6 @@ public class RegistrationHandler
public static void regOverrideList()
{
ModelOverridesHandler.initOverrides();
CustomPickupOverrideHandler.initPickupOverrides();
ListHandler.initForbiddenTiles();
}

View File

@ -114,7 +114,7 @@ public class StringParser
Item item = getItem(string);
if(item == null)
return ItemStack.EMPTY;
return null;
ItemStack stack = new ItemStack(item, 1, getMeta(string));
NBTTagCompound tag = getTagCompound(string);

View File

@ -44,7 +44,7 @@ public class ItemEntity extends Item
{
if (hasEntityData(stack))
{
return I18n.translateToLocal("entity."+EntityList.getTranslationName(new ResourceLocation(getEntityName(stack))) + ".name");
return I18n.translateToLocal(getEntityName(stack));
}
return "";
@ -60,18 +60,18 @@ public class ItemEntity extends Item
return false;
}
public static boolean storeEntityData(@Nonnull Entity entity, World world, ItemStack stack)
public static boolean storeEntityData(@Nonnull Entity entity, World world, @Nonnull ItemStack stack)
{
if (entity == null)
return false;
if (stack.isEmpty())
if (stack == null)
return false;
NBTTagCompound entityData = new NBTTagCompound();
entityData = entity.writeToNBT(entityData);
String name = EntityList.getKey(entity).toString();
String name = EntityList.getEntityString(entity);
NBTTagCompound tag = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound();
if (tag.hasKey(ENTITY_DATA_KEY))
@ -84,9 +84,8 @@ public class ItemEntity extends Item
}
@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{
ItemStack stack = player.getHeldItem(hand);
Block block = world.getBlockState(pos).getBlock();
if (hasEntityData(stack))
@ -104,13 +103,13 @@ public class ItemEntity extends Item
if (!world.isRemote)
{
entity.setPositionAndRotation(finalPos.getX() + 0.5, finalPos.getY(), finalPos.getZ() + 0.5, 180 + player.rotationYawHead, 0.0f);
world.spawnEntity(entity);
world.spawnEntityInWorld(entity);
if (entity instanceof EntityLiving)
{
((EntityLiving) entity).playLivingSound();
}
clearEntityData(stack);
player.setHeldItem(hand, ItemStack.EMPTY);
player.setHeldItem(hand, null);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
}
player.getEntityData().removeTag("overrideKey");
@ -127,7 +126,7 @@ public class ItemEntity extends Item
if (hasEntityData(stack))
{
if(getEntity(stack, world) == null)
stack = ItemStack.EMPTY;
stack = null;
if (entity instanceof EntityLivingBase)
{
@ -140,7 +139,7 @@ public class ItemEntity extends Item
}
else
{
stack = ItemStack.EMPTY;
stack = null;
}
}
@ -172,7 +171,7 @@ public class ItemEntity extends Item
String name = getEntityName(stack);
NBTTagCompound e = getEntityData(stack);
Entity entity = EntityList.createEntityByIDFromName(new ResourceLocation(name), world);
Entity entity = EntityList.createEntityByIDFromName(name, world);
if (entity != null)
entity.readFromNBT(e);

View File

@ -35,7 +35,6 @@ import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraftforge.fml.common.registry.GameRegistry;
import tschipp.carryon.CarryOn;
import tschipp.carryon.common.config.CarryOnConfig;
import tschipp.carryon.common.handler.CustomPickupOverrideHandler;
import tschipp.carryon.common.handler.ModelOverridesHandler;
import tschipp.carryon.network.client.CarrySlotPacket;
@ -55,35 +54,39 @@ public class ItemTile extends Item
@Override
public String getItemStackDisplayName(ItemStack stack)
{
if (hasTileData(stack))
if (stack != null)
{
IBlockState state = getBlockState(stack);
NBTTagCompound nbt = getTileData(stack);
if (ModelOverridesHandler.hasCustomOverrideModel(state, nbt))
if (hasTileData(stack))
{
Object override = ModelOverridesHandler.getOverrideObject(state, nbt);
if (override instanceof ItemStack)
return ((ItemStack) override).getDisplayName();
else
{
IBlockState ostate = (IBlockState) override;
ItemStack itemstack = new ItemStack(ostate.getBlock().getItemDropped(ostate, this.itemRand, 0), 1, state.getBlock().damageDropped(ostate));
return itemstack.getDisplayName();
}
}
NBTTagCompound nbt = getTileData(stack);
IBlockState state = getBlockState(stack);
return getItemStack(stack).getDisplayName();
if (ModelOverridesHandler.hasCustomOverrideModel(state, nbt))
{
Object override = ModelOverridesHandler.getOverrideObject(state, nbt);
if (override instanceof ItemStack)
return ((ItemStack) override).getDisplayName();
else
{
IBlockState ostate = (IBlockState) override;
ItemStack itemstack = new ItemStack(ostate.getBlock().getItemDropped(ostate, this.itemRand, 0), 1, state.getBlock().damageDropped(ostate));
return itemstack.getDisplayName();
}
}
ItemStack istack = getItemStack(stack);
if (istack != null)
return istack.getDisplayName();
}
}
return "";
}
@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{
Block block = world.getBlockState(pos).getBlock();
ItemStack stack = player.getHeldItem(hand);
if (hasTileData(stack))
{
try
@ -105,11 +108,11 @@ public class ItemTile extends Item
if (canPlace)
{
if (player.canPlayerEdit(pos, facing, stack) && world.mayPlace(containedblock, pos2, false, facing, (Entity) null))
if (player.canPlayerEdit(pos, facing, stack) && world.canBlockBePlaced(containedblock, pos2, false, facing, (Entity) null, stack))
{
boolean set = false;
Iterator<IProperty<?>> iterator = containedblock.getDefaultState().getPropertyKeys().iterator();
Iterator<IProperty<?>> iterator = containedblock.getDefaultState().getPropertyNames().iterator();
while (iterator.hasNext())
{
IProperty prop = iterator.next();
@ -140,7 +143,7 @@ public class ItemTile extends Item
}
clearTileData(stack);
player.playSound(containedblock.getSoundType().getPlaceSound(), 1.0f, 0.5f);
player.setHeldItem(hand, ItemStack.EMPTY);
player.setHeldItem(hand, null);
player.getEntityData().removeTag("overrideKey");
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
return EnumActionResult.SUCCESS;
@ -163,13 +166,10 @@ public class ItemTile extends Item
if (ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(stack), ItemTile.getTileData(stack)))
CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(stack), ItemTile.getTileData(stack)));
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemTile.getBlockState(stack)))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemTile.getBlockState(stack)));
player.sendMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"));
player.addChatMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"));
TextComponentString s = new TextComponentString(TextFormatting.GOLD + "here");
s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues"));
player.sendMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s));
player.addChatMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s));
}
}
@ -194,7 +194,7 @@ public class ItemTile extends Item
}
else
{
stack = ItemStack.EMPTY;
stack = null;
}
}
@ -210,7 +210,7 @@ public class ItemTile extends Item
public static boolean storeTileData(@Nullable TileEntity tile, World world, BlockPos pos, IBlockState state, ItemStack stack)
{
if (stack.isEmpty())
if (stack == null)
return false;
NBTTagCompound chest = new NBTTagCompound();
@ -255,6 +255,7 @@ public class ItemTile extends Item
return null;
}
@Nullable
public static Block getBlock(ItemStack stack)
{
if (stack.hasTagCompound())
@ -263,7 +264,7 @@ public class ItemTile extends Item
int id = tag.getInteger("stateid");
return Block.getStateById(id).getBlock();
}
return Blocks.AIR;
return null;
}
public static int getMeta(ItemStack stack)
@ -279,7 +280,21 @@ public class ItemTile extends Item
public static ItemStack getItemStack(ItemStack stack)
{
return new ItemStack(getBlock(stack), 1, getMeta(stack));
Block block = getBlock(stack);
if (block != null)
{
Item item = Item.getItemFromBlock(block);
if (item != null)
{
ItemStack ret = new ItemStack(item, 1, getMeta(stack));
return ret;
}
return null;
}
else
return null;
}
public static IBlockState getBlockState(ItemStack stack)

View File

@ -2,7 +2,6 @@ package tschipp.carryon.common.scripting;
import javax.annotation.Nullable;
import net.darkhax.gamestages.capabilities.PlayerDataHandler;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -14,7 +13,6 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.Loader;
import tschipp.carryon.common.config.CarryOnConfig;
import tschipp.carryon.common.helper.ScriptParseHelper;
@ -51,7 +49,7 @@ public class ScriptChecker
if (!CarryOnConfig.settings.useScripts)
return null;
String name = EntityList.getKey(entity).toString();
String name = EntityList.getEntityString(entity).toString();
float height = entity.height;
float width = entity.width;
float health = entity instanceof EntityLivingBase ? ((EntityLivingBase) entity).getHealth() : 0.0f;
@ -97,13 +95,12 @@ public class ScriptChecker
{
boolean achievement = ScriptParseHelper.getAchievementFromString(override.getConditionAchievement()) == null ? true : player.hasAchievement(ScriptParseHelper.getAchievementFromString(override.getConditionAchievement()));
boolean gamemode = ScriptParseHelper.matches(((EntityPlayerMP) player).interactionManager.getGameType().getID(), override.getConditionGamemode());
boolean gamestage = Loader.isModLoaded("gamestages") ? (override.getConditionGamestage() != null ? PlayerDataHandler.getStageData(player).hasUnlockedStage(override.getConditionGamestage()) : true) : true;
boolean position = ScriptParseHelper.matches(player.getPosition(), override.getConditionPosition());
boolean xp = ScriptParseHelper.matches(player.experienceLevel, override.getConditionXp());
boolean scoreboard = ScriptParseHelper.matchesScore(player, override.getConditionScoreboard());
boolean effects = ScriptParseHelper.hasEffects(player, override.getConditionEffects());
return (achievement && gamemode && gamestage && position && xp && scoreboard && effects);
return (achievement && gamemode && position && xp && scoreboard && effects);
}
@Nullable

View File

@ -115,7 +115,6 @@ public class ScriptReader
if (conditions != null)
{
JsonElement gamestage = conditions.get("gamestage");
JsonElement achievement = conditions.get("achievement");
JsonElement xp = conditions.get("xp");
JsonElement gamemode = conditions.get("gamemode");
@ -123,8 +122,7 @@ public class ScriptReader
JsonElement position = conditions.get("position");
JsonElement effects = conditions.get("effects");
if(gamestage != null)
override.setConditionGamestage(gamestage.getAsString());
if(achievement != null)
override.setConditionAchievement(achievement.getAsString());
if(xp != null)

View File

@ -21,7 +21,7 @@ public class CarrySlotPacketHandler implements IMessageHandler<CarrySlotPacket,
mainThread.addScheduledTask(new Runnable()
{
World world = Minecraft.getMinecraft().world;
World world = Minecraft.getMinecraft().theWorld;
@Override
public void run()

View File

@ -18,7 +18,7 @@ public class ScriptReloadPacketHandler implements IMessageHandler<ScriptReloadPa
mainThread.addScheduledTask(new Runnable()
{
EntityPlayerSP player = Minecraft.getMinecraft().player;
EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
@Override
public void run()

View File

@ -14,7 +14,7 @@ public class SyncKeybindPacketHandler implements IMessageHandler<SyncKeybindPack
@Override
public IMessage onMessage(final SyncKeybindPacket message, final MessageContext ctx)
{
IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.world;
IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj;
mainThread.addScheduledTask(new Runnable()
{

View File

@ -2,13 +2,13 @@
{
"modid" : "carryon",
"name" : "Carry On",
"version" : "1.9.1", "mcversion" : "1.11.2",
"version" : "1.9.1", "mcversion" : "1.10.2",
"url" : "",
"credits" : "Tschipp, Purplicious_Cow, cy4n",
"authorList" : ["Tschipp, Purplicious_Cow, cy4n"],
"description": "Carry On is a simple mod that improves game interaction by allowing players to pick up, carry, and place single block Tile Entities using only their empty hands.",
"logoFile" : "assets/carryon/logo.png",
"updateUrl" : "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/5115328bf7c35d5c5cea64bdb58becd2ca17fcac/update.json",
"updateUrl" : "",
"parent" : "",
"dependencies": [],
"screenshots": []