aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/stats
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/stats')
-rw-r--r--patch-remap/og/net/minecraft/stats/RecipeBookServer.patch28
-rw-r--r--patch-remap/og/net/minecraft/stats/ServerStatisticManager.patch26
-rw-r--r--patch-remap/og/net/minecraft/stats/StatisticManager.patch15
3 files changed, 69 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch b/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch
new file mode 100644
index 0000000000..82d48407a1
--- /dev/null
+++ b/patch-remap/og/net/minecraft/stats/RecipeBookServer.patch
@@ -0,0 +1,28 @@
+--- a/net/minecraft/stats/RecipeBookServer.java
++++ b/net/minecraft/stats/RecipeBookServer.java
+@@ -20,6 +20,8 @@
+ import net.minecraft.world.item.crafting.RecipeHolder;
+ import org.slf4j.Logger;
+
++import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
++
+ public class RecipeBookServer extends RecipeBook {
+
+ public static final String RECIPE_BOOK_TAG = "recipeBook";
+@@ -36,7 +38,7 @@
+ RecipeHolder<?> recipeholder = (RecipeHolder) iterator.next();
+ MinecraftKey minecraftkey = recipeholder.id();
+
+- if (!this.known.contains(minecraftkey) && !recipeholder.value().isSpecial()) {
++ if (!this.known.contains(minecraftkey) && !recipeholder.value().isSpecial() && CraftEventFactory.handlePlayerRecipeListUpdateEvent(entityplayer, minecraftkey)) { // CraftBukkit
+ this.add(minecraftkey);
+ this.addHighlight(minecraftkey);
+ list.add(minecraftkey);
+@@ -73,6 +75,7 @@
+ }
+
+ private void sendRecipes(PacketPlayOutRecipes.Action packetplayoutrecipes_action, EntityPlayer entityplayer, List<MinecraftKey> list) {
++ if (entityplayer.connection == null) return; // SPIGOT-4478 during PlayerLoginEvent
+ entityplayer.connection.send(new PacketPlayOutRecipes(packetplayoutrecipes_action, list, Collections.emptyList(), this.getBookSettings()));
+ }
+
diff --git a/patch-remap/og/net/minecraft/stats/ServerStatisticManager.patch b/patch-remap/og/net/minecraft/stats/ServerStatisticManager.patch
new file mode 100644
index 0000000000..ac3c4fffdf
--- /dev/null
+++ b/patch-remap/og/net/minecraft/stats/ServerStatisticManager.patch
@@ -0,0 +1,26 @@
+--- a/net/minecraft/stats/ServerStatisticManager.java
++++ b/net/minecraft/stats/ServerStatisticManager.java
+@@ -1,3 +1,4 @@
++// mc-dev import
+ package net.minecraft.stats;
+
+ import com.google.common.collect.Maps;
+@@ -158,13 +159,12 @@
+ }
+
+ private <T> Optional<Statistic<T>> getStat(StatisticWrapper<T> statisticwrapper, String s) {
+- Optional optional = Optional.ofNullable(MinecraftKey.tryParse(s));
+- IRegistry iregistry = statisticwrapper.getRegistry();
++ // CraftBukkit - decompile error start
++ Optional<MinecraftKey> optional = Optional.ofNullable(MinecraftKey.tryParse(s));
++ IRegistry<T> iregistry = statisticwrapper.getRegistry();
+
+- Objects.requireNonNull(iregistry);
+- optional = optional.flatMap(iregistry::getOptional);
+- Objects.requireNonNull(statisticwrapper);
+- return optional.map(statisticwrapper::get);
++ return optional.flatMap(iregistry::getOptional).map(statisticwrapper::get);
++ // CraftBukkit - decompile error end
+ }
+
+ private static NBTTagCompound fromJson(JsonObject jsonobject) {
diff --git a/patch-remap/og/net/minecraft/stats/StatisticManager.patch b/patch-remap/og/net/minecraft/stats/StatisticManager.patch
new file mode 100644
index 0000000000..118075d566
--- /dev/null
+++ b/patch-remap/og/net/minecraft/stats/StatisticManager.patch
@@ -0,0 +1,15 @@
+--- a/net/minecraft/stats/StatisticManager.java
++++ b/net/minecraft/stats/StatisticManager.java
+@@ -16,6 +16,12 @@
+ public void increment(EntityHuman entityhuman, Statistic<?> statistic, int i) {
+ int j = (int) Math.min((long) this.getValue(statistic) + (long) i, 2147483647L);
+
++ // CraftBukkit start - fire Statistic events
++ org.bukkit.event.Cancellable cancellable = org.bukkit.craftbukkit.event.CraftEventFactory.handleStatisticsIncrease(entityhuman, statistic, this.getValue(statistic), j);
++ if (cancellable != null && cancellable.isCancelled()) {
++ return;
++ }
++ // CraftBukkit end
+ this.setValue(entityhuman, statistic, j);
+ }
+