diff --git a/pom.xml b/pom.xml
index 8ec16b1..ca0f338 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.ankoki
SkJade
- 1.4.0-beta
+ 1.3.4
1.8
diff --git a/src/main/java/com/ankoki/skjade/elements/expressions/ExprNearestStructure.java b/src/main/java/com/ankoki/skjade/elements/expressions/ExprNearestStructure.java
index 97b3e99..cd7397b 100644
--- a/src/main/java/com/ankoki/skjade/elements/expressions/ExprNearestStructure.java
+++ b/src/main/java/com/ankoki/skjade/elements/expressions/ExprNearestStructure.java
@@ -32,7 +32,7 @@ public class ExprNearestStructure extends SimpleExpression {
static {
if (Utils.getServerMajorVersion() > 12) {
Skript.registerExpression(ExprNearestStructure.class, Location.class, ExpressionType.SIMPLE,
- "[the] (nearest|closest) (1¦(not |un)(explored|discovered)|) [structure [of]] %structuretype% (in|within) [a] radius [of] %number% (around|at|from|of) %location%");
+ "[the] (nearest|closest) (1¦(not |un)(explored|discovered)|) [structure [of]] %skjstructuretype% (in|within) [a] radius [of] %number% (around|at|from|of) %location%");
}
}
diff --git a/src/main/java/com/ankoki/skjade/hooks/holograms/HoloClassInfo.java b/src/main/java/com/ankoki/skjade/hooks/holograms/HoloClassInfo.java
index 55db65b..0589da1 100644
--- a/src/main/java/com/ankoki/skjade/hooks/holograms/HoloClassInfo.java
+++ b/src/main/java/com/ankoki/skjade/hooks/holograms/HoloClassInfo.java
@@ -24,150 +24,151 @@
public class HoloClassInfo {
static {
- Classes.registerClass(new ClassInfo<>(Hologram.class, "hologram")
- .user("holo(gram)?s?")
- .name("Hologram")
- .description("A Hologram created with Holographic displays.")
- .since("1.0.0")
- .changer(new Changer() {
- @Nullable
- @Override
- public Class>[] acceptChange(ChangeMode mode) {
- if (mode == ChangeMode.DELETE || mode == ChangeMode.RESET || mode == ChangeMode.ADD) {
- return CollectionUtils.array(String.class, ItemStack.class);
- }
- return null;
- }
+ try {
+ Classes.registerClass(new ClassInfo<>(Hologram.class, "hologram")
+ .user("holo(gram)?s?")
+ .name("Hologram")
+ .description("A Hologram created with Holographic displays.")
+ .since("1.0.0")
+ .changer(new Changer() {
+ @Nullable
+ @Override
+ public Class>[] acceptChange(ChangeMode mode) {
+ if (mode == ChangeMode.DELETE || mode == ChangeMode.RESET || mode == ChangeMode.ADD) {
+ return CollectionUtils.array(String.class, ItemStack.class);
+ }
+ return null;
+ }
- @Override
- public void change(Hologram[] holograms, @Nullable Object[] delta, ChangeMode mode) {
- if (mode == ChangeMode.DELETE) {
- HologramManager.deleteHologram(holograms);
- }
- else if (mode == ChangeMode.ADD) {
- if (delta == null || delta[0] == null) return;
- if (delta[0] instanceof String) {
- for (Hologram hologram : holograms) {
- HologramManager.addTextLine(hologram, (String) delta[0]);
+ @Override
+ public void change(Hologram[] holograms, @Nullable Object[] delta, ChangeMode mode) {
+ if (mode == ChangeMode.DELETE) {
+ HologramManager.deleteHologram(holograms);
+ } else if (mode == ChangeMode.ADD) {
+ if (delta == null || delta[0] == null) return;
+ if (delta[0] instanceof String) {
+ for (Hologram hologram : holograms) {
+ HologramManager.addTextLine(hologram, (String) delta[0]);
+ }
+ } else if (delta[0] instanceof ItemStack) {
+ for (Hologram hologram : holograms) {
+ HologramManager.addItemLine(hologram, (ItemStack) delta[0]);
+ }
+ }
+ } else {
+ for (Hologram hologram : holograms) {
+ if (!hologram.isDeleted()) {
+ hologram.clearLines();
+ }
+ }
+ }
}
- } else if (delta[0] instanceof ItemStack) {
- for (Hologram hologram : holograms) {
- HologramManager.addItemLine(hologram, (ItemStack) delta[0]);
+ })
+ .parser(new Parser() {
+ @Override
+ public boolean canParse(ParseContext context) {
+ return false;
}
- }
- }
- else {
- for (Hologram hologram : holograms) {
- if (!hologram.isDeleted()) {
- hologram.clearLines();
+
+ @Override
+ public String toString(Hologram hologram, int i) {
+ return "hologram";
+ }
+
+ @Override
+ public String toVariableNameString(Hologram hologram) {
+ return "hologram:" + hologram.getCreationTimestamp();
+ }
+
+ @Override
+ public String getVariableNamePattern() {
+ return "hologram:\\d+";
+ }
+ })
+ .serializer(new Serializer() {
+ @Override
+ public Fields serialize(Hologram hologram) throws NotSerializableException {
+ Fields fields = new Fields();
+ fields.putObject("id", HologramManager.getIDFromHolo(hologram));
+ fields.putObject("location", HologramManager.getHoloLocation(hologram));
+ fields.putObject("lines", HologramManager.getLines(hologram));
+
+ return fields;
+ }
+
+ @Override
+ public void deserialize(Hologram hologram, Fields fields) throws StreamCorruptedException, NotSerializableException {
+ if (!hologram.isDeleted()) hologram.delete();
+ HologramManager.createHologram((String) fields.getObject("id"),
+ (Location) fields.getObject("location"), true, true);
+ }
+
+ @Override
+ public boolean mustSyncDeserialization() {
+ return true;
+ }
+
+ @Override
+ protected boolean canBeInstantiated() {
+ return false;
+ }
+ }));
+
+ Converters.registerConverter(Hologram.class, Location.class, Hologram::getLocation);
+
+ Classes.registerClass(new ClassInfo<>(HologramLine.class, "hologramline")
+ .user("holo(gram)?( |-)?lines?")
+ .name("Hologram Line")
+ .description("A line of a Hologram.")
+ .since("1.0.0")
+ .changer(new Changer() {
+ @Nullable
+ @Override
+ public Class>[] acceptChange(ChangeMode mode) {
+ if (mode == ChangeMode.DELETE || mode == ChangeMode.RESET) {
+ return CollectionUtils.array();
+ }
+ return null;
}
- }
- }
- }
- })
- .parser(new Parser() {
- @Override
- public boolean canParse(ParseContext context) {
- return false;
- }
- @Override
- public String toString(Hologram hologram, int i) {
- return "hologram";
- }
-
- @Override
- public String toVariableNameString(Hologram hologram) {
- return "hologram:" + hologram.getCreationTimestamp();
- }
-
- @Override
- public String getVariableNamePattern() {
- return "hologram:\\d+";
- }
- })
- .serializer(new Serializer() {
- @Override
- public Fields serialize(Hologram hologram) throws NotSerializableException {
- Fields fields = new Fields();
- fields.putObject("id", HologramManager.getIDFromHolo(hologram));
- fields.putObject("location", HologramManager.getHoloLocation(hologram));
- fields.putObject("lines", HologramManager.getLines(hologram));
-
- return fields;
- }
-
- @Override
- public void deserialize(Hologram hologram, Fields fields) throws StreamCorruptedException, NotSerializableException {
- if (!hologram.isDeleted()) hologram.delete();
- HologramManager.createHologram((String) fields.getObject("id"),
- (Location) fields.getObject("location"), true, true);
- }
-
- @Override
- public boolean mustSyncDeserialization() {
- return true;
- }
-
- @Override
- protected boolean canBeInstantiated() {
- return false;
- }
- }));
-
- Converters.registerConverter(Hologram.class, Location.class, Hologram::getLocation);
-
- Classes.registerClass(new ClassInfo<>(HologramLine.class, "hologramline")
- .user("holo(gram)?( |-)?lines?")
- .name("Hologram Line")
- .description("A line of a Hologram.")
- .since("1.0.0")
- .changer(new Changer() {
- @Nullable
- @Override
- public Class>[] acceptChange(ChangeMode mode) {
- if (mode == ChangeMode.DELETE || mode == ChangeMode.RESET) {
- return CollectionUtils.array();
- }
- return null;
- }
- @Override
- public void change(HologramLine[] hologramLines, @Nullable Object[] objects, ChangeMode mode) {
- for (HologramLine line : hologramLines) {
- line.removeLine();
+ @Override
+ public void change(HologramLine[] hologramLines, @Nullable Object[] objects, ChangeMode mode) {
+ for (HologramLine line : hologramLines) {
+ line.removeLine();
+ }
+ }
+ })
+ .parser(new Parser() {
+ @Override
+ public boolean canParse(ParseContext context) {
+ return false;
+ }
+
+ @Override
+ public String toString(HologramLine hologramLine, int i) {
+ return hologramLine instanceof ItemLine ? "hologram item line" : "hologram text line";
+ }
+
+ @Override
+ public String toVariableNameString(HologramLine hologramLine) {
+ return hologramLine instanceof ItemLine ? "hologram item line" : "hologram text line";
+ }
+
+ @Override
+ public String getVariableNamePattern() {
+ return "\\S+";
+ }
+ }));
+
+ Converters.registerConverter(TextLine.class, String.class, TextLine::getText);
+ Converters.registerConverter(ItemLine.class, ItemType.class, line -> new ItemType(line.getItemStack()));
+ Converters.registerConverter(HologramLine.class, Number.class, line -> {
+ Hologram parent = line.getParent();
+ for (int i = 0; i < parent.size(); i++) {
+ if (parent.getLine(i).equals(line)) return i++;
}
- }
- })
- .parser(new Parser() {
- @Override
- public boolean canParse(ParseContext context) {
- return false;
- }
-
- @Override
- public String toString(HologramLine hologramLine, int i) {
- return hologramLine instanceof ItemLine ? "hologram item line" : "hologram text line";
- }
-
- @Override
- public String toVariableNameString(HologramLine hologramLine) {
- return hologramLine instanceof ItemLine ? "hologram item line" : "hologram text line";
- }
-
- @Override
- public String getVariableNamePattern() {
- return "\\S+";
- }
- }));
-
- Converters.registerConverter(TextLine.class, String.class, TextLine::getText);
- Converters.registerConverter(ItemLine.class, ItemType.class, line -> new ItemType(line.getItemStack()));
- Converters.registerConverter(HologramLine.class, Number.class, line -> {
- Hologram parent = line.getParent();
- for (int i = 0; i < parent.size(); i++) {
- if (parent.getLine(i).equals(line)) return i++;
- }
- return null;
- });
+ return null;
+ });
+ } catch(IllegalArgumentException ignored) {}
}
}
diff --git a/src/main/java/com/ankoki/skjade/utils/NonLegacyClassInfo.java b/src/main/java/com/ankoki/skjade/utils/NonLegacyClassInfo.java
index 19814a7..9848be2 100644
--- a/src/main/java/com/ankoki/skjade/utils/NonLegacyClassInfo.java
+++ b/src/main/java/com/ankoki/skjade/utils/NonLegacyClassInfo.java
@@ -11,8 +11,8 @@ public class NonLegacyClassInfo {
public NonLegacyClassInfo() {
//StructureType ClassInfo
- Classes.registerClass(new ClassInfo<>(StructureType.class, "structuretype")
- .user("structuretype?s?")
+ Classes.registerClass(new ClassInfo<>(StructureType.class, "skjstructuretype")
+ .user("skjstructuretype?s?")
.name("Structure Type")
.description("A specified structure type.")
.since("1.3.0")