mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-06-21 09:47:45 +02:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@70f253f3 Update ItemType PaperMC/Paper@774a32e8 sulfur cube archetype registry PaperMC/Paper@f2ebae60 update legacy ItemType generic type PaperMC/Paper@93feb440 deprecate PigZapEvent PaperMC/Paper@73725c6b update to pre-5 PaperMC/Paper@5357d03b fix serialization error when creating empty flat world PaperMC/Paper@620da256 expand CreeperIgniteEvent to cover minecart tnt and sulfur cube
This commit is contained in:
@@ -2730,10 +2730,10 @@ index 5d1e0d44163b9f29dc824b46b7b983456a273419..f54a14a1e434cbfedf709d3b1495f2ae
|
||||
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
|
||||
this.targetSelector.addGoal(3, new HurtByTargetGoal(this).setAlertOthers());
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d452f5f3839 100644
|
||||
index f960bb265bc5a4b350d24c9d1caafb3a06068df0..c0ffda7c18461494aee68aac2d99a660e3b21dcf 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -91,6 +91,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -92,6 +92,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
private final net.minecraft.world.level.Explosion explosionSource; // Paper - reusable source for CraftTNTPrimed.getSource()
|
||||
private @Nullable BlockPos podium;
|
||||
// Paper end
|
||||
@@ -2741,7 +2741,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
|
||||
public EnderDragon(final EntityType<? extends EnderDragon> type, final Level level) {
|
||||
super(EntityTypes.ENDER_DRAGON, level);
|
||||
@@ -107,6 +108,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -108,6 +109,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.noPhysics = true;
|
||||
this.phaseManager = new EnderDragonPhaseManager(this);
|
||||
this.explosionSource = new net.minecraft.world.level.ServerExplosion(level.getMinecraftWorld(), this, null, null, new Vec3(Double.NaN, Double.NaN, Double.NaN), Float.NaN, true, net.minecraft.world.level.Explosion.BlockInteraction.DESTROY); // Paper
|
||||
@@ -2779,7 +2779,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
}
|
||||
|
||||
public void setDragonFight(final EnderDragonFight fight) {
|
||||
@@ -121,6 +153,17 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -122,6 +154,17 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
return this.fightOrigin;
|
||||
}
|
||||
|
||||
@@ -2797,7 +2797,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
|
||||
}
|
||||
@@ -170,6 +213,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -171,6 +214,37 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
public void aiStep() {
|
||||
@@ -2835,7 +2835,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
this.processFlappingMovement();
|
||||
if (this.level().isClientSide()) {
|
||||
this.setHealth(this.getHealth());
|
||||
@@ -198,6 +272,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -199,6 +273,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
this.oFlapTime = this.flapTime;
|
||||
if (this.isDeadOrDying()) {
|
||||
@@ -2843,7 +2843,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
float xo = (this.random.nextFloat() - 0.5F) * 8.0F;
|
||||
float yo = (this.random.nextFloat() - 0.5F) * 4.0F;
|
||||
float zo = (this.random.nextFloat() - 0.5F) * 8.0F;
|
||||
@@ -207,9 +282,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -208,9 +283,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
Vec3 movement = this.getDeltaMovement();
|
||||
float flapSpeed = 0.2F / ((float)movement.horizontalDistance() * 10.0F + 1.0F);
|
||||
flapSpeed *= (float)Math.pow(2.0, movement.y);
|
||||
@@ -2855,7 +2855,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
this.flapTime += flapSpeed * 0.5F;
|
||||
} else {
|
||||
this.flapTime += flapSpeed;
|
||||
@@ -220,7 +295,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -221,7 +296,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.flapTime = 0.5F;
|
||||
} else {
|
||||
this.flightHistory.record(this.getY(), this.getYRot());
|
||||
@@ -2864,7 +2864,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
DragonPhaseInstance currentPhase = this.phaseManager.getCurrentPhase();
|
||||
currentPhase.doServerTick(level);
|
||||
if (this.phaseManager.getCurrentPhase() != currentPhase) {
|
||||
@@ -291,7 +366,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -292,7 +367,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
this.tickPart(this.body, ss1 * 0.5F, 0.0, -cc1 * 0.5F);
|
||||
this.tickPart(this.wing1, cc1 * 4.5F, 2.0, ss1 * 4.5F);
|
||||
this.tickPart(this.wing2, cc1 * -4.5F, 2.0, ss1 * -4.5F);
|
||||
@@ -2873,7 +2873,7 @@ index cabadc98e43f7d45a15512010670ad57d276584b..55a24b960f1372c0fa7edf7c5d439d45
|
||||
this.knockBack(
|
||||
serverLevel,
|
||||
serverLevel.getEntities(
|
||||
@@ -339,9 +414,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -340,9 +415,9 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
|
||||
if (this.level() instanceof ServerLevel level) {
|
||||
@@ -4356,7 +4356,7 @@ index 96776d23370736da3408e6a86ed89b7f3d686732..0ac7a442a0ea79f190aceb60b771d616
|
||||
public SoundEvent getHurtSound(final DamageSource source) {
|
||||
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
|
||||
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
index 6b89d25aa130c9b7fe7f6d27f1d5f393c2954778..601a54820df95a566cec6079715af166f912df70 100644
|
||||
index 7f79c8e4e5874d2ce3a1a58b96df698c3f774011..7b3ab0515bae1963cdd2319f097bfffb4d12f4e5 100644
|
||||
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
@@ -129,6 +129,28 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
|
||||
|
||||
@@ -974,10 +974,10 @@ index f54a14a1e434cbfedf709d3b1495f2ae9ae4f11f..acf623ba0ab1f1d6c98af1a83cddd634
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 55a24b960f1372c0fa7edf7c5d439d452f5f3839..6883bd42f9d124c6421d1eb332f04514aa7bc3f8 100644
|
||||
index c0ffda7c18461494aee68aac2d99a660e3b21dcf..ffd612896a30ebff55906baba94150eb25fd8e98 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -164,6 +164,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -165,6 +165,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -991,7 +991,7 @@ index 55a24b960f1372c0fa7edf7c5d439d452f5f3839..6883bd42f9d124c6421d1eb332f04514
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
|
||||
}
|
||||
@@ -1065,7 +1072,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -1068,7 +1075,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
|
||||
@Override
|
||||
protected float sanitizeScale(final float scale) {
|
||||
@@ -1501,7 +1501,7 @@ index 0ac7a442a0ea79f190aceb60b771d616b377e613..22c20e4360473cdbe9cda8bb7b3b30be
|
||||
+ }
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
index 601a54820df95a566cec6079715af166f912df70..8a12c35177a745e94c2a4ced86994114fac933f5 100644
|
||||
index 7b3ab0515bae1963cdd2319f097bfffb4d12f4e5..a966d253af27d5a8cc89a2454cf60377bdf7ce62 100644
|
||||
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
@@ -151,6 +151,20 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
|
||||
|
||||
@@ -131,10 +131,10 @@ index f0c4ad3715322bf1a5a60edd870b34a15949a77f..80a65dba81ab82cdb9bd43d1878e7455
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 6883bd42f9d124c6421d1eb332f04514aa7bc3f8..1294dc666be270b4c7b335b7f2786b9b68bededc 100644
|
||||
index ffd612896a30ebff55906baba94150eb25fd8e98..2597ee3ca93653af04b5e620f3909c3791369bf0 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -536,7 +536,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -537,7 +537,7 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
BlockPos blockPos = new BlockPos(x, y, z);
|
||||
BlockState state = level.getBlockState(blockPos);
|
||||
if (!state.isAir() && !state.is(BlockTags.DRAGON_TRANSPARENT)) {
|
||||
|
||||
@@ -657,10 +657,10 @@ index 66e58482f8422e5478b29f82271489d0449ceddb..cdc12cabee85c7090ff317068a98b0ac
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(1, new FloatGoal(this));
|
||||
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
index 1294dc666be270b4c7b335b7f2786b9b68bededc..5ad833b7673e73a1a5120b335f8980f639a9b2eb 100644
|
||||
index 2597ee3ca93653af04b5e620f3909c3791369bf0..f445c81d1054b897f8489cdb9cc9bb04096e3835 100644
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -171,6 +171,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
@@ -172,6 +172,13 @@ public class EnderDragon extends Mob implements Enemy {
|
||||
}
|
||||
// Purpur end - Configurable entity base attributes
|
||||
|
||||
@@ -1029,7 +1029,7 @@ index 22c20e4360473cdbe9cda8bb7b3b30be85f16fe6..3c09f472ba54f8929782ac6a080ceabf
|
||||
public SoundEvent getHurtSound(final DamageSource source) {
|
||||
return this.isTiny() ? SoundEvents.SLIME_HURT_SMALL : SoundEvents.SLIME_HURT;
|
||||
diff --git a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
index 8a12c35177a745e94c2a4ced86994114fac933f5..f777ed1de1ec159fed3019bd5bfb711b9aad6146 100644
|
||||
index a966d253af27d5a8cc89a2454cf60377bdf7ce62..f43d33605e8d0d4ade0a5c6269bccb4d10668543 100644
|
||||
--- a/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
+++ b/net/minecraft/world/entity/monster/cubemob/SulfurCube.java
|
||||
@@ -165,6 +165,13 @@ public class SulfurCube extends AbstractCubeMob implements Bucketable, Shearable
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/server/commands/GameModeCommand.java
|
||||
+++ b/net/minecraft/server/commands/GameModeCommand.java
|
||||
@@ -47,6 +_,18 @@
|
||||
@@ -48,6 +_,18 @@
|
||||
}
|
||||
|
||||
private static int setMode(final CommandContext<CommandSourceStack> context, final Collection<ServerPlayer> players, final GameType type) {
|
||||
@@ -17,5 +17,5 @@
|
||||
+ }
|
||||
+ // Purpur end - Gamemode extra permissions
|
||||
int count = 0;
|
||||
MinecraftServer server = context.getSource().getServer();
|
||||
|
||||
for (ServerPlayer player : players) {
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
@Nullable
|
||||
public Entity eventEntityDamager() {
|
||||
return this.eventEntityDamager;
|
||||
@@ -94,6 +_,8 @@
|
||||
@@ -98,6 +_,8 @@
|
||||
damageSource.eventBlockDamager = this.eventBlockDamager;
|
||||
damageSource.fromBlockSnapshot = this.fromBlockSnapshot;
|
||||
damageSource.critical = this.critical;
|
||||
@@ -49,7 +49,7 @@
|
||||
return damageSource;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -159,11 +_,20 @@
|
||||
@@ -163,11 +_,20 @@
|
||||
} else {
|
||||
Component name = this.causingEntity == null ? this.directEntity.getDisplayName() : this.causingEntity.getDisplayName();
|
||||
ItemStack held = this.causingEntity instanceof LivingEntity livingEntity ? livingEntity.getMainHandItem() : ItemStack.EMPTY;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
|
||||
@@ -964,6 +_,7 @@
|
||||
@@ -967,6 +_,7 @@
|
||||
|
||||
@Override
|
||||
protected boolean canRide(final Entity vehicle) {
|
||||
@@ -8,7 +8,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -999,7 +_,7 @@
|
||||
@@ -1002,7 +_,7 @@
|
||||
boolean shouldDrop = level.getGameRules().get(GameRules.MOB_DROPS);
|
||||
int xpCount = 500;
|
||||
|
||||
|
||||
@@ -36,10 +36,10 @@ index de6fe0b783a145f6571bf73665e7107430f22592..612e3457d537d6129437443753cad3e4
|
||||
+ // Purpur end - Ridables
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 6dd60f8a3c322671a3c91e7239d6218e4724bc71..6c78b4b24d43712ae98bbc1e2c3f2e896da57fb4 100644
|
||||
index a3f9ebbd03c355168c8ea72e8d9f0e222712c61d..fbd78d4f06deaddb0954863cdf4eac47ce80e0b7 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -653,6 +653,15 @@ public class CraftEventFactory {
|
||||
@@ -654,6 +654,15 @@ public class CraftEventFactory {
|
||||
}
|
||||
craftServer.getPluginManager().callEvent(event);
|
||||
|
||||
@@ -55,7 +55,7 @@ index 6dd60f8a3c322671a3c91e7239d6218e4724bc71..6c78b4b24d43712ae98bbc1e2c3f2e89
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -1158,6 +1167,7 @@ public class CraftEventFactory {
|
||||
@@ -1159,6 +1168,7 @@ public class CraftEventFactory {
|
||||
EntityDamageEvent event;
|
||||
if (damager != null) {
|
||||
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -415,6 +_,20 @@
|
||||
@@ -411,6 +_,20 @@
|
||||
this.paperPluginManager = new io.papermc.paper.plugin.manager.PaperPluginManagerImpl(this, this.commandMap, pluginManager);
|
||||
this.pluginManager.paperPluginManager = this.paperPluginManager;
|
||||
// Paper end
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
CraftRegistry.setMinecraftRegistry(console.registryAccess());
|
||||
|
||||
@@ -989,6 +_,7 @@
|
||||
@@ -985,6 +_,7 @@
|
||||
|
||||
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
|
||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||
@@ -29,7 +29,7 @@
|
||||
for (ServerLevel world : this.console.getAllLevels()) {
|
||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||
world.setSpawnSettings(world.isSpawningMonsters()); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
@@ -1004,6 +_,7 @@
|
||||
@@ -1000,6 +_,7 @@
|
||||
}
|
||||
}
|
||||
world.spigotConfig.init(); // Spigot
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
|
||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
@@ -1021,6 +_,7 @@
|
||||
@@ -1017,6 +_,7 @@
|
||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||
this.spark.registerCommandBeforePlugins(this); // Paper - spark
|
||||
@@ -45,7 +45,7 @@
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
|
||||
@@ -1478,6 +_,60 @@
|
||||
@@ -1482,6 +_,60 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
@Override
|
||||
public List<Recipe> getRecipesFor(ItemStack result) {
|
||||
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
|
||||
@@ -2723,6 +_,18 @@
|
||||
@@ -2727,6 +_,18 @@
|
||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
@Override
|
||||
public void restart() {
|
||||
CraftServer.this.restart();
|
||||
@@ -2958,4 +_,18 @@
|
||||
@@ -2962,4 +_,18 @@
|
||||
public void allowPausing(final Plugin plugin, final boolean value) {
|
||||
this.console.addPluginAllowingSleep(plugin.getName(), value);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user