Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 61b78b7

Browse files
committed
Fixes
1 parent 107c5d2 commit 61b78b7

18 files changed

+169
-259
lines changed

build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ java {
2121
}
2222

2323
description = "A skript addon that aims to bring more to linking ItemsAdder and Skript"
24-
group = "me.Asleepp"
24+
group = "me.asleepp"
2525
version = "1.6"
2626

2727
dependencies {
@@ -46,7 +46,6 @@ tasks {
4646
attributes["Implementation-Version"] = rootProject.version
4747
}
4848

49-
relocate("org.bstats", "me.asleepp.SkriptItemsAdder.bstats")
5049
configurations = listOf(project.configurations.shadow.get())
5150
minimize()
5251
}

src/main/java/me/asleepp/SkriptItemsAdder/SkriptItemsAdder.java

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import java.io.IOException;
44

55
import ch.njol.skript.util.Version;
6+
import lombok.Getter;
7+
import lombok.Setter;
68
import me.asleepp.SkriptItemsAdder.other.aliases.AliasesGenerator;
79
import me.asleepp.SkriptItemsAdder.other.listeners.ItemsAdderEventListener;
810
import me.asleepp.SkriptItemsAdder.other.util.Metrics;
@@ -23,6 +25,7 @@ public class SkriptItemsAdder extends JavaPlugin {
2325

2426
private static SkriptAddon addon;
2527
private static SkriptItemsAdder instance;
28+
@Getter
2629
private AliasesGenerator aliasesGenerator;
2730

2831
@Nullable
@@ -35,14 +38,12 @@ public static SkriptAddon getAddonInstance() {
3538
return addon;
3639
}
3740

38-
public boolean itemsAdderReady = false;
39-
public boolean loading = true;
41+
private final PluginManager manager = this.getServer().getPluginManager();
4042

4143
@Override
4244
public void onEnable() {
4345
// Let's get this show on the road.
4446
long start = System.currentTimeMillis();
45-
final PluginManager manager = this.getServer().getPluginManager();
4647
final Plugin skript = manager.getPlugin("Skript");
4748
if (skript == null || !skript.isEnabled()) {
4849
getLogger().severe("Could not find Skript! Disabling...");
@@ -71,21 +72,8 @@ public void onEnable() {
7172
final SkriptItemsAdder plugin = this;
7273

7374
// Pass the aliasesGenerator to the event listener
74-
new BukkitRunnable() {
75-
@Override
76-
public void run() {
77-
ItemsAdderEventListener eventListener = new ItemsAdderEventListener(plugin, aliasesGenerator);
78-
manager.registerEvents(eventListener, plugin);
79-
}
80-
}.runTask(this);
81-
82-
getLogger().info("Waiting for ItemsAdder to finish loading.");
83-
84-
getServer().getScheduler().runTaskTimer(this, () -> {
85-
if (itemsAdderReady) {
86-
return;
87-
}
88-
}, 0, 20);
75+
ItemsAdderEventListener eventListener = new ItemsAdderEventListener(plugin, aliasesGenerator);
76+
manager.registerEvents(eventListener, plugin);
8977

9078
int pluginId = 20971;
9179
Metrics metrics = new Metrics(this, pluginId);
@@ -98,32 +86,24 @@ public void run() {
9886

9987
saveDefaultConfig();
10088

101-
if (getConfig().getBoolean("check-for-updates", true))
102-
new UpdateChecker(this);
103-
10489
try {
105-
addon.loadClasses("me.asleepp.SkriptItemsAdder");
90+
addon.loadClasses("me.asleepp.SkriptItemsAdder", "elements");
10691
} catch (IOException error) {
10792
error.printStackTrace();
10893
manager.disablePlugin(this);
10994
return;
11095
}
96+
97+
if (getConfig().getBoolean("check-for-updates", true))
98+
new UpdateChecker(this);
99+
111100
long finish = System.currentTimeMillis() - start;
112101
getLogger().info("Successfully loaded skript-itemsadder in " + finish + "ms!");
113-
loading = false;
102+
eventListener.generateAliases();
114103
}
115104

116105
@Override
117106
public void onDisable() {
118107
aliasesGenerator.saveAliases();
119108
}
120-
121-
public void setItemsAdderReady(boolean ready) {
122-
this.itemsAdderReady = ready;
123-
}
124-
125-
public AliasesGenerator getAliasesGenerator() {
126-
return aliasesGenerator;
127-
}
128-
129109
}

src/main/java/me/asleepp/SkriptItemsAdder/elements/effects/EffOpenCustomInventory.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import dev.lone.itemsadder.api.FontImages.TexturedInventoryWrapper;
1414
import org.bukkit.entity.Player;
1515
import org.bukkit.event.Event;
16-
import ch.njol.skript.variables.Variables;
1716

1817
import javax.annotation.Nullable;
1918
@Name("Open ItemsAdder Inventory")

src/main/java/me/asleepp/SkriptItemsAdder/elements/effects/blocks/EffPlaceBlockOrCrop.java

Lines changed: 18 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,14 @@
1313
import ch.njol.util.Kleenean;
1414
import dev.lone.itemsadder.api.CustomBlock;
1515
import dev.lone.itemsadder.api.CustomCrop;
16-
import me.asleepp.SkriptItemsAdder.SkriptItemsAdder;
17-
import me.asleepp.SkriptItemsAdder.other.aliases.AliasesGenerator;
1816
import me.asleepp.SkriptItemsAdder.other.aliases.CustomItemType;
17+
import me.asleepp.SkriptItemsAdder.other.util.Util;
1918
import org.bukkit.Location;
2019
import org.bukkit.event.Event;
2120

2221
import javax.annotation.Nullable;
23-
import java.util.Arrays;
22+
import java.util.ArrayList;
2423
import java.util.List;
25-
import java.util.stream.Collectors;
2624

2725
@Name("Place Custom Block/Crop")
2826
@Description({"Places a custom block or crop at a location."})
@@ -34,9 +32,7 @@
3432
public class EffPlaceBlockOrCrop extends Effect {
3533
private Expression<Location> locations;
3634
private Expression<?> blockNames;
37-
private List<String> aliases;
3835
private boolean isCrop;
39-
private AliasesGenerator aliasesGenerator = SkriptItemsAdder.getInstance().getAliasesGenerator();
4036

4137
static {
4238
Skript.registerEffect(EffPlaceBlockOrCrop.class,
@@ -53,56 +49,38 @@ public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelaye
5349
blockNames = exprs[2];
5450
locations = Direction.combine((Expression<? extends Direction>) exprs[0], (Expression<? extends Location>) exprs[1]);
5551
}
56-
if (blockNames != null) {
57-
aliases = Arrays.stream(blockNames.getArray(null))
58-
.map(obj -> {
59-
if (obj instanceof CustomItemType) {
60-
return ((CustomItemType) obj).getNamespacedID();
61-
} else if (obj instanceof String) {
62-
return (String) obj;
63-
}
64-
return null;
65-
})
66-
.filter(name -> name != null)
67-
.collect(Collectors.toList());
68-
}
69-
if (parseResult.hasTag("crop"))
70-
isCrop = true;
52+
isCrop = parseResult.hasTag("crop");
7153
return true;
7254
}
7355

7456
@Override
7557
protected void execute(Event e) {
76-
if (locations == null || aliases == null || aliases.isEmpty()) {
58+
if (locations == null || blockNames == null) {
7759
return;
7860
}
7961

80-
for (Location location : locations.getArray(e)) {
81-
for (String alias : aliases) {
82-
String customBlockId = aliasesGenerator.getNamespacedId(alias);
62+
List<String> customBlockIds = new ArrayList<>();
63+
if (blockNames.isSingle()) {
64+
Object itemType = blockNames.getSingle(e);
65+
customBlockIds.add(Util.getCustomBlockId(itemType));
66+
} else {
67+
for (Object itemType : blockNames.getArray(e)) {
68+
customBlockIds.add(Util.getCustomBlockId(itemType));
69+
}
70+
}
8371

72+
for (Location location : locations.getArray(e)) {
73+
for (String customBlockId : customBlockIds) {
8474
if (customBlockId == null) {
85-
Skript.error("Invalid custom block ID: " + alias);
75+
Skript.error("Invalid custom block ID.");
8676
continue;
8777
}
8878

89-
Skript.info("Attempting to place custom block/crop with ID: " + customBlockId + " at location: " + location);
90-
9179
try {
9280
if (isCrop) {
93-
try {
94-
CustomCrop.place(customBlockId, location);
95-
Skript.info("Placed custom crop with ID: " + customBlockId + " at location: " + location);
96-
} catch (Exception ex) {
97-
Skript.error("The ID " + customBlockId + " does not correspond to a valid crop.");
98-
continue;
99-
}
81+
CustomCrop.place(customBlockId, location);
82+
Skript.info("Placed custom crop with ID: " + customBlockId + " at location: " + location);
10083
} else {
101-
if (CustomBlock.getInstance(customBlockId) == null) {
102-
Skript.error("The ID " + customBlockId + " does not correspond to a valid block.");
103-
continue;
104-
}
105-
10684
CustomBlock existingBlock = CustomBlock.byAlreadyPlaced(location.getBlock());
10785
if (existingBlock != null) {
10886
existingBlock.remove();

src/main/java/me/asleepp/SkriptItemsAdder/elements/events/blocks/EvtCustomBlockBreak.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import me.asleepp.SkriptItemsAdder.SkriptItemsAdder;
1717
import me.asleepp.SkriptItemsAdder.other.aliases.AliasesGenerator;
1818
import me.asleepp.SkriptItemsAdder.other.aliases.CustomItemType;
19+
import me.asleepp.SkriptItemsAdder.other.util.Util;
1920
import org.bukkit.Location;
2021
import org.bukkit.event.Event;
2122

@@ -59,12 +60,8 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
5960
aliases = Arrays.stream(blockNames)
6061
.map(literal -> {
6162
if (literal instanceof Literal) {
62-
Object value = ((Literal<?>) literal).getSingle();
63-
if (value instanceof CustomItemType) {
64-
return ((CustomItemType) value).getNamespacedID();
65-
} else if (value instanceof String) {
66-
return (String) value;
67-
}
63+
Object value = literal.getSingle();
64+
return Util.getCustomBlockId(value);
6865
}
6966
return null;
7067
})
@@ -87,8 +84,8 @@ public boolean check(Event event) {
8784

8885
// Check block name
8986
if (aliases != null && !aliases.isEmpty()) {
90-
String actualBlockName = customEvent.getNamespacedID();
91-
return aliases.contains(aliasesGenerator.getNamespacedId(actualBlockName));
87+
String actualBlockName = Util.getCustomBlockId(customEvent.getNamespacedID());
88+
return aliases.contains(actualBlockName);
9289
}
9390

9491
return true;

src/main/java/me/asleepp/SkriptItemsAdder/elements/events/blocks/EvtCustomBlockInteract.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import me.asleepp.SkriptItemsAdder.SkriptItemsAdder;
1717
import me.asleepp.SkriptItemsAdder.other.aliases.AliasesGenerator;
1818
import me.asleepp.SkriptItemsAdder.other.aliases.CustomItemType;
19+
import me.asleepp.SkriptItemsAdder.other.util.Util;
1920
import org.bukkit.Location;
2021
import org.bukkit.event.Event;
2122

@@ -60,12 +61,8 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
6061
aliases = Arrays.stream(blockNames)
6162
.map(literal -> {
6263
if (literal instanceof Literal) {
63-
Object value = ((Literal<?>) literal).getSingle();
64-
if (value instanceof CustomItemType) {
65-
return ((CustomItemType) value).getNamespacedID();
66-
} else if (value instanceof String) {
67-
return (String) value;
68-
}
64+
Object value = literal.getSingle();
65+
return Util.getCustomBlockId(value);
6966
}
7067
return null;
7168
})
@@ -88,8 +85,8 @@ public boolean check(Event event) {
8885

8986
// Check block name
9087
if (aliases != null && !aliases.isEmpty()) {
91-
String actualBlockName = customEvent.getNamespacedID();
92-
return aliases.contains(aliasesGenerator.getNamespacedId(actualBlockName));
88+
String actualBlockName = Util.getCustomBlockId(customEvent.getNamespacedID());
89+
return aliases.contains(actualBlockName);
9390
}
9491

9592
return true;

src/main/java/me/asleepp/SkriptItemsAdder/elements/events/blocks/EvtCustomBlockPlace.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import me.asleepp.SkriptItemsAdder.SkriptItemsAdder;
1717
import me.asleepp.SkriptItemsAdder.other.aliases.AliasesGenerator;
1818
import me.asleepp.SkriptItemsAdder.other.aliases.CustomItemType;
19+
import me.asleepp.SkriptItemsAdder.other.util.Util;
1920
import org.bukkit.Location;
2021
import org.bukkit.event.Event;
2122

@@ -33,7 +34,7 @@ public class EvtCustomBlockPlace extends SkriptEvent {
3334

3435
private Literal<?>[] blockNames;
3536
private List<String> aliases;
36-
private AliasesGenerator aliasesGenerator = SkriptItemsAdder.getInstance().getAliasesGenerator();
37+
private final AliasesGenerator aliasesGenerator = SkriptItemsAdder.getInstance().getAliasesGenerator();
3738

3839
static {
3940
Skript.registerEvent("Custom Block Place", EvtCustomBlockPlace.class, CustomBlockPlaceEvent.class, "place [of] [custom] (ia|itemsadder) block[s] [%customitemtypes/strings%]");
@@ -59,12 +60,8 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
5960
aliases = Arrays.stream(blockNames)
6061
.map(literal -> {
6162
if (literal instanceof Literal) {
62-
Object value = ((Literal<?>) literal).getSingle();
63-
if (value instanceof CustomItemType) {
64-
return ((CustomItemType) value).getNamespacedID();
65-
} else if (value instanceof String) {
66-
return (String) value;
67-
}
63+
Object value = literal.getSingle();
64+
return Util.getCustomBlockId(value);
6865
}
6966
return null;
7067
})
@@ -87,8 +84,8 @@ public boolean check(Event event) {
8784

8885
// Check block name
8986
if (aliases != null && !aliases.isEmpty()) {
90-
String actualBlockName = customEvent.getNamespacedID();
91-
return aliases.contains(aliasesGenerator.getNamespacedId(actualBlockName));
87+
String actualBlockName = Util.getCustomBlockId(customEvent.getNamespacedID());
88+
return aliases.contains(actualBlockName);
9289
}
9390

9491
return true;

src/main/java/me/asleepp/SkriptItemsAdder/elements/events/furniture/EvtCustomFurnitureBreak.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import me.asleepp.SkriptItemsAdder.SkriptItemsAdder;
1717
import me.asleepp.SkriptItemsAdder.other.aliases.AliasesGenerator;
1818
import me.asleepp.SkriptItemsAdder.other.aliases.CustomItemType;
19+
import me.asleepp.SkriptItemsAdder.other.util.Util;
1920
import org.bukkit.Location;
2021
import org.bukkit.event.Event;
2122

@@ -58,13 +59,9 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
5859
if (furnitureIDs != null) {
5960
aliases = Arrays.stream(furnitureIDs)
6061
.map(literal -> {
61-
if (literal instanceof Literal) {
62-
Object value = ((Literal<?>) literal).getSingle();
63-
if (value instanceof CustomItemType) {
64-
return ((CustomItemType) value).getNamespacedID();
65-
} else if (value instanceof String) {
66-
return (String) value;
67-
}
62+
if (literal != null) {
63+
Object value = literal.getSingle();
64+
return Util.getCustomBlockId(value);
6865
}
6966
return null;
7067
})
@@ -75,16 +72,14 @@ public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseRes
7572
}
7673

7774
@Override
78-
public boolean check(Event e) {
79-
if (e instanceof FurnitureBreakEvent) {
80-
FurnitureBreakEvent event = (FurnitureBreakEvent) e;
81-
75+
public boolean check(Event event) {
76+
if (event instanceof FurnitureBreakEvent furnEvent) {
8277
if (aliases != null && !aliases.isEmpty()) {
83-
String actualFurnitureName = event.getNamespacedID();
84-
return aliases.contains(aliasesGenerator.getNamespacedId(actualFurnitureName)) && !event.isCancelled();
78+
String actualFurnitureName = Util.getCustomBlockId(furnEvent.getNamespacedID());
79+
return aliases.contains(actualFurnitureName);
8580
}
8681

87-
return !event.isCancelled();
82+
return !furnEvent.isCancelled();
8883
}
8984
return false;
9085
}

0 commit comments

Comments
 (0)