From 98cbaed769807862985ce5f0b4471555e3f2281a Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Sun, 13 Jun 2021 18:23:13 +0200 Subject: [PATCH] potion parsing error catching --- .../io/github/flemmli97/flan/claim/Claim.java | 2 +- .../flan/gui/PotionEditScreenHandler.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java b/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java index 7492bca..8e4d91e 100644 --- a/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java +++ b/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java @@ -487,7 +487,7 @@ public class Claim implements IPermissionContainer { } public void applyEffects(ServerPlayerEntity player) { - if (player.world.getTime() % 160 == 0) + if (player.world.getTime() % 80 == 0) this.potions.forEach((effect, amp) -> { player.applyStatusEffect(new StatusEffectInstance(effect, 200, amp - 1, true, false)); }); diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java index 48f233f..5251ebb 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java @@ -6,6 +6,7 @@ import io.github.flemmli97.flan.claim.Claim; import io.github.flemmli97.flan.claim.PermHelper; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.Inventory; @@ -20,6 +21,7 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; +import net.minecraft.util.registry.Registry; import java.util.Collection; import java.util.Collections; @@ -107,7 +109,18 @@ public class PotionEditScreenHandler extends ServerOnlyScreenHandler { player.closeHandledScreen(); player.getServer().execute(() -> StringResultScreenHandler.createNewStringResult(player, (s) -> { String[] potion = s.split(";"); - this.claim.addPotion(CrossPlatformStuff.effectFromString(potion[0]), Integer.parseInt(potion[1])); + int amp = 1; + StatusEffect effect = CrossPlatformStuff.effectFromString(potion[0]); + if(effect == StatusEffects.LUCK && !potion[0].equals("minecraft:luck")) { + ServerScreenHelper.playSongToPlayer(player, SoundEvents.ENTITY_VILLAGER_NO, 1, 1f); + return; + } + if(potion.length > 1) { + try { + amp = Integer.parseInt(potion[1]); + } catch (NumberFormatException e) {} + } + this.claim.addPotion(effect, amp); player.closeHandledScreen(); player.getServer().execute(() -> PotionEditScreenHandler.openPotionMenu(player, this.claim)); ServerScreenHelper.playSongToPlayer(player, SoundEvents.BLOCK_ANVIL_USE, 1, 1f);