From eafef4ae54c964f757795193d94644bd97f00118 Mon Sep 17 00:00:00 2001 From: Marcel Konrad Date: Tue, 26 Feb 2019 17:04:48 +0100 Subject: [PATCH] Fix effect command giving 20 times as much duration --- .../builder/component/abstr/ComponentPotion.java | 2 +- .../builder/component/abstr/PotionMetadata.java | 16 +++++++++++++--- .../builder/impl/BuilderPotionEffect.java | 6 +++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/exopandora/worldhandler/builder/component/abstr/ComponentPotion.java b/src/main/java/exopandora/worldhandler/builder/component/abstr/ComponentPotion.java index 8fd7f00..c560040 100644 --- a/src/main/java/exopandora/worldhandler/builder/component/abstr/ComponentPotion.java +++ b/src/main/java/exopandora/worldhandler/builder/component/abstr/ComponentPotion.java @@ -36,7 +36,7 @@ public abstract class ComponentPotion implements IBuilderComponent compound.setByte("Id", (byte) Potion.getIdFromPotion(entry.getKey())); compound.setByte("Amplifier", (byte) (potion.getAmplifier() - 1)); - compound.setInteger("Duration", potion.getDuration() > 0 ? Math.min(potion.getDuration(), 1000000) : 1000000); + compound.setInteger("Duration", potion.getDurationTicks() > 0 ? Math.min(potion.getDurationTicks(), 1000000) : 1000000); compound.setBoolean("Ambient", potion.getAmbient()); compound.setBoolean("ShowParticles", potion.getShowParticles()); diff --git a/src/main/java/exopandora/worldhandler/builder/component/abstr/PotionMetadata.java b/src/main/java/exopandora/worldhandler/builder/component/abstr/PotionMetadata.java index 4a5a502..ab1f7e6 100644 --- a/src/main/java/exopandora/worldhandler/builder/component/abstr/PotionMetadata.java +++ b/src/main/java/exopandora/worldhandler/builder/component/abstr/PotionMetadata.java @@ -88,16 +88,26 @@ public class PotionMetadata this.ambient = ambient; } - public int getDuration() + public int getDurationTicks() { - return PotionMetadata.getDuration(this.seconds, this.minutes, this.hours); + return PotionMetadata.getDurationTicks(this.seconds, this.minutes, this.hours); } - public static int getDuration(int seconds, int minutes, int hours) + public int getDurationSeconds() + { + return PotionMetadata.getDurationSeconds(this.seconds, this.minutes, this.hours); + } + + public static int getDurationTicks(int seconds, int minutes, int hours) { return seconds * 20 + minutes * 1200 + hours * 72000; } + public static int getDurationSeconds(int seconds, int minutes, int hours) + { + return seconds + minutes * 60 + hours * 3600; + } + public PotionMetadata withAmplifier(byte amplifier) { this.amplifier = amplifier; diff --git a/src/main/java/exopandora/worldhandler/builder/impl/BuilderPotionEffect.java b/src/main/java/exopandora/worldhandler/builder/impl/BuilderPotionEffect.java index 6f56ef4..6071ad2 100644 --- a/src/main/java/exopandora/worldhandler/builder/impl/BuilderPotionEffect.java +++ b/src/main/java/exopandora/worldhandler/builder/impl/BuilderPotionEffect.java @@ -108,7 +108,7 @@ public class BuilderPotionEffect extends CommandBuilder public void setSeconds(int seconds) { this.seconds = seconds; - this.setDuration(PotionMetadata.getDuration(this.seconds, this.minutes, this.hours)); + this.setDuration(PotionMetadata.getDurationSeconds(this.seconds, this.minutes, this.hours)); } public int getMinutes() @@ -119,7 +119,7 @@ public class BuilderPotionEffect extends CommandBuilder public void setMinutes(int minutes) { this.minutes = minutes; - this.setDuration(PotionMetadata.getDuration(this.seconds, this.minutes, this.hours)); + this.setDuration(PotionMetadata.getDurationSeconds(this.seconds, this.minutes, this.hours)); } public int getHours() @@ -130,7 +130,7 @@ public class BuilderPotionEffect extends CommandBuilder public void setHours(int hours) { this.hours = hours; - this.setDuration(PotionMetadata.getDuration(this.seconds, this.minutes, this.hours)); + this.setDuration(PotionMetadata.getDurationSeconds(this.seconds, this.minutes, this.hours)); } public BuilderGeneric getRemoveCommand()