Skip to content

Commit 6481678

Browse files
committed
Minor cleanups to server links handling
1 parent f2a556f commit 6481678

5 files changed

Lines changed: 22 additions & 22 deletions

File tree

paper/src/main/java/com/denizenscript/denizen/paper/PaperModule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,6 @@ public static void init() {
6666
ScriptEvent.registerScriptEvent(PlayerItemTakesDamageScriptEventPaperImpl.class);
6767
ScriptEvent.registerScriptEvent(PlayerJumpsScriptEventPaperImpl.class);
6868
ScriptEvent.registerScriptEvent(PlayerLecternPageChangeScriptEvent.class);
69-
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
70-
ScriptEvent.registerScriptEvent(PlayerLinksSendScriptEvent.class);
71-
}
7269
ScriptEvent.registerScriptEvent(PlayerLoomPatternSelectScriptEvent.class);
7370
ScriptEvent.registerScriptEvent(PlayerNameEntityScriptEvent.class);
7471
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_20)) {
@@ -79,6 +76,9 @@ public static void init() {
7976
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_18)) {
8077
ScriptEvent.registerScriptEvent(PlayerRaiseLowerItemScriptEventPaperImpl.class);
8178
}
79+
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
80+
ScriptEvent.registerScriptEvent(PlayerReceivesLinksScriptEvent.class);
81+
}
8282
ScriptEvent.registerScriptEvent(PlayerSelectsStonecutterRecipeScriptEvent.class);
8383
ScriptEvent.registerScriptEvent(PlayerSetSpawnScriptEvent.class);
8484
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_20)) {

paper/src/main/java/com/denizenscript/denizen/paper/events/PlayerLinksSendScriptEvent.java renamed to paper/src/main/java/com/denizenscript/denizen/paper/events/PlayerReceivesLinksScriptEvent.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.bukkit.event.Listener;
1313
import org.bukkit.event.player.PlayerLinksSendEvent;
1414

15-
public class PlayerLinksSendScriptEvent extends BukkitScriptEvent implements Listener {
15+
public class PlayerReceivesLinksScriptEvent extends BukkitScriptEvent implements Listener {
1616

1717
// <--[event]
1818
// @Events
@@ -22,27 +22,27 @@ public class PlayerLinksSendScriptEvent extends BukkitScriptEvent implements Lis
2222
//
2323
// @Plugin Paper
2424
//
25-
// @Triggers when a player receives a list of links
25+
// @Triggers when a player receives a list of server links.
2626
//
2727
// @Determine
2828
// "LINKS:<ListTag(MapTag)>" to set the links sent to the player. Each item in the list must be a MapTag in <@link language Server Links Format>.
29-
// "ADD_LINKS:<ListTag(MapTag)>" to add to the links sent to the player. Each item in the list must be a MapTag in <@link language Server Links Format>.
29+
// "ADD_LINKS:<ListTag(MapTag)>" to send additional links to the player. Each item in the list must be a MapTag in <@link language Server Links Format>.
3030
//
3131
// @Player Always.
3232
//
33-
// @Warning this may fire early in the player login process, during which the linked player is essentially an offline player
33+
// @Warning this may fire early in the player login process, during which the linked player is essentially an offline player.
3434
//
3535
// -->
3636

3737
public PlayerLinksSendEvent event;
3838
public PlayerTag player;
3939

40-
public PlayerLinksSendScriptEvent() {
40+
public PlayerReceivesLinksScriptEvent() {
4141
registerCouldMatcher("player receives links");
42-
this.<PlayerLinksSendScriptEvent, ListTag>registerDetermination("links", ListTag.class, (evt, context, value) -> {
42+
this.<PlayerReceivesLinksScriptEvent, ListTag>registerDetermination("links", ListTag.class, (evt, context, value) -> {
4343
Utilities.replaceServerLinks(evt.event.getLinks(), value, context);
4444
});
45-
this.<PlayerLinksSendScriptEvent, ListTag>registerDetermination("add_links", ListTag.class, (evt, context, value) -> {
45+
this.<PlayerReceivesLinksScriptEvent, ListTag>registerDetermination("add_links", ListTag.class, (evt, context, value) -> {
4646
Utilities.fillServerLinks(evt.event.getLinks(), value, context);
4747
});
4848
}
@@ -54,14 +54,14 @@ public ScriptEntryData getScriptEntryData() {
5454

5555
@EventHandler
5656
public void onPlayerLinksSend(PlayerLinksSendEvent event) {
57-
if (event.getConnection() instanceof PlayerGameConnection connection) {
58-
player = new PlayerTag(connection.getPlayer());
57+
if (event.getConnection() instanceof PlayerGameConnection gameConnection) {
58+
player = new PlayerTag(gameConnection.getPlayer());
5959
}
60-
else if (event.getConnection() instanceof PlayerConfigurationConnection connection) {
61-
player = new PlayerTag(connection.getProfile().getId());
60+
else if (event.getConnection() instanceof PlayerConfigurationConnection configConnection) {
61+
player = new PlayerTag(configConnection.getProfile().getId());
6262
}
6363
else {
64-
player = null;
64+
throw new IllegalStateException("Links send event fired with unknown connection type! " + event.getConnection() + " / " + event.getConnection().getClass().getName());
6565
}
6666
this.event = event;
6767
fire(event);

plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2689,7 +2689,7 @@ else if (mechanism.requireObject(LocationTag.class)) {
26892689
// @description
26902690
// Sends the specified list of server links to the player. This will override existing links player has.
26912691
// Each item in the list must be a MapTag in <@link language Server Links Format>.
2692-
// Generally prefer <@link mechanism PlayerTag.add_links>
2692+
// Generally prefer <@link mechanism PlayerTag.add_links>.
26932693
// -->
26942694
registerOnlineOnlyMechanism("links", ListTag.class, (player, mechanism, input) -> {
26952695
player.getPlayerEntity().sendLinks(Utilities.replaceServerLinks(Bukkit.getServerLinks().copy(), input, mechanism.context));

plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2033,7 +2033,7 @@ else if (nameLow.startsWith(matchInput) && (newMatch.isOnline() == matchPlayer.i
20332033
// @input ListTag(MapTag)
20342034
// @description
20352035
// Sets the default server links. Each item in the list must be a MapTag in <@link language Server Links Format>.
2036-
// Generally prefer <@link mechanism server.add_links>
2036+
// Generally prefer <@link mechanism server.add_links>.
20372037
// -->
20382038
tagProcessor.registerMechanism("links", false, ListTag.class, (object, mechanism, input) -> {
20392039
Utilities.replaceServerLinks(Bukkit.getServerLinks(), input, mechanism.context);

plugin/src/main/java/com/denizenscript/denizen/utilities/Utilities.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -655,10 +655,10 @@ public static boolean requireEnumlike(Mechanism mechanism, Class<?> type) {
655655
// @group Minecraft Logic
656656
// @description
657657
// Server links are represented in Denizen as <@link ObjectType MapTag>s with the following keys:
658-
// - link: The address of the link.
659-
// - type: The type of the link. Valid types are listed at <@link url https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ServerLinks.Type.html>
658+
// - link: The address of the link, required.
659+
// And one of:
660+
// - type: The type of the link, valid types are listed at <@link url https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ServerLinks.Type.html>.
660661
// - display: The display name of the link.
661-
// When constructing this map, the "link" key is required. You can then optionally specify either the "type" or "display" key.
662662
// -->
663663

664664
public static ServerLinks replaceServerLinks(ServerLinks serverLinks, ListTag list, TagContext context) {
@@ -678,7 +678,7 @@ public static ServerLinks fillServerLinks(ServerLinks serverLinks, ListTag list,
678678
uri = new URI(strUri);
679679
}
680680
catch (URISyntaxException e) {
681-
Debug.echoError("Invalid server links map '" + map + "': invalid 'link' key: " + strUri);
681+
Debug.echoError("Invalid server links map '" + map + "': invalid 'link' value '" + strUri + "'.");
682682
continue;
683683
}
684684
if (map.containsKey("display")) {
@@ -687,7 +687,7 @@ public static ServerLinks fillServerLinks(ServerLinks serverLinks, ListTag list,
687687
else if (map.containsKey("type")) {
688688
ServerLinks.Type type = map.getElement("type").asEnum(ServerLinks.Type.class);
689689
if (type == null) {
690-
Debug.echoError("Invalid server links map '" + map + "': invalid 'type' key: " + map.getElement("type"));
690+
Debug.echoError("Invalid server links map '" + map + "': invalid 'type' value '" + map.getElement("type") + "'.");
691691
continue;
692692
}
693693
serverLinks.addLink(type, uri);

0 commit comments

Comments
 (0)