Skip to content

Commit

Permalink
places hanging event: modernize, and item context
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Aug 20, 2022
1 parent 481f43e commit 2c5bc47
Show file tree
Hide file tree
Showing 8 changed files with 18 additions and 28 deletions.
Expand Up @@ -7,7 +7,6 @@
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizen.utilities.BukkitImplDeprecations;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand Down
Expand Up @@ -6,7 +6,6 @@
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.denizencore.utilities.CoreUtilities;

public class EntityDespawnScriptEvent extends BukkitScriptEvent {

Expand Down
Expand Up @@ -4,7 +4,6 @@
import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityUnleashEvent;
Expand Down
Expand Up @@ -6,7 +6,6 @@
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizen.utilities.BukkitImplDeprecations;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand Down
@@ -1,11 +1,15 @@
package com.denizenscript.denizen.events.player;

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.objects.LocationTag;
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData;
import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand All @@ -15,10 +19,9 @@ public class PlayerPlacesHangingScriptEvent extends BukkitScriptEvent implements

// <--[event]
// @Events
// player places hanging
// player places <hanging>
//
// @Regex ^on player places [^\s]+$
// @Switch item:<item> to only process the event when the hangable item matches the given ItemTag matcher.
//
// @Group Player
//
Expand All @@ -31,31 +34,24 @@ public class PlayerPlacesHangingScriptEvent extends BukkitScriptEvent implements
// @Context
// <context.hanging> returns the EntityTag of the hanging.
// <context.location> returns the LocationTag of the block the hanging was placed on.
// <context.item> returns the ItemTag that was placed.
//
// @Player Always.
//
// -->

public PlayerPlacesHangingScriptEvent() {
instance = this;
registerCouldMatcher("player places <hanging>");
registerSwitches("item");
}

public static PlayerPlacesHangingScriptEvent instance;
public EntityTag hanging;
public ItemTag item;
public LocationTag location;
public HangingPlaceEvent event;

@Override
public boolean couldMatch(ScriptPath path) {
if (!path.eventLower.startsWith("player places")) {
return false;
}
if (!couldMatchEntity(path.eventArgLowerAt(2))) {
return false;
}
return true;
}

@Override
public boolean matches(ScriptPath path) {
String hangCheck = path.eventArgLowerAt(2);
Expand All @@ -65,6 +61,9 @@ public boolean matches(ScriptPath path) {
if (!runInCheck(path, location)) {
return false;
}
if (path.tryObjectSwitch("item", item)) {
return false;
}
return super.matches(path);
}

Expand All @@ -80,24 +79,24 @@ public ScriptEntryData getScriptEntryData() {

@Override
public ObjectTag getContext(String name) {
if (name.equals("hanging")) {
return hanging;
}
else if (name.equals("location")) {
return location;
switch (name) {
case "hanging": return hanging;
case "location": return location;
case "item": return item;
}
return super.getContext(name);
}

@EventHandler
public void pnPlayerPlacesHanging(HangingPlaceEvent event) {
public void onPlayerPlacesHanging(HangingPlaceEvent event) {
if (EntityTag.isNPC(event.getPlayer())) {
return;
}
Entity hangingEntity = event.getEntity();
EntityTag.rememberEntity(hangingEntity);
hanging = new EntityTag(hangingEntity);
location = new LocationTag(event.getBlock().getLocation());
item = NMSHandler.getVersion().isAtLeast(NMSVersion.v1_17) ? new ItemTag(event.getItemStack()) : new ItemTag(Material.AIR);
this.event = event;
fire(event);
EntityTag.forgetEntity(hangingEntity);
Expand Down
Expand Up @@ -6,13 +6,10 @@
import com.denizenscript.denizen.utilities.debugging.Debug;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.JavaReflectedObjectTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.utilities.CoreConfiguration;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizencore.utilities.ReflectionHelper;
import com.denizenscript.denizencore.utilities.debugging.VerySlowWarning;
import com.denizenscript.denizencore.utilities.debugging.Warning;
import org.bukkit.event.*;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredListener;
Expand Down
Expand Up @@ -16,7 +16,6 @@
import com.denizenscript.denizencore.objects.core.ScriptTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import org.bukkit.Bukkit;
import org.bukkit.map.MapRenderer;
import org.bukkit.map.MapView;
Expand Down
Expand Up @@ -10,7 +10,6 @@
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import org.bukkit.Bukkit;
import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarFlag;
Expand Down

0 comments on commit 2c5bc47

Please sign in to comment.