Skip to content

Commit

Permalink
Fixed equipment event failing when dropping items from open inventory…
Browse files Browse the repository at this point in the history
…, fixed not checking for placed blocks
  • Loading branch information
CJCrafter committed Jan 8, 2022
1 parent 791061c commit 1a5922c
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -238,19 +238,6 @@ private PacketPlayOutEntityMetadata getMetaPacket() {
return new PacketPlayOutEntityMetadata(entity.getId(), dataWatcher, true);
}

if (true) {
StringBuilder builder = new StringBuilder("[");
items.forEach(item -> builder.append(ChatColor.COLOR_CHAR)
.append("123456789abcdef".charAt(NumberUtil.random("123456789abcdef".length())))
.append(item.a().a())
.append("=")
.append(item.b())
.append(", "));
builder.setLength(builder.length() - 2);
builder.append(ChatColor.RESET).append("]");
Bukkit.broadcastMessage(builder.toString());
}

dataWatcher.e(); // clear dirty

// Get the current byte data
Expand Down
22 changes: 22 additions & 0 deletions MechanicsCore/src/main/java/me/deecaad/core/MechanicsCore.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package me.deecaad.core;

import me.deecaad.core.events.EntityEquipmentEvent;
import me.deecaad.core.events.triggers.EquipListener;
import me.deecaad.core.file.JarInstancer;
import me.deecaad.core.file.Serializer;
Expand All @@ -9,8 +10,14 @@
import me.deecaad.core.utils.FileUtil;
import me.deecaad.core.utils.LogLevel;
import me.deecaad.core.utils.ReflectionUtil;
import me.deecaad.core.utils.StringUtil;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.ComponentBuilder;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

Expand Down Expand Up @@ -55,6 +62,21 @@ public void onEnable() {
// don't exist in 1.10 and lower.
if (ReflectionUtil.getMCVersion() >= 11) {
Bukkit.getPluginManager().registerEvents(EquipListener.SINGLETON, this);
Bukkit.getPluginManager().registerEvents(new Listener() {
@EventHandler
public void onEquip(EntityEquipmentEvent event) {
ComponentBuilder builder = new ComponentBuilder();

if (event.isDequipping())
builder.append("Dequipping: " + StringUtil.keyToRead(event.getDequipped().getType().name()) + ", ")
.color(ChatColor.RED);
if (event.isEquipping())
builder.append("Equipping: " + StringUtil.keyToRead(event.getEquipped().getType().name()))
.color(ChatColor.GREEN);

event.getEntity().spigot().sendMessage(builder.create());
}
}, this);
}
Bukkit.getPluginManager().registerEvents(new ItemCraftListener(), this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public boolean isDequipping() {

/**
* Returns <code>true</code> if an item is being equipped to the slot.
* Note that an item may equipped at the same time one is dequipped.
* Note that an item may be equipped at the same time one is dequipped.
*
* @return <code>true</code>
* @see #isDequipping()
Expand All @@ -75,7 +75,6 @@ public boolean isEquipping() {
*
* @return The nullable previous item.
*/
@Nullable
public ItemStack getDequipped() {
return dequipped;
}
Expand All @@ -85,7 +84,6 @@ public ItemStack getDequipped() {
*
* @return The nullable currently equipped item.
*/
@Nullable
public ItemStack getEquipped() {
return equipped;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@
import me.deecaad.core.events.EntityEquipmentEvent;
import me.deecaad.core.utils.ReflectionUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerItemHeldEvent;
Expand Down Expand Up @@ -110,7 +113,7 @@ public void onCommand(PlayerCommandPreprocessEvent event) {
// into their hand).
if (commandLine.startsWith("/give") || commandLine.startsWith("/minecraft:give")) {
Listener listener = new Listener() {
@EventHandler (ignoreCancelled = true, priority = EventPriority.HIGHEST)
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onDrop(PlayerDropItemEvent event) {
if (player.equals(event.getPlayer())) {
ignoreGiveDropPlayers.add(player);
Expand All @@ -129,6 +132,13 @@ public void run() {
}
}

@EventHandler (ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onInventoryDrop(InventoryClickEvent event) {
if (event.getSlot() == -999 && !isEmpty(event.getCursor()) && event.getWhoClicked() instanceof Player) {
ignoreGiveDropPlayers.add((Player) event.getWhoClicked());
}
}

@EventHandler (priority = EventPriority.MONITOR)
public void onDrop(PlayerDropItemEvent event) {
Player player = event.getPlayer();
Expand All @@ -154,6 +164,13 @@ public void onDrop(PlayerDropItemEvent event) {
}
}

@EventHandler (ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlace(BlockPlaceEvent event) {
if (event.getItemInHand().getAmount() - 1 == 0) {
Bukkit.getPluginManager().callEvent(new EntityEquipmentEvent(event.getPlayer(), event.getHand(), new ItemStack(event.getBlockPlaced().getType()), null));
}
}

@SuppressWarnings("unchecked")
public void inject(Player player) {
Object handle = CompatibilityAPI.getCompatibility().getEntityPlayer(player);
Expand Down

0 comments on commit 1a5922c

Please sign in to comment.