More reduce allocs I guess
This commit is contained in:
@@ -357,7 +357,6 @@ index 0ecac76577eb440a0c3104ef4603acec826c474d..4813bd6de894d0566e8631d8c71915c3
|
||||
}
|
||||
|
||||
// Yatopia start - Last tick time API
|
||||
|
||||
diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
||||
index a8d9ef7a7fcdfcab468594664d352702ee25406e..3da87aeb0ea91096a00c9acd19ca8cbb4c209d53 100644
|
||||
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: JellySquid <jellysquid+atwork@protonmail.com>
|
||||
Date: Wed, 23 Sep 2020 16:33:58 +0200
|
||||
Subject: [PATCH] lithium: tag
|
||||
|
||||
Original code by CaffeineMC, licensed under GNU Lesser General Public License v3.0
|
||||
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/tags/SetTag.java b/src/main/java/net/minecraft/tags/SetTag.java
|
||||
index d0c4a1dd2b11cfdbd3972dec5b5622e2f013ab48..9444e3dcdf3fa307c93adb2f790876fcd9ad88e7 100644
|
||||
--- a/src/main/java/net/minecraft/tags/SetTag.java
|
||||
+++ b/src/main/java/net/minecraft/tags/SetTag.java
|
||||
@@ -3,6 +3,8 @@ package net.minecraft.tags;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
+import it.unimi.dsi.fastutil.objects.ReferenceArraySet; // Mirai
|
||||
+import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // Mirai
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -14,8 +16,14 @@ public class SetTag<T> implements Tag<T> {
|
||||
|
||||
protected SetTag(Set<T> values, Class<?> type) {
|
||||
this.closestCommonSuperType = type;
|
||||
- this.values = values;
|
||||
this.valuesList = ImmutableList.copyOf(values);
|
||||
+ // Mirai start
|
||||
+ if (values.size() <= 3) {
|
||||
+ this.values = new ReferenceArraySet<>(values);
|
||||
+ } else {
|
||||
+ this.values = new ReferenceOpenHashSet<>(values);
|
||||
+ }
|
||||
+ // Mirai end
|
||||
}
|
||||
|
||||
public static <T> SetTag<T> empty() {
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: JellySquid <jellysquid+atwork@protonmail.com>
|
||||
Date: Wed, 23 Sep 2020 16:33:58 +0200
|
||||
Subject: [PATCH] lithium: tag
|
||||
|
||||
Original code by CaffeineMC, licensed under GNU Lesser General Public License v3.0
|
||||
You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/tags/SetTag.java b/src/main/java/net/minecraft/tags/SetTag.java
|
||||
index d0c4a1dd2b11cfdbd3972dec5b5622e2f013ab48..9444e3dcdf3fa307c93adb2f790876fcd9ad88e7 100644
|
||||
--- a/src/main/java/net/minecraft/tags/SetTag.java
|
||||
+++ b/src/main/java/net/minecraft/tags/SetTag.java
|
||||
@@ -3,6 +3,8 @@ package net.minecraft.tags;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
+import it.unimi.dsi.fastutil.objects.ReferenceArraySet; // Mirai
|
||||
+import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // Mirai
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -14,8 +16,14 @@ public class SetTag<T> implements Tag<T> {
|
||||
|
||||
protected SetTag(Set<T> values, Class<?> type) {
|
||||
this.closestCommonSuperType = type;
|
||||
- this.values = values;
|
||||
this.valuesList = ImmutableList.copyOf(values);
|
||||
+ // Mirai start
|
||||
+ if (values.size() <= 3) {
|
||||
+ this.values = new ReferenceArraySet<>(values);
|
||||
+ } else {
|
||||
+ this.values = new ReferenceOpenHashSet<>(values);
|
||||
+ }
|
||||
+ // Mirai end
|
||||
}
|
||||
|
||||
public static <T> SetTag<T> empty() {
|
||||
|
||||
224
patches/server/0092-Set-some-strings-to-use-new-String-0.patch
Normal file
224
patches/server/0092-Set-some-strings-to-use-new-String-0.patch
Normal file
@@ -0,0 +1,224 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Etil <81570777+etil2jz@users.noreply.github.com>
|
||||
Date: Thu, 6 Jan 2022 18:36:03 +0100
|
||||
Subject: [PATCH] Set some strings to use `new String[0]`
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
|
||||
index 08fdb681a68e8be6e4062af0630957ce3e524806..d53550918418a456d9112e0b04a7671161044862 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java
|
||||
@@ -40,7 +40,7 @@ public class PaperGameProfileRepository extends YggdrasilGameProfileRepository {
|
||||
|
||||
// Some things were not found.... Proceed to look up.
|
||||
if (!unfoundNames.isEmpty()) {
|
||||
- String[] namesArr = unfoundNames.toArray(new String[unfoundNames.size()]);
|
||||
+ String[] namesArr = unfoundNames.toArray(me.titaniumtown.Constants.EMPTY_string_arr);
|
||||
super.findProfilesByNames(namesArr, agent, new PreProfileLookupCallback(callback));
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 4f8c0c69a7492ba183f436d4062df177d9c7a9ec..c4be1526230b4ea88d5fb4e9c0f1d0b79803254b 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1000,23 +1000,23 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
- private boolean hasStopped = false;
|
||||
+ private final java.util.concurrent.atomic.AtomicBoolean hasStopped = new java.util.concurrent.atomic.AtomicBoolean(false); // Mirai - use AtomicBoolean
|
||||
public volatile boolean hasFullyShutdown = false; // Paper
|
||||
private boolean hasLoggedStop = false; // Paper
|
||||
- private final Object stopLock = new Object();
|
||||
+ //private final Object stopLock = new Object();
|
||||
public final boolean hasStopped() {
|
||||
- synchronized (this.stopLock) {
|
||||
- return this.hasStopped;
|
||||
- }
|
||||
+ return hasStopped.get(); // Mirai
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
public void stopServer() {
|
||||
// CraftBukkit start - prevent double stopping on multiple threads
|
||||
- synchronized(this.stopLock) {
|
||||
- if (this.hasStopped) return;
|
||||
- this.hasStopped = true;
|
||||
- }
|
||||
+ // Mirai start
|
||||
+ //synchronized(stopLock) {
|
||||
+ if (hasStopped.get()) return;
|
||||
+ hasStopped.set(true);
|
||||
+ //}
|
||||
+ // Mirai end
|
||||
if (!hasLoggedStop && isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper
|
||||
// Paper start - kill main thread, and kill it hard
|
||||
shutdownThread = Thread.currentThread();
|
||||
@@ -1382,7 +1382,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
@Override
|
||||
public Runnable wrapRunnable(Runnable runnable) { // Patina
|
||||
// Paper start - anything that does try to post to main during watchdog crash, run on watchdog
|
||||
- if (this.hasStopped && Thread.currentThread().equals(shutdownThread)) {
|
||||
+ if (this.hasStopped.get() && Thread.currentThread().equals(shutdownThread)) { // Mirai
|
||||
runnable.run();
|
||||
runnable = () -> {};
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index d2b103d94fd020295624da2eeb07653f585b586c..5d127532af7a318c3e17c407478f56247b842f23 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -907,7 +907,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
MutableBoolean mutableboolean = new MutableBoolean();
|
||||
|
||||
do {
|
||||
- boolean isShuttingDown = level.getServer().hasStopped(); // Paper
|
||||
+ //boolean isShuttingDown = level.getServer().hasStopped(); // Paper // Mirai - unused local variable
|
||||
mutableboolean.setFalse();
|
||||
list.stream().map((playerchunk) -> {
|
||||
CompletableFuture completablefuture;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 35c1604ff678a5344bc9de824eb2788561d2dcaf..f7e11cb3ef22d336cf14a6f0573e87426532cf94 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1512,9 +1512,6 @@ public class ServerLevel extends Level implements WorldGenLevel, IServerWorld {
|
||||
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
|
||||
|
||||
if (entityplayer != null && entityplayer.level == this && entityplayer.getId() != entityId) {
|
||||
- double d0 = (double) pos.getX() - entityplayer.getX();
|
||||
- double d1 = (double) pos.getY() - entityplayer.getY();
|
||||
- double d2 = (double) pos.getZ() - entityplayer.getZ();
|
||||
|
||||
// CraftBukkit start
|
||||
if (entityhuman != null && !entityplayer.getBukkitEntity().canSee(entityhuman.getBukkitEntity())) {
|
||||
@@ -1522,6 +1519,11 @@ public class ServerLevel extends Level implements WorldGenLevel, IServerWorld {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
+ // Mirai - moved from above
|
||||
+ double d0 = (double) pos.getX() - entityplayer.getX();
|
||||
+ double d1 = (double) pos.getY() - entityplayer.getY();
|
||||
+ double d2 = (double) pos.getZ() - entityplayer.getZ();
|
||||
+
|
||||
if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) {
|
||||
entityplayer.connection.send(new ClientboundBlockDestructionPacket(entityId, pos, progress));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/players/OldUsersConverter.java b/src/main/java/net/minecraft/server/players/OldUsersConverter.java
|
||||
index 5445cb5910ec63408dc4379eec5e12d305182527..eefcf3f2073ba39ba8bba71850a48ae584224a57 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/OldUsersConverter.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/OldUsersConverter.java
|
||||
@@ -330,7 +330,7 @@ public class OldUsersConverter {
|
||||
}
|
||||
|
||||
try {
|
||||
- final String[] astring = (String[]) list.toArray(new String[list.size()]);
|
||||
+ final String[] astring = (String[]) list.toArray(me.titaniumtown.Constants.EMPTY_string_arr);
|
||||
ProfileLookupCallback profilelookupcallback = new ProfileLookupCallback() {
|
||||
public void onProfileLookupSucceeded(GameProfile gameprofile) {
|
||||
minecraftServer.getProfileCache().add(gameprofile);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 9d9d76c4f44a8c2421d560de9e3eac9ae26290cf..04efe836d6bfb874d4fb4eb53121d3a6fc8ec18a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1574,7 +1574,7 @@ public final class CraftServer implements Server {
|
||||
commands = ImmutableList.of(section.getString(key));
|
||||
}
|
||||
|
||||
- result.put(key, commands.toArray(new String[commands.size()]));
|
||||
+ result.put(key, commands.toArray(me.titaniumtown.Constants.EMPTY_string_arr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2027,7 +2027,7 @@ public final class CraftServer implements Server {
|
||||
|
||||
players.addAll(this.getOnlinePlayers());
|
||||
|
||||
- return players.toArray(new OfflinePlayer[players.size()]);
|
||||
+ return players.toArray(new OfflinePlayer[0]); // Mirai - use non-pre-sized array
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 6a72d883029f4b69395afffcb3e2ac36fe41942a..96f443bb00ccc26e5d0652187dcd0448ea1e298c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -1809,7 +1809,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
|
||||
@Override
|
||||
public String[] getGameRules() {
|
||||
- return CraftWorld.getGameRulesNMS().keySet().toArray(new String[CraftWorld.getGameRulesNMS().size()]);
|
||||
+ return CraftWorld.getGameRulesNMS().keySet().toArray(me.titaniumtown.Constants.EMPTY_string_arr);
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
index b39117c4505926da0be9c8248964a233393e8e2d..c3bd2f966c5fc3ab51d36649f8f0b02ae9f1e18e 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
@@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
+import java.util.Collections; // Mirai
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import net.minecraft.core.BlockPos;
|
||||
@@ -622,7 +623,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
|
||||
@Override
|
||||
public boolean discoverRecipe(NamespacedKey recipe) {
|
||||
- return this.discoverRecipes(Arrays.asList(recipe)) != 0;
|
||||
+ return this.discoverRecipes(Collections.singletonList(recipe)) != 0; // Mirai - use singletonList
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -632,7 +633,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
|
||||
@Override
|
||||
public boolean undiscoverRecipe(NamespacedKey recipe) {
|
||||
- return this.undiscoverRecipes(Arrays.asList(recipe)) != 0;
|
||||
+ return this.undiscoverRecipes(Collections.singletonList(recipe)) != 0; // Mirai - use singleton list
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/help/MultipleCommandAliasHelpTopic.java b/src/main/java/org/bukkit/craftbukkit/help/MultipleCommandAliasHelpTopic.java
|
||||
index 3233ffe920c961f04045713232d90249b950db67..10566f504bebbcdf861b4bc9abf4edc6e4c20545 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/help/MultipleCommandAliasHelpTopic.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/help/MultipleCommandAliasHelpTopic.java
|
||||
@@ -23,7 +23,7 @@ public class MultipleCommandAliasHelpTopic extends HelpTopic {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < alias.getCommands().length; i++) {
|
||||
if (i != 0) {
|
||||
- sb.append(ChatColor.GOLD + " > " + ChatColor.WHITE);
|
||||
+ sb.append(ChatColor.GOLD).append(" > ").append(ChatColor.WHITE); // Mirai - chain .append call instead of using +
|
||||
}
|
||||
sb.append("/");
|
||||
sb.append(alias.getCommands()[i].getLabel());
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
|
||||
index 6e8edc80dd7dfa867901769fda82706746f1bcc5..2e346c516b1fabc23077250305218c48f9f2e0c2 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
|
||||
@@ -169,7 +169,7 @@ public final class CraftChatMessage {
|
||||
this.appendNewComponent(message.length());
|
||||
}
|
||||
|
||||
- this.output = this.list.toArray(new Component[this.list.size()]);
|
||||
+ this.output = this.list.toArray(new Component[0]); // Mirai - use non-pre-sized array
|
||||
}
|
||||
|
||||
private void appendNewComponent(int index) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
||||
index 049d750d3af991dd14ac8cf644330404e74b2151..eaad5c3a4a7f2303bc7b1964eedfeeb3db6d70f0 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
||||
@@ -175,10 +175,6 @@ public final class WeakCollection<T> implements Collection<T> {
|
||||
}
|
||||
|
||||
private Collection<T> toCollection() {
|
||||
- ArrayList<T> collection = new ArrayList<T>();
|
||||
- for (T value : this) {
|
||||
- collection.add(value);
|
||||
- }
|
||||
- return collection;
|
||||
+ return new ArrayList<>(this); // Mirai - just clone
|
||||
}
|
||||
}
|
||||
153
patches/server/0093-Add-new-Object-0-to-reduce-allocs.patch
Normal file
153
patches/server/0093-Add-new-Object-0-to-reduce-allocs.patch
Normal file
@@ -0,0 +1,153 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Etil <81570777+etil2jz@users.noreply.github.com>
|
||||
Date: Thu, 6 Jan 2022 18:48:10 +0100
|
||||
Subject: [PATCH] Add `new Object[0]` to `reduce allocs`
|
||||
|
||||
|
||||
diff --git a/src/main/java/me/titaniumtown/Constants.java b/src/main/java/me/titaniumtown/Constants.java
|
||||
index 9ede2f067eacc1d418a8d6223f4052b81410d3b3..13a710a6d517a229b8c5679f40cffa3924dc791b 100644
|
||||
--- a/src/main/java/me/titaniumtown/Constants.java
|
||||
+++ b/src/main/java/me/titaniumtown/Constants.java
|
||||
@@ -19,4 +19,5 @@ public final class Constants {
|
||||
public static final long[] EMPTY_long_arr = new long[0];
|
||||
public static final org.bukkit.entity.Entity[] EMPTY_bukkit_entity_arr = new org.bukkit.entity.Entity[0];
|
||||
public static final net.minecraft.world.entity.Entity[] EMPTY_entity_arr = new net.minecraft.world.entity.Entity[0];
|
||||
+ public static final Object[] EMPTY_object_arr = new Object[0];
|
||||
}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
|
||||
index 81dde0efc1a06420c0791520b9e40b24dd1f0318..371dd89f91f5b53e7d31155e22a4f29be37f9f5f 100644
|
||||
--- a/src/main/java/net/minecraft/network/Connection.java
|
||||
+++ b/src/main/java/net/minecraft/network/Connection.java
|
||||
@@ -282,7 +282,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
}
|
||||
|
||||
public void setListener(PacketListener listener) {
|
||||
- Validate.notNull(listener, "packetListener", new Object[0]);
|
||||
+ Validate.notNull(listener, "packetListener", me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
this.packetListener = listener;
|
||||
}
|
||||
// Paper start
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index c4be1526230b4ea88d5fb4e9c0f1d0b79803254b..aa3ff176137a9dd68aa11389bcaaf3e43bb6e4e5 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1443,8 +1443,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
try {
|
||||
BufferedImage bufferedimage = ImageIO.read(file);
|
||||
|
||||
- Validate.validState(bufferedimage.getWidth() == 64, "Must be 64 pixels wide", new Object[0]);
|
||||
- Validate.validState(bufferedimage.getHeight() == 64, "Must be 64 pixels high", new Object[0]);
|
||||
+ Validate.validState(bufferedimage.getWidth() == 64, "Must be 64 pixels wide", me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
+ Validate.validState(bufferedimage.getHeight() == 64, "Must be 64 pixels high", me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
|
||||
|
||||
ImageIO.write(bufferedimage, "PNG", bytearrayoutputstream);
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 9570706dcb5218f03766c0dd9ecd371992ad29ce..378d03f53f7de378bb7fc70c5accdbde402b9e73 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -378,7 +378,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
if (this.keepAlivePending) {
|
||||
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
||||
- this.disconnect(new TranslatableComponent("disconnect.timeout", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause
|
||||
+ this.disconnect(new TranslatableComponent("disconnect.timeout", me.titaniumtown.Constants.EMPTY_object_arr), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause
|
||||
}
|
||||
} else {
|
||||
if (elapsedTime >= 15000L) { // 15 seconds
|
||||
@@ -815,13 +815,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
// PlayerConnectionUtils.ensureMainThread(packetplayintabcomplete, this, this.player.getWorldServer()); // Paper - run this async
|
||||
// CraftBukkit start
|
||||
if (this.chatSpamTickCount.addAndGet(com.destroystokyo.paper.PaperConfig.tabSpamIncrement) > com.destroystokyo.paper.PaperConfig.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable
|
||||
- server.scheduleOnMain(() -> this.disconnect(new TranslatableComponent("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
|
||||
+ server.scheduleOnMain(() -> this.disconnect(new TranslatableComponent("disconnect.spam", me.titaniumtown.Constants.EMPTY_object_arr), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
|
||||
return;
|
||||
}
|
||||
// Paper start
|
||||
String str = packet.getCommand(); int index = -1;
|
||||
if (str.length() > 64 && ((index = str.indexOf(' ')) == -1 || index >= 64)) {
|
||||
- server.scheduleOnMain(() -> this.disconnect(new TranslatableComponent("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
|
||||
+ server.scheduleOnMain(() -> this.disconnect(new TranslatableComponent("disconnect.spam", me.titaniumtown.Constants.EMPTY_object_arr), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
|
||||
return;
|
||||
}
|
||||
// Paper end
|
||||
@@ -2941,7 +2941,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
// Paper start
|
||||
if (!org.bukkit.Bukkit.isPrimaryThread()) {
|
||||
if (recipeSpamPackets.addAndGet(com.destroystokyo.paper.PaperConfig.autoRecipeIncrement) > com.destroystokyo.paper.PaperConfig.autoRecipeLimit) {
|
||||
- server.scheduleOnMain(() -> this.disconnect(new TranslatableComponent("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
|
||||
+ server.scheduleOnMain(() -> this.disconnect(new TranslatableComponent("disconnect.spam", me.titaniumtown.Constants.EMPTY_object_arr), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause
|
||||
return;
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
index 475f080d91c7f7cbb012ed5a28dabc0ccab5a22c..f7a8b42f0c1ced2232d4a74c46e8f265616aad43 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||
@@ -255,7 +255,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
|
||||
@Override
|
||||
public void handleHello(ServerboundHelloPacket packet) {
|
||||
- Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]);
|
||||
+ Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
this.gameProfile = packet.getGameProfile();
|
||||
// Paper start - validate usernames
|
||||
if (com.destroystokyo.paper.PaperConfig.isProxyOnlineMode() && com.destroystokyo.paper.PaperConfig.performUsernameValidation) {
|
||||
@@ -299,7 +299,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
||||
|
||||
@Override
|
||||
public void handleKey(ServerboundKeyPacket packet) {
|
||||
- Validate.validState(this.state == ServerLoginPacketListenerImpl.State.KEY, "Unexpected key packet", new Object[0]);
|
||||
+ Validate.validState(this.state == ServerLoginPacketListenerImpl.State.KEY, "Unexpected key packet", me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
PrivateKey privatekey = this.server.getKeyPair().getPrivate();
|
||||
|
||||
final String s;
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index da84ae21026acd54478ff23673a817361ad01afd..7f39d1b1c9cb6e3d83aaa61e3f5292e60bc98f5e 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -312,7 +312,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
void disconnectPendingPlayer(ServerPlayer entityplayer) {
|
||||
- TranslatableComponent msg = new TranslatableComponent("multiplayer.disconnect.duplicate_login", new Object[0]);
|
||||
+ TranslatableComponent msg = new TranslatableComponent("multiplayer.disconnect.duplicate_login", me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
entityplayer.networkManager.send(new ClientboundDisconnectPacket(msg), (future) -> {
|
||||
entityplayer.networkManager.disconnect(msg);
|
||||
entityplayer.networkManager = null;
|
||||
@@ -726,7 +726,7 @@ public abstract class PlayerList {
|
||||
while (iterator.hasNext()) {
|
||||
entityplayer = (ServerPlayer) iterator.next();
|
||||
this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved
|
||||
- entityplayer.connection.disconnect(new TranslatableComponent("multiplayer.disconnect.duplicate_login", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause
|
||||
+ entityplayer.connection.disconnect(new TranslatableComponent("multiplayer.disconnect.duplicate_login", me.titaniumtown.Constants.EMPTY_object_arr), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause
|
||||
}
|
||||
|
||||
// Instead of kicking then returning, we need to store the kick reason
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
||||
index eaad5c3a4a7f2303bc7b1964eedfeeb3db6d70f0..c0fa412c0a320998fbb6d708d80349e5f0c75a88 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
||||
@@ -166,7 +166,7 @@ public final class WeakCollection<T> implements Collection<T> {
|
||||
|
||||
@Override
|
||||
public Object[] toArray() {
|
||||
- return this.toArray(new Object[0]);
|
||||
+ return this.toArray(me.titaniumtown.Constants.EMPTY_object_arr);
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemStackTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemStackTest.java
|
||||
index bf4c622735bf1f4ae190329465426dac6d178c0d..a4b760c8e001545d519b977aeb474222c5bd2c66 100644
|
||||
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemStackTest.java
|
||||
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemStackTest.java
|
||||
@@ -310,7 +310,7 @@ public class ItemStackTest extends AbstractTestingBase {
|
||||
return ImmutableList.of(); // TODO, test basic durability issues
|
||||
}
|
||||
|
||||
- static final Object[][] EMPTY_ARRAY = new Object[0][];
|
||||
+ static final Object[][] EMPTY_ARRAY = me.titaniumtown.Constants.EMPTY_object_arr[];
|
||||
/**
|
||||
* Materials that generate unique item meta types.
|
||||
*/
|
||||
Reference in New Issue
Block a user