mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 06:58:11 +02:00
It appears to cause visual glitching issues with certain TNT entities fired from cannons. TileEntity tick capping has already been removed for some time, Entity tick capping removal is new to this patch.
94 lines
4.4 KiB
Diff
94 lines
4.4 KiB
Diff
From 9e26a0ea06ca8a34892bf9a34b1b276a391c81c0 Mon Sep 17 00:00:00 2001
|
|
From: DoctorDark <doctordark11@gmail.com>
|
|
Date: Thu, 28 May 2015 20:12:38 -0500
|
|
Subject: [PATCH] Configurable end credits when leaving the end
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
index 6ec167f..2ecec5a 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -508,11 +508,16 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
}
|
|
|
|
public void c(int i) {
|
|
- if (this.dimension == 1 && i == 1) {
|
|
+ // PaperSpigot start - Allow configurable end portal credits
|
|
+ boolean endPortal = this.dimension == 1 && i == 1;
|
|
+ if (endPortal) {
|
|
this.b((Statistic) AchievementList.D);
|
|
- this.world.kill(this);
|
|
- this.viewingCredits = true;
|
|
- this.playerConnection.sendPacket(new PacketPlayOutGameStateChange(4, 0.0F));
|
|
+ if (!world.paperSpigotConfig.disableEndCredits) {
|
|
+ this.world.kill(this);
|
|
+ this.viewingCredits = true;
|
|
+ this.playerConnection.sendPacket(new PacketPlayOutGameStateChange(4, 0.0F));
|
|
+ }
|
|
+ // PaperSpigot end
|
|
} else {
|
|
if (this.dimension == 0 && i == 1) {
|
|
this.b((Statistic) AchievementList.C);
|
|
@@ -530,15 +535,19 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
} else {
|
|
this.b((Statistic) AchievementList.y);
|
|
}
|
|
+ }
|
|
|
|
+ // PaperSpigot start - Allow configurable end portal credits
|
|
+ if (!endPortal || world.paperSpigotConfig.disableEndCredits) {
|
|
// CraftBukkit start
|
|
- TeleportCause cause = (this.dimension == 1 || i == 1) ? TeleportCause.END_PORTAL : TeleportCause.NETHER_PORTAL;
|
|
+ TeleportCause cause = (endPortal || (this.dimension == 1 || i == 1)) ? TeleportCause.END_PORTAL : TeleportCause.NETHER_PORTAL;
|
|
this.server.getPlayerList().changeDimension(this, i, cause);
|
|
// CraftBukkit end
|
|
this.lastSentExp = -1;
|
|
this.bM = -1.0F;
|
|
this.bN = -1;
|
|
}
|
|
+ // PaperSpigot end
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
|
index f4f78e8..fac50e4 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
|
@@ -693,6 +693,8 @@ public abstract class PlayerList {
|
|
}
|
|
|
|
TravelAgent agent = exit != null ? (TravelAgent) ((CraftWorld) exit.getWorld()).getHandle().getTravelAgent() : org.bukkit.craftbukkit.CraftTravelAgent.DEFAULT; // return arbitrary TA to compensate for implementation dependent plugins
|
|
+ agent.setCanCreatePortal(cause != TeleportCause.END_PORTAL); // PaperSpigot - Configurable end credits, don't allow End Portals to create portals
|
|
+
|
|
PlayerPortalEvent event = new PlayerPortalEvent(entityplayer.getBukkitEntity(), enter, exit, agent, cause);
|
|
event.useTravelAgent(useTravelAgent);
|
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
|
@@ -700,7 +702,8 @@ public abstract class PlayerList {
|
|
return;
|
|
}
|
|
|
|
- exit = event.useTravelAgent() ? event.getPortalTravelAgent().findOrCreate(event.getTo()) : event.getTo();
|
|
+ // PaperSpigot - Configurable end credits, if a plugin sets to use a travel agent even if the cause is an end portal, ignore it
|
|
+ exit = cause != TeleportCause.END_PORTAL && event.useTravelAgent() ? event.getPortalTravelAgent().findOrCreate(event.getTo()) : event.getTo();
|
|
if (exit == null) {
|
|
return;
|
|
}
|
|
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
|
index 64f8630..6a690ee 100644
|
|
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
|
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
|
@@ -248,4 +248,10 @@ public class PaperSpigotWorldConfig
|
|
{
|
|
optimizeDraining = getBoolean( "optimize-draining", false );
|
|
}
|
|
+
|
|
+ public boolean disableEndCredits;
|
|
+ private void disableEndCredits()
|
|
+ {
|
|
+ disableEndCredits = getBoolean( "game-mechanics.disable-end-credits", false );
|
|
+ }
|
|
}
|
|
--
|
|
2.4.1.windows.1
|
|
|