Skip to content

Commit

Permalink
context.hand tag for PlayerConsumesScriptEvent (#2534)
Browse files Browse the repository at this point in the history
* add base context.hand

* use modern switch method, version check maybe

* use modern switch expr, add meta

* improve meta entry
  • Loading branch information
0tickpulse committed Sep 10, 2023
1 parent 4b8fc6a commit cdb9d17
Showing 1 changed file with 11 additions and 6 deletions.
@@ -1,14 +1,17 @@
package com.denizenscript.denizen.events.player;

import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.nms.NMSHandler;
import com.denizenscript.denizen.nms.NMSVersion;
import com.denizenscript.denizen.objects.EntityTag;
import com.denizenscript.denizen.objects.ItemTag;
import com.denizenscript.denizen.tags.BukkitTagContext;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData;
import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ScriptTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemConsumeEvent;
Expand All @@ -32,6 +35,7 @@ public class PlayerConsumesScriptEvent extends BukkitScriptEvent implements List
//
// @Context
// <context.item> returns the ItemTag.
// <context.hand> returns an ElementTag of the hand being used to consume the item. Can be either HAND or OFF_HAND. Requires a 1.19+ server.
//
// @Determine
// ItemTag to change the item being consumed.
Expand Down Expand Up @@ -95,10 +99,11 @@ public ScriptEntryData getScriptEntryData() {

@Override
public ObjectTag getContext(String name) {
if (name.equals("item")) {
return item;
}
return super.getContext(name);
return switch (name) {
case "item" -> item;
case "hand" -> NMSHandler.getVersion().isAtLeast(NMSVersion.v1_19) ? new ElementTag(event.getHand()) : null;
default -> super.getContext(name);
};
}

@EventHandler
Expand Down

0 comments on commit cdb9d17

Please sign in to comment.