11package org .dave .compactmachines3 .skyworld ;
22
3+ import net .minecraft .entity .item .EntityItem ;
4+ import net .minecraft .item .ItemStack ;
35import net .minecraft .util .math .BlockPos ;
46import net .minecraft .util .text .TextComponentTranslation ;
57import net .minecraft .world .World ;
68import net .minecraft .world .WorldServer ;
79import net .minecraftforge .event .world .BlockEvent ;
810import net .minecraftforge .event .world .WorldEvent ;
911import net .minecraftforge .fml .common .eventhandler .SubscribeEvent ;
12+ import net .minecraftforge .fml .common .gameevent .PlayerEvent ;
1013import net .minecraftforge .fml .common .gameevent .TickEvent ;
14+ import org .dave .compactmachines3 .init .Itemss ;
1115import org .dave .compactmachines3 .utility .Logz ;
16+ import org .dave .compactmachines3 .utility .ShrinkingDeviceUtils ;
1217
1318public class SkyWorldEvents {
1419 @ SubscribeEvent
@@ -18,7 +23,7 @@ public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
1823 return ;
1924 }
2025
21- if (event .player .isCreative () || event . player . isSpectator ()) {
26+ if (event .player .isSpectator ()) {
2227 return ;
2328 }
2429
@@ -27,13 +32,30 @@ public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
2732 return ;
2833 }
2934
30- if (event .player .posY > 49.0f || event .player .posY < 39.5f ) {
35+ if (! event .player .isCreative () && ( event . player . posY > 49.0f || event .player .posY < 39.5f ) ) {
3136 BlockPos spawnPoint = worldServer .getSpawnPoint ();
3237 event .player .setPositionAndUpdate (spawnPoint .getX () + 0.5d , spawnPoint .getY () + 0.2d , spawnPoint .getZ () + 0.5d );
3338 return ;
3439 }
40+
41+ if (!ShrinkingDeviceUtils .hasShrinkingDeviceInInventory (event .player ) && !SkyWorldSavedData .instance .hasReceivedStartingInventory (event .player )) {
42+ ItemStack psdStack = new ItemStack (Itemss .psd , 1 , 0 );
43+ if (!event .player .addItemStackToInventory (psdStack )) {
44+ EntityItem entityItem = new EntityItem (world , event .player .posX , event .player .posY + event .player .getEyeHeight () + 0.5f , event .player .posZ , psdStack );
45+ entityItem .lifespan = 2400 ;
46+ entityItem .setPickupDelay (10 );
47+
48+ entityItem .motionX = 0.0f ;
49+ entityItem .motionY = 0.15f ;
50+ entityItem .motionZ = 0.0f ;
51+ world .spawnEntity (entityItem );
52+ }
53+
54+ SkyWorldSavedData .instance .addToStartingInventoryReceiverSet (event .player );
55+ }
3556 }
3657
58+
3759 @ SubscribeEvent
3860 public static void createSpawnPoint (WorldEvent .CreateSpawnPosition event ) {
3961 World world = event .getWorld ();
0 commit comments