2015-02-23 22:03:10 +01:00
|
|
|
From b7a7da6495b1dab1ef146167cfc36203b44d7d4a Mon Sep 17 00:00:00 2001
|
2014-12-01 01:59:49 +01:00
|
|
|
From: Byteflux <byte@byteflux.net>
|
|
|
|
Date: Sun, 30 Nov 2014 18:58:07 -0600
|
|
|
|
Subject: [PATCH] Allow specified ItemStacks to retain their invalid data
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
2015-02-23 22:03:10 +01:00
|
|
|
index 169706e..fa6178b 100644
|
2014-12-01 01:59:49 +01:00
|
|
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
|
|
|
@@ -17,6 +17,8 @@ import org.bukkit.entity.Player;
|
|
|
|
import org.bukkit.event.world.StructureGrowEvent;
|
|
|
|
// CraftBukkit end
|
|
|
|
|
|
|
|
+import org.github.paperspigot.PaperSpigotConfig; // PaperSpigot
|
|
|
|
+
|
|
|
|
public final class ItemStack {
|
|
|
|
|
|
|
|
public static final DecimalFormat a = new DecimalFormat("#.###");
|
2015-02-02 23:10:54 +01:00
|
|
|
@@ -304,9 +306,13 @@ public final class ItemStack {
|
2014-12-01 01:59:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Is this a block?
|
|
|
|
- if (CraftMagicNumbers.getBlock(CraftMagicNumbers.getId(this.getItem())) != Blocks.AIR) {
|
|
|
|
+ // PaperSpigot start - Allow specific blocks to retain their data values
|
|
|
|
+ int id = CraftMagicNumbers.getId(this.getItem());
|
|
|
|
+ if (CraftMagicNumbers.getBlock(id) != Blocks.AIR) {
|
|
|
|
// If vanilla doesn't use data on it don't allow any
|
|
|
|
- if (!(this.usesData() || this.getItem().usesDurability())) {
|
|
|
|
+ if ((PaperSpigotConfig.dataValueAllowedItems == null || !PaperSpigotConfig.dataValueAllowedItems.contains(id)) &&
|
|
|
|
+ (!(this.usesData() || this.getItem().usesDurability()))) {
|
|
|
|
+ // PaperSpigot end
|
|
|
|
i = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
|
|
|
index a7b18e4..01cd24a 100644
|
|
|
|
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
|
|
|
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
|
|
|
@@ -6,11 +6,10 @@ import java.io.IOException;
|
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
|
import java.lang.reflect.Method;
|
|
|
|
import java.lang.reflect.Modifier;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
+import java.util.*;
|
|
|
|
import java.util.logging.Level;
|
|
|
|
import net.minecraft.server.MinecraftServer;
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.command.Command;
|
|
|
|
import org.bukkit.configuration.InvalidConfigurationException;
|
|
|
|
@@ -169,4 +168,11 @@ public class PaperSpigotConfig
|
|
|
|
strengthEffectModifier = getDouble( "effect-modifiers.strength", 1.3D );
|
|
|
|
weaknessEffectModifier = getDouble( "effect-modifiers.weakness", -0.5D );
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ public static Set<Integer> dataValueAllowedItems;
|
|
|
|
+ private static void dataValueAllowedItems()
|
|
|
|
+ {
|
|
|
|
+ dataValueAllowedItems = new HashSet<Integer>( getList( "data-value-allowed-items", Collections.emptyList() ) );
|
|
|
|
+ Bukkit.getLogger().info( "Data value allowed items: " + StringUtils.join(dataValueAllowedItems, ", ") );
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
--
|
2015-01-29 22:26:20 +01:00
|
|
|
1.9.5.msysgit.0
|
2014-12-01 01:59:49 +01:00
|
|
|
|