48b6bfe2a6
Upstream has released updates that appears 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: c987938a SPIGOT-5180: Add Villager#sleep() and #wakeup() methods CraftBukkit Changes: 7f33c6a2 SPIGOT-5196: Restore previous version behaviour regarding cancelled BlockBreakEvent 6a5fc902 Improve diff in EntityHanging c98d61bf SPIGOT-4712: Allow spawning of upwards or downwards facing item frames db971477 SPIGOT-5199: Fix NPE if setting the book of the ItemMeta of a lectern b0ef3996 SPIGOT-4679 Fix black lines after book paragraphs 1215188f SPIGOT-5180: Add Villager#sleep() and #wakeup() methods c03b2bef SPIGOT-4975: NPE on WorldGenStronghold When Using Multiple Worlds 65ea162c Ensure Bukkit data pack is always up to date 0b107b8d MC-157395, SPIGOT-5193: Small armor stands do not drop loot 6da0abca SPIGOT-5195: Player loot table does not drop when keepInventory is on 8b09d983 SPIGOT-5190: Superfluous EntityCombustEvent called when using fire aspect sword Spigot Changes: 1981d553 SPIGOT-5198: Catch more bad async operations 6a14ca46 Rebuild patches
61 lines
2.9 KiB
Diff
61 lines
2.9 KiB
Diff
From bde502f65fe15b840f7ab6904827592d8dedd89c Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Sat, 13 May 2017 20:11:21 -0500
|
|
Subject: [PATCH] Add system property to disable book size limits
|
|
|
|
If anyone comes in with a watchdog crash related to books after this patch
|
|
you will not only be publicly shamed but also made an example of.
|
|
|
|
Disables the security limits on books entirely, allowing plugins AND players
|
|
to make books with as much data as they want. Do not use this without
|
|
limiting incoming data from packets in some other way.
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
|
|
index 804fe9499..7262920c1 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
|
|
@@ -36,6 +36,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
|
static final int MAX_PAGES = 100;
|
|
static final int MAX_PAGE_LENGTH = 320; // 256 limit + 64 characters to allow for psuedo colour codes
|
|
static final int MAX_TITLE_LENGTH = 32;
|
|
+ private static final boolean OVERRIDE_CHECKS = Boolean.getBoolean("disable.book-limits"); // Paper - Add override
|
|
|
|
protected String title;
|
|
protected String author;
|
|
@@ -198,7 +199,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
|
if (title == null) {
|
|
this.title = null;
|
|
return true;
|
|
- } else if (title.length() > MAX_TITLE_LENGTH) {
|
|
+ } else if (title.length() > MAX_TITLE_LENGTH && !OVERRIDE_CHECKS) { // Paper - Add override
|
|
return false;
|
|
}
|
|
|
|
@@ -238,7 +239,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
|
throw new IllegalArgumentException("Invalid page number " + page + "/" + pages.size());
|
|
}
|
|
|
|
- String newText = text == null ? "" : text.length() > MAX_PAGE_LENGTH ? text.substring(0, MAX_PAGE_LENGTH) : text;
|
|
+ String newText = text == null ? "" : text.length() > MAX_PAGE_LENGTH && !OVERRIDE_CHECKS ? text.substring(0, MAX_PAGE_LENGTH) : text;
|
|
pages.set(page - 1, CraftChatMessage.fromString(newText, true)[0]);
|
|
}
|
|
|
|
@@ -252,13 +253,13 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
|
@Override
|
|
public void addPage(final String... pages) {
|
|
for (String page : pages) {
|
|
- if (this.pages.size() >= MAX_PAGES) {
|
|
+ if (this.pages.size() >= MAX_PAGES && !OVERRIDE_CHECKS) {
|
|
return;
|
|
}
|
|
|
|
if (page == null) {
|
|
page = "";
|
|
- } else if (page.length() > MAX_PAGE_LENGTH) {
|
|
+ } else if (page.length() > MAX_PAGE_LENGTH && !OVERRIDE_CHECKS) { // Paper - Add override
|
|
page = page.substring(0, MAX_PAGE_LENGTH);
|
|
}
|
|
|
|
--
|
|
2.22.0
|
|
|