Skip to content

Commit a3952f2

Browse files
committed
feat(integration): Make stuff compile - Skript
1 parent 3f4c3a4 commit a3952f2

3 files changed

Lines changed: 42 additions & 50 deletions

File tree

bukkit-impl/src/main/java/dev/jsinco/brewery/bukkit/integration/event/skript/SkriptIntegration.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
import net.kyori.adventure.text.Component;
1313
import org.skriptlang.skript.addon.SkriptAddon;
1414
import org.skriptlang.skript.bukkit.lang.eventvalue.EventValueRegistry;
15-
import org.skriptlang.skript.lang.properties.PropertyRegistry;
1615

1716
import java.util.List;
1817
import java.util.Optional;
1918

2019
public class SkriptIntegration implements EventIntegration<SkriptIntegration.SkriptIntegrationEvent> {
2120

21+
public static final String NAMESPACE = "skript";
2222

2323
@Override
2424
public Class<SkriptIntegrationEvent> eClass() {
@@ -42,7 +42,7 @@ public EventData convertToData(SkriptIntegrationEvent event) {
4242

4343
@Override
4444
public String getId() {
45-
return "skript";
45+
return NAMESPACE;
4646
}
4747

4848
@Override
@@ -53,9 +53,7 @@ public boolean isEnabled() {
5353
@Override
5454
public void onLoad() {
5555
SkriptAddon skriptAddon = Skript.instance().registerAddon(TheBrewingProject.class, "TheBrewingProject-Skript");
56-
PropertyRegistry propertyRegistry = skriptAddon.registry(PropertyRegistry.class);
57-
propertyRegistry.register()
58-
TbpSyntaxRegistry tbpRegistry = skriptAddon.registry(TbpSyntaxRegistry.class, TbpSyntaxRegistry::new);
56+
TbpSkriptEventStructure.register(skriptAddon.syntaxRegistry());
5957
EventValueRegistry eventRegistry = skriptAddon.registry(EventValueRegistry.class);
6058
}
6159

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,68 @@
11
package dev.jsinco.brewery.bukkit.integration.event.skript;
22

3+
import ch.njol.skript.ScriptLoader;
34
import ch.njol.skript.Skript;
5+
import ch.njol.skript.config.SectionNode;
46
import ch.njol.skript.lang.Literal;
57
import ch.njol.skript.lang.SkriptParser;
8+
import ch.njol.skript.lang.TriggerItem;
69
import dev.jsinco.brewery.api.util.BreweryKey;
710
import net.kyori.adventure.text.Component;
11+
import net.kyori.adventure.text.minimessage.MiniMessage;
812
import org.bukkit.event.Event;
913
import org.jetbrains.annotations.Nullable;
1014
import org.jetbrains.annotations.UnknownNullability;
1115
import org.skriptlang.skript.lang.entry.EntryContainer;
1216
import org.skriptlang.skript.lang.structure.Structure;
17+
import org.skriptlang.skript.registration.DefaultSyntaxInfos;
18+
import org.skriptlang.skript.registration.SyntaxRegistry;
19+
20+
import java.util.List;
1321

1422
public class TbpSkriptEventStructure extends Structure {
1523

1624

25+
private BreweryKey key;
26+
private Component displayName;
27+
private SectionNode source;
28+
private List<TriggerItem> code;
29+
1730
@Override
1831
public String toString(@Nullable Event event, boolean debug) {
19-
return "";
32+
if (debug) {
33+
return String.format("TbpSkriptEventStructure(key='%s', displayName='%s')", key.minimalized(SkriptIntegration.NAMESPACE), MiniMessage.miniMessage().serialize(displayName));
34+
}
35+
return String.format("[tbp_]register event with key \"%s\" [and ][display ]name \"%s\"", key.minimalized(SkriptIntegration.NAMESPACE), MiniMessage.miniMessage().serialize(displayName));
2036
}
2137

2238
@Override
2339
public boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult, @UnknownNullability EntryContainer entryContainer) {
24-
BreweryKey key = null;
25-
Component displayName = null;
26-
for (Literal<?> argument : args) {
27-
Literal<? extends String> converted = argument.getConvertedExpression(String.class);
28-
if (converted == null) {
29-
Skript.error("[TBP] Could not parse argument of event; could not convert value to string.");
30-
return false;
31-
}
40+
this.key = BreweryKey.parse((String) args[0].getSingle());
41+
this.displayName = (Component) args[1].getSingle();
42+
if (entryContainer == null) {
43+
Skript.error("[TBP] Empty entry container, this event does nothing! ");
44+
return false;
3245
}
46+
this.source = entryContainer.getSource();
47+
return true;
3348
}
3449

3550
@Override
3651
public boolean load() {
37-
return false;
52+
this.code = ScriptLoader.loadItems(source);
53+
return true;
54+
}
55+
56+
public void run() {
57+
// What to do here?
58+
}
59+
60+
public static void register(SyntaxRegistry syntaxRegistry) {
61+
syntaxRegistry
62+
.register(SyntaxRegistry.Key.of("tbp_custom_event_structure"), DefaultSyntaxInfos.Structure.builder(TbpSkriptEventStructure.class)
63+
.addPattern("[tbp_]register event with key %text% [and ][display ]name %text component%")
64+
.supplier(TbpSkriptEventStructure::new)
65+
.build()
66+
);
3867
}
3968
}

bukkit-impl/src/main/java/dev/jsinco/brewery/bukkit/integration/event/skript/TbpSyntaxRegistry.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)