mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
1358d1e914
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 881e06e5 PR-725: Add Item Unlimited Lifetime APIs CraftBukkit Changes: 74c08312 SPIGOT-6962: Call EntityChangeBlockEvent when when FallingBlockEntity starts to fall 64db5126 SPIGOT-6959: Make /loot command ignore empty items for spawn 2d760831 Increase outdated build delay 9ed7e4fb SPIGOT-6138, SPIGOT-6415: Don't call CreatureSpawnEvent after cross-dimensional travel fc4ad813 SPIGOT-6895: Trees grown with applyBoneMeal() don't fire the StructureGrowthEvent 59733a2e SPIGOT-6961: Actually return a copy of the ItemMeta Spigot Changes: ffceeae3 SPIGOT-6956: Drop unload queue patch as attempt at fixing stop issue e19ddabd PR-1011: Add Item Unlimited Lifetime APIs 34d40b0e SPIGOT-2942: give command fires PlayerDropItemEvent, cancelling it causes Item Duplication
83 lines
5.3 KiB
Diff
83 lines
5.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Fri, 4 Jun 2021 12:12:35 -0700
|
|
Subject: [PATCH] Make item validations configurable
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
index fae61ada619d86b6721c7a57fecd485188919a25..3d1319af2dbade4234025793303333cb95d9c019 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
@@ -506,4 +506,19 @@ public class PaperConfig {
|
|
config.set("settings.unsupported-settings.allow-headless-pistons-readme", "This setting controls if players should be able to create headless pistons.");
|
|
allowHeadlessPistons = getBoolean("settings.unsupported-settings.allow-headless-pistons", false);
|
|
}
|
|
+
|
|
+ public static int itemValidationDisplayNameLength = 8192;
|
|
+ public static int itemValidationLocNameLength = 8192;
|
|
+ public static int itemValidationLoreLineLength = 8192;
|
|
+ public static int itemValidationBookTitleLength = 8192;
|
|
+ public static int itemValidationBookAuthorLength = 8192;
|
|
+ public static int itemValidationBookPageLength = 16384;
|
|
+ private static void itemValidationSettings() {
|
|
+ itemValidationDisplayNameLength = getInt("settings.item-validation.display-name", itemValidationDisplayNameLength);
|
|
+ itemValidationLocNameLength = getInt("settings.item-validation.loc-name", itemValidationLocNameLength);
|
|
+ itemValidationLoreLineLength = getInt("settings.item-validation.lore-line", itemValidationLoreLineLength);
|
|
+ itemValidationBookTitleLength = getInt("settings.item-validation.book.title", itemValidationBookTitleLength);
|
|
+ itemValidationBookAuthorLength = getInt("settings.item-validation.book.author", itemValidationBookAuthorLength);
|
|
+ itemValidationBookPageLength = getInt("settings.item-validation.book.page", itemValidationBookPageLength);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
|
|
index 0f753f4868141ecc383877ea3a666a383f2e3339..ebb643fc0477409d1efb4e9af59675045fa6b8bb 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
|
|
@@ -92,11 +92,11 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
|
super(tag);
|
|
|
|
if (tag.contains(BOOK_TITLE.NBT)) {
|
|
- this.title = limit( tag.getString(BOOK_TITLE.NBT), 8192 ); // Spigot
|
|
+ this.title = limit( tag.getString(BOOK_TITLE.NBT), com.destroystokyo.paper.PaperConfig.itemValidationBookTitleLength); // Spigot // Paper - make configurable
|
|
}
|
|
|
|
if (tag.contains(BOOK_AUTHOR.NBT)) {
|
|
- this.author = limit( tag.getString(BOOK_AUTHOR.NBT), 8192 ); // Spigot
|
|
+ this.author = limit( tag.getString(BOOK_AUTHOR.NBT), com.destroystokyo.paper.PaperConfig.itemValidationBookAuthorLength ); // Spigot // Paper - make configurable
|
|
}
|
|
|
|
if (tag.contains(RESOLVED.NBT)) {
|
|
@@ -124,7 +124,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
|
} else {
|
|
page = this.validatePage(page);
|
|
}
|
|
- this.pages.add( limit( page, 16384 ) ); // Spigot
|
|
+ this.pages.add( limit( page, com.destroystokyo.paper.PaperConfig.itemValidationBookPageLength ) ); // Spigot // Paper - make configurable
|
|
}
|
|
}
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
|
index 9486dc1c1ec5d997d53277ede2f85e9df153939e..9ce647730d9f7aa121e13f2ba00037fc18625efd 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
|
@@ -357,18 +357,18 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
|
|
CompoundTag display = tag.getCompound(DISPLAY.NBT);
|
|
|
|
if (display.contains(NAME.NBT)) {
|
|
- this.displayName = limit( display.getString(NAME.NBT), 8192 ); // Spigot
|
|
+ this.displayName = limit( display.getString(NAME.NBT), com.destroystokyo.paper.PaperConfig.itemValidationDisplayNameLength ); // Spigot // Paper - make configurable
|
|
}
|
|
|
|
if (display.contains(LOCNAME.NBT)) {
|
|
- this.locName = limit( display.getString(LOCNAME.NBT), 8192 ); // Spigot
|
|
+ this.locName = limit( display.getString(LOCNAME.NBT), com.destroystokyo.paper.PaperConfig.itemValidationLocNameLength ); // Spigot // Paper - make configurable
|
|
}
|
|
|
|
if (display.contains(LORE.NBT)) {
|
|
ListTag list = display.getList(LORE.NBT, CraftMagicNumbers.NBT.TAG_STRING);
|
|
this.lore = new ArrayList<String>(list.size());
|
|
for (int index = 0; index < list.size(); index++) {
|
|
- String line = limit( list.getString(index), 8192 ); // Spigot
|
|
+ String line = limit( list.getString(index), com.destroystokyo.paper.PaperConfig.itemValidationLoreLineLength ); // Spigot // Paper - make configurable
|
|
this.lore.add(line);
|
|
}
|
|
}
|