From eda52283d6d7be34ab3c0a9e0cef48e888f78d7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin=20B=C3=A4rtschi?= Date: Sun, 2 Jun 2024 16:15:30 +0200 Subject: [PATCH] upgrade userdev and neoforge, display message from env detector above hotbar, damage item if not in creative, only add data to server side chunks and add 10 durability to env detector --- build.gradle | 2 +- gradle.properties | 2 +- .../environmenttech/level/ETChunkEvents.java | 5 +++-- .../environmenttech/level/item/ETItems.java | 2 +- .../level/item/EnvDetectorItem.java | 15 ++++++++++----- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 2cf2315..07b61bb 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'eclipse' id 'idea' id 'maven-publish' - id 'net.neoforged.gradle.userdev' version '7.0.136' + id 'net.neoforged.gradle.userdev' version '7.0.138' } version = mod_version diff --git a/gradle.properties b/gradle.properties index d219694..0750054 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ minecraft_version=1.20.6 # as they do not follow standard versioning conventions. minecraft_version_range=[1.20.6,1.21) # The Neo version must agree with the Minecraft version to get a valid artifact -neo_version=20.6.99-beta +neo_version=20.6.100-beta # The Neo version range can use any version of Neo as bounds neo_version_range=[20,) # The loader version range can only use the major version of FML as bounds diff --git a/src/main/java/robaertschi/environmenttech/level/ETChunkEvents.java b/src/main/java/robaertschi/environmenttech/level/ETChunkEvents.java index 3f297c0..c577fd4 100644 --- a/src/main/java/robaertschi/environmenttech/level/ETChunkEvents.java +++ b/src/main/java/robaertschi/environmenttech/level/ETChunkEvents.java @@ -13,16 +13,17 @@ import robaertschi.environmenttech.data.attachments.ETAttachments; public class ETChunkEvents { @SubscribeEvent() public static void onChunkLoad(ChunkEvent.Load event) { + if (event.getLevel().isClientSide()) return; if (event.isNewChunk() && event.getChunk() instanceof LevelChunk levelChunk && !event.getChunk().hasData(ETAttachments.ENV)) { if (levelChunk.getStatus() != ChunkStatus.FULL) { return; } int random = event.getLevel().getRandom().nextIntBetweenInclusive(Config.minEnvForNewChunk, Config.maxEnvForNewChunk); - EnvironmentTech.LOGGER.info("New Chunk, set random to {}", random); + EnvironmentTech.LOGGER.debug("New Chunk, set random to {}", random); event.getChunk().setData(ETAttachments.ENV, random); } else if (!event.getChunk().hasData(ETAttachments.ENV)) { int random = event.getLevel().getRandom().nextIntBetweenInclusive(Config.minEnvForNewChunk, Config.maxEnvForNewChunk); - EnvironmentTech.LOGGER.info("Chunk without data, set random to {}", random); + EnvironmentTech.LOGGER.debug("Chunk without data, set random to {}", random); event.getChunk().setData(ETAttachments.ENV, random); } } diff --git a/src/main/java/robaertschi/environmenttech/level/item/ETItems.java b/src/main/java/robaertschi/environmenttech/level/item/ETItems.java index 5c8ea06..afbda44 100644 --- a/src/main/java/robaertschi/environmenttech/level/item/ETItems.java +++ b/src/main/java/robaertschi/environmenttech/level/item/ETItems.java @@ -33,7 +33,7 @@ public class ETItems { public static final DeferredItem EXAMPLE_ITEM = ITEMS.registerSimpleItem("example_item", new Item.Properties().food(new FoodProperties.Builder() .alwaysEdible().nutrition(1).saturationModifier(2f).build())); - public static final DeferredItem ENV_DETECTOR_ITEM = ITEMS.registerItem("env_detector", EnvDetectorItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem ENV_DETECTOR_ITEM = ITEMS.registerItem("env_detector", EnvDetectorItem::new, new Item.Properties().stacksTo(1).durability(10)); public static final DeferredHolder EXAMPLE_TAB = CREATIVE_MODE_TABS.register("example_tab", () -> CreativeModeTab.builder() diff --git a/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java b/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java index bf976aa..e5b4a6d 100644 --- a/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java +++ b/src/main/java/robaertschi/environmenttech/level/item/EnvDetectorItem.java @@ -1,5 +1,6 @@ package robaertschi.environmenttech.level.item; +import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; @@ -18,19 +19,23 @@ public class EnvDetectorItem extends Item { super(properties); } - @Override - public void onUseTick(Level pLevel, LivingEntity pLivingEntity, ItemStack pStack, int pRemainingUseDuration) { - } @Override public InteractionResultHolder use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) { if (pLevel.isClientSide()) return InteractionResultHolder.pass(pPlayer.getItemInHand(pUsedHand)); + var chunk = pLevel.getChunk(pPlayer.blockPosition()); if (chunk.hasData(ETAttachments.ENV)) { - pPlayer.sendSystemMessage(Component.literal("Chunk has " + chunk.getData(ETAttachments.ENV) + " ENV")); + pPlayer.displayClientMessage(Component.literal("Chunk has " + chunk.getData(ETAttachments.ENV) + " ENV").withStyle(ChatFormatting.GREEN), true); } else { - pPlayer.sendSystemMessage(Component.literal("Warning: This chunk does not have the ENV attachment")); + pPlayer.displayClientMessage(Component.literal("Warning: This chunk does not have the ENV attachment, please report this to the Author of the Mod.").withStyle(ChatFormatting.YELLOW), true); + } + + if (!pPlayer.isCreative()) { + pPlayer.getItemInHand(pUsedHand).hurtAndBreak(1, pLevel.getRandom(), pPlayer, () -> { + pPlayer.getItemInHand(pUsedHand).setCount(0); + }); } return InteractionResultHolder.consume(pPlayer.getItemInHand(pUsedHand));