-
-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathSuperiorSkyblockBridge.java
More file actions
82 lines (71 loc) · 3.77 KB
/
SuperiorSkyblockBridge.java
File metadata and controls
82 lines (71 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.denizenscript.depenizen.bukkit.bridges;
import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import com.denizenscript.denizen.objects.PlayerTag;
import com.denizenscript.denizencore.events.ScriptEvent;
import com.denizenscript.denizencore.objects.ObjectFetcher;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.tags.PseudoObjectTagBase;
import com.denizenscript.denizencore.tags.TagManager;
import com.denizenscript.depenizen.bukkit.Bridge;
import com.denizenscript.depenizen.bukkit.events.superiorskyblock.*;
import com.denizenscript.depenizen.bukkit.objects.superiorskyblock.SuperiorSkyblockIslandTag;
import com.denizenscript.depenizen.bukkit.properties.superiorskyblock.*;
public class SuperiorSkyblockBridge extends Bridge {
public static SuperiorPlayer getSuperiorPlayer(PlayerTag player) {
return SuperiorSkyblockAPI.getPlayer(player.getUUID());
}
static class SuperiorSkyblockTagBase extends PseudoObjectTagBase<SuperiorSkyblockTagBase> {
public static SuperiorSkyblockTagBase instance;
public SuperiorSkyblockTagBase() {
instance = this;
TagManager.registerStaticTagBaseHandler(SuperiorSkyblockTagBase.class, "superiorskyblock", (t) -> instance);
}
public void register() {
// <--[tag]
// @attribute <superiorskyblock.list_islands>
// @returns ListTag(SuperiorSkyblockIslandTag)
// @plugin Depenizen, SuperiorSkyblock
// @description
// Returns a list of all islands, excluding the spawn island.
// -->
tagProcessor.registerTag(ListTag.class, "list_islands", (attribute, object) -> {
return new ListTag(SuperiorSkyblockAPI.getGrid().getIslands(), SuperiorSkyblockIslandTag::new);
});
// <--[tag]
// @attribute <superiorskyblock.spawn_island>
// @returns SuperiorSkyblockIslandTag
// @plugin Depenizen, SuperiorSkyblock
// @description
// Returns the spawn island.
// -->
tagProcessor.registerTag(SuperiorSkyblockIslandTag.class, "spawn_island", (attribute, object) -> {
return new SuperiorSkyblockIslandTag(SuperiorSkyblockAPI.getSpawnIsland());
});
}
}
@Override
public void init() {
ScriptEvent.registerScriptEvent(SuperiorSkyblockIslandCreatedScriptEvent.class);
ScriptEvent.registerScriptEvent(SuperiorSkyblockIslandDisbandedScriptEvent.class);
ScriptEvent.registerScriptEvent(SuperiorSkyblockIslandInviteScriptEvent.class);
ScriptEvent.registerScriptEvent(SuperiorSkyblockIslandJoinScriptEvent.class);
ScriptEvent.registerScriptEvent(SuperiorSkyblockIslandKickScriptEvent.class);
ScriptEvent.registerScriptEvent(SuperiorSkyblockPlayerLeavesIslandScriptEvent.class);
SuperiorSkyblockLocationExtensions.register();
SuperiorSkyblockPlayerExtensions.register();
ObjectFetcher.registerWithObjectFetcher(SuperiorSkyblockIslandTag.class, SuperiorSkyblockIslandTag.tagProcessor);
new SuperiorSkyblockTagBase();
// <--[tag]
// @attribute <superiorskyblock_island[<uuid>]>
// @returns SuperiorSkyblockIslandTag
// @plugin Depenizen, SuperiorSkyblock
// @description
// Returns the superiorskyblock island tag with the given uuid.
// Refer to <@link objecttype SuperiorSkyblockIslandTag> for more information.
// -->
TagManager.registerTagHandler(SuperiorSkyblockIslandTag.class, SuperiorSkyblockIslandTag.class, "superiorskyblock_island", (attribute, param) -> {
return param;
});
}
}