From ecce69da1920637bc833bf2a45dd893caba5ed0d Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 12:13:44 -0400 Subject: [PATCH 01/17] Add ExprTimeLived --- .../skript/expressions/ExprTimeLived.java | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 src/main/java/ch/njol/skript/expressions/ExprTimeLived.java diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java new file mode 100644 index 00000000000..fbfc714a1e7 --- /dev/null +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -0,0 +1,94 @@ +package ch.njol.skript.expressions; + +import ch.njol.skript.classes.Changer.ChangeMode; +import ch.njol.skript.doc.Description; +import ch.njol.skript.doc.Example; +import ch.njol.skript.doc.Name; +import ch.njol.skript.doc.Since; +import ch.njol.skript.expressions.base.SimplePropertyExpression; +import ch.njol.skript.util.Timespan; +import ch.njol.skript.util.Timespan.TimePeriod; +import ch.njol.util.coll.CollectionUtils; +import org.bukkit.entity.Entity; +import org.bukkit.event.Event; +import org.jetbrains.annotations.Nullable; + +@Name("Time Lived of Entity") +@Description(""" + Returns the total amount of time the entity has lived. + Note: This does not reset when a player dies. + """) +@Example(""" + set {_target} to player's target entity + send "%{_target}% has lived for %time lived of {_target}%" + + spawn zombie at player: + set {_boss} to zombie + # start off with 1 tick lived instead of 0 to avoid custom effects running off spawn + add 1 tick to {_boss}'s time lived + while {_boss} is alive: + wait 1 tick + # update display name every tick with hp + set display name of {_boss} to "Boss %{_boss}'s health%/%{_boss}'s max health%" + # heal every second + if mod(ticks of {_boss}'s time lived, 20) is 0: + add 1 to {_boss}'s health + # push forward every 2 seconds + if mod(ticks of {_boss}'s time lived, 40) is 0: + push {_boss} forward at speed 1 + # give strength every 10 seconds + if mod(ticks of {_boss}'s time lived, 200) is 0: + add potion effect of strength for 3 seconds to {_boss}'s potion effects + """) +@Since("INSERT VERSION") +public class ExprTimeLived extends SimplePropertyExpression { + + static { + register(ExprTimeLived.class, Timespan.class, "time (alive|lived)", "entities"); + } + + @Override + @Nullable + public Timespan convert(Entity entity) { + return new Timespan(TimePeriod.TICK, entity.getTicksLived()); + } + + @Override + @Nullable + public Class[] acceptChange(ChangeMode mode) { + if (mode == ChangeMode.REMOVE_ALL || mode == ChangeMode.DELETE) + return null; + return CollectionUtils.array(Timespan.class); + } + + @Override + public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { + Entity entity = getExpr().getSingle(event); + if (entity == null) return; + + int newTicks = 1; + if (mode != ChangeMode.RESET && delta != null && delta.length > 0 && delta[0] instanceof Timespan timespan) { + newTicks = (int) timespan.get(Timespan.TimePeriod.TICK); + } + + int currentTicks = entity.getTicksLived(); + int valueToSet = switch (mode) { + case ADD -> currentTicks + newTicks; + case REMOVE -> currentTicks - newTicks; + case SET, RESET -> newTicks; + default -> currentTicks; + }; + + entity.setTicksLived(Math.max(1, valueToSet)); + } + + @Override + public Class getReturnType() { + return Timespan.class; + } + + @Override + protected String getPropertyName() { + return "time lived"; + } +} \ No newline at end of file From 80bd8020045b799ea7c1ebff3e0d5138450320dc Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:28:05 -0400 Subject: [PATCH 02/17] adjust annotation Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index fbfc714a1e7..35687e56bd5 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -48,8 +48,7 @@ public class ExprTimeLived extends SimplePropertyExpression { } @Override - @Nullable - public Timespan convert(Entity entity) { + public @Nullable Timespan convert(Entity entity) { return new Timespan(TimePeriod.TICK, entity.getTicksLived()); } From 6d114b5b704567ea78b57bd846919cfae9274d7d Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:28:22 -0400 Subject: [PATCH 03/17] adjust annotation Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 35687e56bd5..afed139dccb 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -53,8 +53,7 @@ public class ExprTimeLived extends SimplePropertyExpression { } @Override - @Nullable - public Class[] acceptChange(ChangeMode mode) { + public Class @Nullable [] acceptChange(ChangeMode mode) { if (mode == ChangeMode.REMOVE_ALL || mode == ChangeMode.DELETE) return null; return CollectionUtils.array(Timespan.class); From 3a8866ffe309891e37eea67f23c1976ef38125e4 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:28:37 -0400 Subject: [PATCH 04/17] adjust annotation Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index afed139dccb..f7c86ce21db 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -60,7 +60,7 @@ public class ExprTimeLived extends SimplePropertyExpression { } @Override - public void change(Event event, @Nullable Object[] delta, ChangeMode mode) { + public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { Entity entity = getExpr().getSingle(event); if (entity == null) return; From cc59c9ce6fa2189186c4505d234910a1d539d2f0 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:30:37 -0400 Subject: [PATCH 05/17] space after method Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index f7c86ce21db..933c9161675 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -89,4 +89,4 @@ public Class getReturnType() { protected String getPropertyName() { return "time lived"; } -} \ No newline at end of file +} From 006ddf1a0bdacd92032b1ada03a192d707ffba73 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:34:05 -0400 Subject: [PATCH 06/17] Remove unnecessary conditions Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 933c9161675..78b5f8dc221 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -65,7 +65,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { if (entity == null) return; int newTicks = 1; - if (mode != ChangeMode.RESET && delta != null && delta.length > 0 && delta[0] instanceof Timespan timespan) { + if (delta != null) { newTicks = (int) timespan.get(Timespan.TimePeriod.TICK); } From 737af817b362994a62ccd1022c12e6c81c184807 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:37:51 -0400 Subject: [PATCH 07/17] Add casting back to condition --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 78b5f8dc221..c5d6a754af8 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -65,7 +65,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { if (entity == null) return; int newTicks = 1; - if (delta != null) { + if (delta != null && delta[0] instanceof Timespan timespan) { newTicks = (int) timespan.get(Timespan.TimePeriod.TICK); } From 4d586fc2f921d9640324c61541433fb190215a54 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:44:09 -0400 Subject: [PATCH 08/17] adjust acceptChange to only allow add/remove/set instead of everything but delete and remove_all --- .../java/ch/njol/skript/expressions/ExprTimeLived.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index c5d6a754af8..89c958870f5 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -54,9 +54,10 @@ public class ExprTimeLived extends SimplePropertyExpression { @Override public Class @Nullable [] acceptChange(ChangeMode mode) { - if (mode == ChangeMode.REMOVE_ALL || mode == ChangeMode.DELETE) - return null; - return CollectionUtils.array(Timespan.class); + return switch (mode) { + case ADD, REMOVE, SET -> CollectionUtils.array(Timespan.class); + default -> null; + }; } @Override From c497e0e3306594ed68b231e2e2cd101fcbd56c96 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:50:43 -0400 Subject: [PATCH 09/17] allow multiple entities to be changed --- .../skript/expressions/ExprTimeLived.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 89c958870f5..7e5a3fcf282 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -62,23 +62,22 @@ public class ExprTimeLived extends SimplePropertyExpression { @Override public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { - Entity entity = getExpr().getSingle(event); - if (entity == null) return; - int newTicks = 1; if (delta != null && delta[0] instanceof Timespan timespan) { newTicks = (int) timespan.get(Timespan.TimePeriod.TICK); } - int currentTicks = entity.getTicksLived(); - int valueToSet = switch (mode) { - case ADD -> currentTicks + newTicks; - case REMOVE -> currentTicks - newTicks; - case SET, RESET -> newTicks; - default -> currentTicks; - }; + for (Entity entity : getExpr().getArray(event)) { + int currentTicks = entity.getTicksLived(); + int valueToSet = switch (mode) { + case ADD -> currentTicks + newTicks; + case REMOVE -> currentTicks - newTicks; + case SET, RESET -> newTicks; + default -> currentTicks; + }; - entity.setTicksLived(Math.max(1, valueToSet)); + entity.setTicksLived(Math.max(1, valueToSet)); + } } @Override @@ -90,4 +89,5 @@ public Class getReturnType() { protected String getPropertyName() { return "time lived"; } -} + +} \ No newline at end of file From 5efb6a2bfbd70c4b9b2f390c015e7fa25dd808c6 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:56:18 -0400 Subject: [PATCH 10/17] simpler examples --- .../skript/expressions/ExprTimeLived.java | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 7e5a3fcf282..b5c94ea0675 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -19,26 +19,11 @@ Note: This does not reset when a player dies. """) @Example(""" - set {_target} to player's target entity - send "%{_target}% has lived for %time lived of {_target}%" - - spawn zombie at player: - set {_boss} to zombie - # start off with 1 tick lived instead of 0 to avoid custom effects running off spawn - add 1 tick to {_boss}'s time lived - while {_boss} is alive: - wait 1 tick - # update display name every tick with hp - set display name of {_boss} to "Boss %{_boss}'s health%/%{_boss}'s max health%" - # heal every second - if mod(ticks of {_boss}'s time lived, 20) is 0: - add 1 to {_boss}'s health - # push forward every 2 seconds - if mod(ticks of {_boss}'s time lived, 40) is 0: - push {_boss} forward at speed 1 - # give strength every 10 seconds - if mod(ticks of {_boss}'s time lived, 200) is 0: - add potion effect of strength for 3 seconds to {_boss}'s potion effects + clear all entities where [input's time lived > 1 hour] + """) +@Example(""" + on right click on entity: + send "%entity% has lived for %time lived of clicked entity%" to player """) @Since("INSERT VERSION") public class ExprTimeLived extends SimplePropertyExpression { @@ -89,5 +74,5 @@ public Class getReturnType() { protected String getPropertyName() { return "time lived"; } - + } \ No newline at end of file From 1c32c2270d0c1de274c218ef4011699acc29659b Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:57:49 -0400 Subject: [PATCH 11/17] add reset to accepted changing methods --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index b5c94ea0675..69614cffec6 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -40,7 +40,7 @@ public class ExprTimeLived extends SimplePropertyExpression { @Override public Class @Nullable [] acceptChange(ChangeMode mode) { return switch (mode) { - case ADD, REMOVE, SET -> CollectionUtils.array(Timespan.class); + case ADD, REMOVE, SET, RESET -> CollectionUtils.array(Timespan.class); default -> null; }; } From 843e725da71967656b1b35b9ac823f22cf5ea5b4 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Mon, 18 Aug 2025 22:59:02 -0400 Subject: [PATCH 12/17] fix inconsistency in example --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 69614cffec6..e1cea379c89 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -23,7 +23,7 @@ """) @Example(""" on right click on entity: - send "%entity% has lived for %time lived of clicked entity%" to player + send "%entity% has lived for %time lived of entity%" to player """) @Since("INSERT VERSION") public class ExprTimeLived extends SimplePropertyExpression { From 777e56773212c90bf7b647859760997788ff6ec7 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Tue, 19 Aug 2025 21:38:33 -0400 Subject: [PATCH 13/17] Remove unneeded quote blocks Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index e1cea379c89..caf835358da 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -18,9 +18,7 @@ Returns the total amount of time the entity has lived. Note: This does not reset when a player dies. """) -@Example(""" - clear all entities where [input's time lived > 1 hour] - """) +@Example("clear all entities where [input's time lived > 1 hour]") @Example(""" on right click on entity: send "%entity% has lived for %time lived of entity%" to player From 3833bcb85fd609002cda03854584489de3ff2e0f Mon Sep 17 00:00:00 2001 From: MrScopes Date: Tue, 19 Aug 2025 21:38:53 -0400 Subject: [PATCH 14/17] blank last line Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index caf835358da..d98f34ef199 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -73,4 +73,4 @@ protected String getPropertyName() { return "time lived"; } -} \ No newline at end of file +} From 72ea3bc28bdfa3ce564a0f1cc04fe38cbd3b0c88 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Wed, 20 Aug 2025 11:54:31 -0400 Subject: [PATCH 15/17] Make sure it doesn't go above max integer limit Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com> --- src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index d98f34ef199..93e4d990766 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -59,7 +59,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) { default -> currentTicks; }; - entity.setTicksLived(Math.max(1, valueToSet)); + entity.setTicksLived(Math2.fit(1, valueToSet, Integer.MAX_VALUE)); } } From 47db24068fefcb3e161876c2183e74c3efa93350 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Wed, 20 Aug 2025 19:49:38 -0400 Subject: [PATCH 16/17] Math2 import --- src/main/java/ch/njol/skript/Skript.java | 2 ++ src/main/java/ch/njol/skript/expressions/ExprTimeLived.java | 1 + 2 files changed, 3 insertions(+) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index d44ee843f79..382490a694f 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -96,6 +96,7 @@ import org.skriptlang.skript.bukkit.fishing.FishingModule; import org.skriptlang.skript.bukkit.furnace.FurnaceModule; import org.skriptlang.skript.bukkit.input.InputModule; +import org.skriptlang.skript.bukkit.interactions.InteractionModule; import org.skriptlang.skript.bukkit.log.runtime.BukkitRuntimeErrorConsumer; import org.skriptlang.skript.bukkit.loottables.LootTableModule; import org.skriptlang.skript.bukkit.registration.BukkitRegistryKeys; @@ -586,6 +587,7 @@ public void onEnable() { FurnaceModule.load(); LootTableModule.load(); skript.loadModules(new DamageSourceModule()); + skript.loadModules(new InteractionModule()); } catch (final Exception e) { exception(e, "Could not load required .class files: " + e.getLocalizedMessage()); setEnabled(false); diff --git a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java index 93e4d990766..02d5d5b5010 100644 --- a/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java +++ b/src/main/java/ch/njol/skript/expressions/ExprTimeLived.java @@ -8,6 +8,7 @@ import ch.njol.skript.expressions.base.SimplePropertyExpression; import ch.njol.skript.util.Timespan; import ch.njol.skript.util.Timespan.TimePeriod; +import ch.njol.util.Math2; import ch.njol.util.coll.CollectionUtils; import org.bukkit.entity.Entity; import org.bukkit.event.Event; From 7f2f69cd66c7246e2baa4dd4bafb8f05e7071c54 Mon Sep 17 00:00:00 2001 From: MrScopes Date: Wed, 20 Aug 2025 19:51:22 -0400 Subject: [PATCH 17/17] remove start of interaction code moved to another branch --- src/main/java/ch/njol/skript/Skript.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index 382490a694f..d44ee843f79 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -96,7 +96,6 @@ import org.skriptlang.skript.bukkit.fishing.FishingModule; import org.skriptlang.skript.bukkit.furnace.FurnaceModule; import org.skriptlang.skript.bukkit.input.InputModule; -import org.skriptlang.skript.bukkit.interactions.InteractionModule; import org.skriptlang.skript.bukkit.log.runtime.BukkitRuntimeErrorConsumer; import org.skriptlang.skript.bukkit.loottables.LootTableModule; import org.skriptlang.skript.bukkit.registration.BukkitRegistryKeys; @@ -587,7 +586,6 @@ public void onEnable() { FurnaceModule.load(); LootTableModule.load(); skript.loadModules(new DamageSourceModule()); - skript.loadModules(new InteractionModule()); } catch (final Exception e) { exception(e, "Could not load required .class files: " + e.getLocalizedMessage()); setEnabled(false);