@@ -28,98 +28,114 @@ public class DupeMod {
2828 */
2929
3030 public static void loadChests () {
31- logDebug ("[DupeMod] Trying to load Chests" );
32- Minecraft mc = Minecraft .getMinecraft ();
33- if (DupeMod .tileentities == null ) return ;
34- for (TileEntity tileentity : DupeMod .tileentities ) {
35- mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).getTileEntity (tileentity .getPos ()).deserializeNBT (((TileEntityChest ) tileentity ).serializeNBT ());
36- logDebug ("[DupeMod] Loaded Chest at " + tileentity .getPos ());
31+ try {
32+ logDebug ("[DupeMod] Trying to load Chests" );
33+ Minecraft mc = Minecraft .getMinecraft ();
34+ if (DupeMod .tileentities == null ) return ;
35+ for (TileEntity tileentity : DupeMod .tileentities ) {
36+ mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).getTileEntity (tileentity .getPos ()).deserializeNBT (((TileEntityChest ) tileentity ).serializeNBT ());
37+ logDebug ("[DupeMod] Loaded Chest at " + tileentity .getPos ());
38+ }
39+ logDebug ("[DupeMod] Chests loaded" );
40+ } catch (Exception e ) {
41+ e .printStackTrace ();
3742 }
38- logDebug ("[DupeMod] Chests loaded" );
3943 }
4044
4145 public static void loadItems () {
42- logDebug ("[DupeMod] Trying to load Items" );
43- Minecraft mc = Minecraft .getMinecraft ();
44-
45- mc .thePlayer .motionX = 0 ;
46- mc .thePlayer .motionY = 0 ;
47- mc .thePlayer .motionZ = 0 ;
48-
49- if (DupeMod .items != null ) {
50- if (!DupeMod .items .isEmpty ()) {
51- mc .displayGuiScreen ((GuiScreen )null );
52- mc .setIngameFocus ();
53- for (Entity entity : new ArrayList <Entity >(mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).loadedEntityList )) {
54- if (entity instanceof EntityItem ) mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).removeEntity (entity );
55- }
56- for (EntityItem item : DupeMod .items ) {
57- WorldServer w = mc .getIntegratedServer ().getPlayerList ().getPlayerList ().get (0 ).getServerWorld ();
58- EntityItem itemDupe = new EntityItem (w , item .posX , item .posY , item .posZ , item .getEntityItem ().copy ());
59- itemDupe .motionX = item .motionX ;
60- itemDupe .motionY = item .motionY ;
61- itemDupe .motionZ = item .motionZ ;
62- itemDupe .setPickupDelay (item .delayBeforeCanPickup );
63- itemDupe .setAgeToCreativeDespawnTime ();
64- itemDupe .setOwner (mc .thePlayer .getName ());
65- itemDupe .setNoPickupDelay ();
66- itemDupe .rotationYaw = item .rotationYaw ;
67- itemDupe .rotationPitch = item .rotationPitch ;
68- w .spawnEntityInWorld (itemDupe );
69- logDebug ("[DupeMod] Loaded Item at " + item .getPosition ());
46+ try {
47+ logDebug ("[DupeMod] Trying to load Items" );
48+ Minecraft mc = Minecraft .getMinecraft ();
49+
50+ mc .thePlayer .motionX = 0 ;
51+ mc .thePlayer .motionY = 0 ;
52+ mc .thePlayer .motionZ = 0 ;
53+
54+ if (DupeMod .items != null ) {
55+ if (!DupeMod .items .isEmpty ()) {
56+ mc .displayGuiScreen ((GuiScreen )null );
57+ mc .setIngameFocus ();
58+ for (Entity entity : new ArrayList <Entity >(mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).loadedEntityList )) {
59+ if (entity instanceof EntityItem ) mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).removeEntity (entity );
60+ }
61+ for (EntityItem item : DupeMod .items ) {
62+ WorldServer w = mc .getIntegratedServer ().getPlayerList ().getPlayerList ().get (0 ).getServerWorld ();
63+ EntityItem itemDupe = new EntityItem (w , item .posX , item .posY , item .posZ , item .getEntityItem ().copy ());
64+ itemDupe .motionX = item .motionX ;
65+ itemDupe .motionY = item .motionY ;
66+ itemDupe .motionZ = item .motionZ ;
67+ itemDupe .setPickupDelay (item .delayBeforeCanPickup );
68+ itemDupe .setAgeToCreativeDespawnTime ();
69+ itemDupe .setOwner (mc .thePlayer .getName ());
70+ itemDupe .setNoPickupDelay ();
71+ itemDupe .rotationYaw = item .rotationYaw ;
72+ itemDupe .rotationPitch = item .rotationPitch ;
73+ w .spawnEntityInWorld (itemDupe );
74+ logDebug ("[DupeMod] Loaded Item at " + item .getPosition ());
75+ }
7076 }
7177 }
78+ logDebug ("[DupeMod] Items loaded" );
79+ } catch (Exception e ) {
80+ e .printStackTrace ();
7281 }
73- logDebug ("[DupeMod] Items loaded" );
7482 }
7583
7684 public static void saveItems () {
77- logDebug ("[DupeMod] Trying to save Items" );
78- Minecraft mc = Minecraft .getMinecraft ();
79- double pX = mc .thePlayer .posX ;
80- double pY = mc .thePlayer .posY ;
81- double pZ = mc .thePlayer .posZ ;
85+ try {
86+ logDebug ("[DupeMod] Trying to save Items" );
87+ Minecraft mc = Minecraft .getMinecraft ();
88+ double pX = mc .thePlayer .posX ;
89+ double pY = mc .thePlayer .posY ;
90+ double pZ = mc .thePlayer .posZ ;
8291
83- mc .thePlayer .motionX = 0 ;
84- mc .thePlayer .motionY = 0 ;
85- mc .thePlayer .motionZ = 0 ;
86-
87- DupeMod .items = new LinkedList <EntityItem >();
88- for (EntityItem item : mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).getEntitiesWithinAABB (EntityItem .class , new AxisAlignedBB (pX - 16 , pY - 16 , pZ - 16 , pX + 16 , pY + 16 , pZ + 16 ))) {
89- EntityItem itemDupe = new EntityItem (item .worldObj , item .posX , item .posY , item .posZ , item .getEntityItem ().copy ());
90- itemDupe .motionX = item .motionX ;
91- itemDupe .setPickupDelay (item .delayBeforeCanPickup );
92- itemDupe .motionY = item .motionY ;
93- itemDupe .motionZ = item .motionZ ;
94- itemDupe .rotationYaw = item .rotationYaw ;
95- itemDupe .rotationPitch = item .rotationPitch ;
96- DupeMod .items .add (itemDupe );
97- logDebug ("[DupeMod] Saved Item at " + item .getPosition ());
92+ mc .thePlayer .motionX = 0 ;
93+ mc .thePlayer .motionY = 0 ;
94+ mc .thePlayer .motionZ = 0 ;
95+
96+ DupeMod .items = new LinkedList <EntityItem >();
97+ for (EntityItem item : mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).getEntitiesWithinAABB (EntityItem .class , new AxisAlignedBB (pX - 16 , pY - 16 , pZ - 16 , pX + 16 , pY + 16 , pZ + 16 ))) {
98+ EntityItem itemDupe = new EntityItem (item .worldObj , item .posX , item .posY , item .posZ , item .getEntityItem ().copy ());
99+ itemDupe .motionX = item .motionX ;
100+ itemDupe .setPickupDelay (item .delayBeforeCanPickup );
101+ itemDupe .motionY = item .motionY ;
102+ itemDupe .motionZ = item .motionZ ;
103+ itemDupe .rotationYaw = item .rotationYaw ;
104+ itemDupe .rotationPitch = item .rotationPitch ;
105+ DupeMod .items .add (itemDupe );
106+ logDebug ("[DupeMod] Saved Item at " + item .getPosition ());
107+ }
108+ logDebug ("[DupeMod] Items saved" );
109+ } catch (Exception e ) {
110+ e .printStackTrace ();
98111 }
99- logDebug ("[DupeMod] Items saved" );
100112 }
101113
102114 public static void saveChests () {
103- logDebug ("[DupeMod] Trying to save Chests" );
104- Minecraft mc = Minecraft .getMinecraft ();
105- WorldServer world = mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension );
106- BlockPos playerPos = mc .thePlayer .getPosition ();
107-
108- DupeMod .tileentities = new LinkedList <TileEntity >();
109- for (int x =- 5 ; x <= 5 ; x ++) {
110- for (int y =- 5 ; y <= 5 ; y ++) {
111- for (int z =- 5 ; z <= 5 ; z ++) {
112- if (mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).getBlockState (playerPos .add (x , y , z )).getBlock () == Blocks .CHEST || world .getBlockState (playerPos .add (x , y , z )).getBlock () == Blocks .TRAPPED_CHEST ) {
113- TileEntityChest foundchest = (TileEntityChest ) world .getTileEntity (playerPos .add (x ,y ,z ));
114- TileEntityChest newchest = new TileEntityChest (((TileEntityChest ) world .getTileEntity (playerPos .add (x ,y ,z ))).getChestType ());
115- newchest .deserializeNBT (foundchest .serializeNBT ());
116- tileentities .add (newchest );
117- logDebug ("[DupeMod] Saved Chest at " + foundchest .getPos ());
115+ try {
116+ logDebug ("[DupeMod] Trying to save Chests" );
117+ Minecraft mc = Minecraft .getMinecraft ();
118+ WorldServer world = mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension );
119+ BlockPos playerPos = mc .thePlayer .getPosition ();
120+
121+ DupeMod .tileentities = new LinkedList <TileEntity >();
122+ for (int x =- 5 ; x <= 5 ; x ++) {
123+ for (int y =- 5 ; y <= 5 ; y ++) {
124+ for (int z =- 5 ; z <= 5 ; z ++) {
125+ if (mc .getIntegratedServer ().worldServerForDimension (mc .thePlayer .dimension ).getBlockState (playerPos .add (x , y , z )).getBlock () == Blocks .CHEST || world .getBlockState (playerPos .add (x , y , z )).getBlock () == Blocks .TRAPPED_CHEST ) {
126+ TileEntityChest foundchest = (TileEntityChest ) world .getTileEntity (playerPos .add (x ,y ,z ));
127+ TileEntityChest newchest = new TileEntityChest (((TileEntityChest ) world .getTileEntity (playerPos .add (x ,y ,z ))).getChestType ());
128+ newchest .deserializeNBT (foundchest .serializeNBT ());
129+ tileentities .add (newchest );
130+ logDebug ("[DupeMod] Saved Chest at " + foundchest .getPos ());
131+ }
118132 }
119133 }
120134 }
135+ logDebug ("[DupeMod] Chests saved" );
136+ } catch (Exception e ) {
137+ e .printStackTrace ();
121138 }
122- logDebug ("[DupeMod] Chests saved" );
123139 }
124140
125141}
0 commit comments