Only process BlockPhysicsEvent if a plugin has a listener

Saves on some object allocation and processing when no plugin listens to this
This commit is contained in:
Aikar
2016-03-28 19:55:45 -04:00
parent b2671f4dd1
commit 63fa3068c6
5 changed files with 54 additions and 51 deletions

View File

@@ -933,7 +933,7 @@
}
private ServerStatus.Players buildPlayerStatus() {
@@ -1154,11 +1561,27 @@
@@ -1154,24 +1561,43 @@
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
entityplayer.connection.suspendFlushing();
});
@@ -960,8 +960,10 @@
+
while (iterator.hasNext()) {
ServerLevel worldserver = (ServerLevel) iterator.next();
+ worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
@@ -1167,11 +1590,13 @@
gameprofilerfiller.push(() -> {
String s = String.valueOf(worldserver);
return s + " " + String.valueOf(worldserver.dimension().location());
});
@@ -975,7 +977,7 @@
gameprofilerfiller.push("tick");
@@ -1186,6 +1611,7 @@
@@ -1186,6 +1612,7 @@
gameprofilerfiller.pop();
gameprofilerfiller.pop();
@@ -983,7 +985,7 @@
}
gameprofilerfiller.popPush("connection");
@@ -1265,7 +1691,23 @@
@@ -1265,7 +1692,23 @@
@Nullable
public ServerLevel getLevel(ResourceKey<Level> key) {
return (ServerLevel) this.levels.get(key);
@@ -1007,7 +1009,7 @@
public Set<ResourceKey<Level>> levelKeys() {
return this.levels.keySet();
@@ -1296,7 +1738,7 @@
@@ -1296,7 +1739,7 @@
@DontObfuscate
public String getServerModName() {
@@ -1016,7 +1018,7 @@
}
public SystemReport fillSystemReport(SystemReport details) {
@@ -1347,7 +1789,7 @@
@@ -1347,7 +1790,7 @@
@Override
public void sendSystemMessage(Component message) {
@@ -1025,7 +1027,7 @@
}
public KeyPair getKeyPair() {
@@ -1481,10 +1923,20 @@
@@ -1481,10 +1924,20 @@
@Override
public String getMotd() {
@@ -1047,7 +1049,7 @@
this.motd = motd;
}
@@ -1507,7 +1959,7 @@
@@ -1507,7 +1960,7 @@
}
public ServerConnectionListener getConnection() {
@@ -1056,7 +1058,7 @@
}
public boolean isReady() {
@@ -1634,11 +2086,11 @@
@@ -1634,11 +2087,11 @@
public CompletableFuture<Void> reloadResources(Collection<String> dataPacks) {
CompletableFuture<Void> completablefuture = CompletableFuture.supplyAsync(() -> {
@@ -1070,7 +1072,7 @@
}, this).thenCompose((immutablelist) -> {
MultiPackResourceManager resourcemanager = new MultiPackResourceManager(PackType.SERVER_DATA, immutablelist);
List<Registry.PendingTags<?>> list = TagLoader.loadTagsForExistingRegistries(resourcemanager, this.registries.compositeAccess());
@@ -1654,6 +2106,7 @@
@@ -1654,6 +2107,7 @@
}).thenAcceptAsync((minecraftserver_reloadableresources) -> {
this.resources.close();
this.resources = minecraftserver_reloadableresources;
@@ -1078,7 +1080,7 @@
this.packRepository.setSelected(dataPacks);
WorldDataConfiguration worlddataconfiguration = new WorldDataConfiguration(MinecraftServer.getSelectedPacks(this.packRepository, true), this.worldData.enabledFeatures());
@@ -1952,7 +2405,7 @@
@@ -1952,7 +2406,7 @@
final List<String> list = Lists.newArrayList();
final GameRules gamerules = this.getGameRules();
@@ -1087,7 +1089,7 @@
@Override
public <T extends GameRules.Value<T>> void visit(GameRules.Key<T> key, GameRules.Type<T> type) {
list.add(String.format(Locale.ROOT, "%s=%s\n", key.getId(), gamerules.getRule(key)));
@@ -2058,7 +2511,7 @@
@@ -2058,7 +2512,7 @@
try {
label51:
{
@@ -1096,7 +1098,7 @@
try {
arraylist = Lists.newArrayList(NativeModuleLister.listModules());
@@ -2108,6 +2561,22 @@
@@ -2108,6 +2562,22 @@
}
@@ -1119,7 +1121,7 @@
private ProfilerFiller createProfiler() {
if (this.willStartRecordingMetrics) {
this.metricsRecorder = ActiveMetricsRecorder.createStarted(new ServerMetricsSamplersProvider(Util.timeSource, this.isDedicatedServer()), Util.timeSource, Util.ioPool(), new MetricsPersister("server"), this.onMetricsRecordingStopped, (path) -> {
@@ -2225,18 +2694,24 @@
@@ -2225,18 +2695,24 @@
}
public void logChatMessage(Component message, ChatType.Bound params, @Nullable String prefix) {