mirror of https://github.com/PaperMC/Paper.git
Merge 8a0fee1d63
into 8f7ac62905
This commit is contained in:
commit
63600c15d9
|
@ -0,0 +1,65 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: chmodsayshello <chmodsayshello@hotmail.com>
|
||||
Date: Tue, 2 May 2023 18:11:50 +0200
|
||||
Subject: [PATCH] add PlayerCreateMapEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerCreateMapEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerCreateMapEvent.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..7a9a77f4c7f02369b29b1d996abd168d30d6db5f
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/event/player/PlayerCreateMapEvent.java
|
||||
@@ -0,0 +1,53 @@
|
||||
+package io.papermc.paper.event.player;
|
||||
+
|
||||
+import org.bukkit.entity.Player;
|
||||
+import org.bukkit.event.Cancellable;
|
||||
+import org.bukkit.event.HandlerList;
|
||||
+import org.bukkit.event.player.PlayerEvent;
|
||||
+import org.bukkit.inventory.ItemStack;
|
||||
+import org.jetbrains.annotations.NotNull;
|
||||
+
|
||||
+/**
|
||||
+ * Called when a player generates a new map.
|
||||
+ * This happens when right-clicking on a non filled map
|
||||
+ * <p>
|
||||
+ * Cancelling it will result in the map not getting generated.
|
||||
+ * That way the item won't convert into a filled map...
|
||||
+ */
|
||||
+public class PlayerCreateMapEvent extends PlayerEvent implements Cancellable {
|
||||
+ private boolean cancelled = false;
|
||||
+ private final ItemStack mapStack;
|
||||
+ private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||
+ public PlayerCreateMapEvent(Player player, ItemStack mapStack){
|
||||
+ super(player);
|
||||
+ this.mapStack = mapStack;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the ItemStack of the Map.
|
||||
+ *
|
||||
+ * @return ItemStack of the newly created map
|
||||
+ */
|
||||
+ public ItemStack getMapStack(){
|
||||
+ return mapStack;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean isCancelled() {
|
||||
+ return cancelled;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setCancelled(boolean cancel) {
|
||||
+ this.cancelled = cancel;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public @NotNull HandlerList getHandlers() {
|
||||
+ return HANDLER_LIST;
|
||||
+ }
|
||||
+
|
||||
+ public static HandlerList getHandlerList(){
|
||||
+ return HANDLER_LIST;
|
||||
+ }
|
||||
+}
|
|
@ -0,0 +1,33 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: chmodsayshello <chmodsayshello@hotmail.com>
|
||||
Date: Tue, 2 May 2023 18:22:35 +0200
|
||||
Subject: [PATCH] add PlayerCreateMapEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/item/EmptyMapItem.java b/src/main/java/net/minecraft/world/item/EmptyMapItem.java
|
||||
index e92bb09dd3218d5a13e6251bddd0812acadda2be..7da8084db2ad53d2d467e3b9868a523f7ce3970a 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/EmptyMapItem.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/EmptyMapItem.java
|
||||
@@ -18,13 +18,18 @@ public class EmptyMapItem extends ComplexItem {
|
||||
if (world.isClientSide) {
|
||||
return InteractionResultHolder.success(itemStack);
|
||||
} else {
|
||||
- if (!user.getAbilities().instabuild) {
|
||||
- itemStack.shrink(1);
|
||||
- }
|
||||
-
|
||||
user.awardStat(Stats.ITEM_USED.get(this));
|
||||
user.level.playSound((Player)null, user, SoundEvents.UI_CARTOGRAPHY_TABLE_TAKE_RESULT, user.getSoundSource(), 1.0F, 1.0F);
|
||||
ItemStack itemStack2 = MapItem.create(world, user.getBlockX(), user.getBlockZ(), (byte)0, true, false);
|
||||
+ // Paper start
|
||||
+ io.papermc.paper.event.player.PlayerCreateMapEvent playerCreateMapEvent = new io.papermc.paper.event.player.PlayerCreateMapEvent((org.bukkit.entity.Player) user.getBukkitEntity(), itemStack2.asBukkitCopy());
|
||||
+ world.getCraftServer().getPluginManager().callEvent(playerCreateMapEvent);
|
||||
+ if (playerCreateMapEvent.isCancelled()) {
|
||||
+ return InteractionResultHolder.consume(itemStack);
|
||||
+ } else if (!user.getAbilities().instabuild) { // Paper - moved down a couple of lines so an item gets removed only if the event wasn't cancelled!
|
||||
+ itemStack.shrink(1);
|
||||
+ }
|
||||
+ // Paper end
|
||||
if (itemStack.isEmpty()) {
|
||||
return InteractionResultHolder.consume(itemStack2);
|
||||
} else {
|
Loading…
Reference in New Issue