mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
compile
This commit is contained in:
@@ -86,7 +86,7 @@ index 23074f0b00cde60e3a42335c7aa3eb4f6162d44d..56015828fe1f0bf66eefa41164e58cc4
|
||||
if ((entity instanceof AbstractFish && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||
ServerGamePacketListenerImpl.this.send(new ClientboundAddMobPacket((AbstractFish) entity));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 23c17a1ebb63290168b2b67f2dbeb7741c368e7b..20930c864ee1cb39367b5515dc8579f31d40ad21 100644
|
||||
index 23c17a1ebb63290168b2b67f2dbeb7741c368e7b..8389be51e564c734b899ee1049eeb811d111d263 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -230,7 +230,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i
|
||||
@@ -155,7 +155,7 @@ index 23c17a1ebb63290168b2b67f2dbeb7741c368e7b..20930c864ee1cb39367b5515dc8579f3
|
||||
+
|
||||
+ public void onMount(Player rider) {
|
||||
+ if (this instanceof Mob) {
|
||||
+ ((Mob) this).setGoalTarget(null, null, false);
|
||||
+ ((Mob) this).setTarget(null, null, false);
|
||||
+ ((Mob) this).getNavigation().stop();
|
||||
+ }
|
||||
+ rider.setJumping(false); // fixes jump on mount
|
||||
@@ -2517,7 +2517,7 @@ index e17a3afa41fd628d2c4a3637ae19418e258a99b8..6a39bd861f27d517f8de9fc3f589c7e2
|
||||
this.dragonFight.updateDragon(this);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
index ede0ced64d74d71547d1b8bb6853c5aacc1b486a..318bf2a0feea7b5eb15b56565d4aecc4cd2eb2b4 100644
|
||||
index ede0ced64d74d71547d1b8bb6853c5aacc1b486a..ba20d4bddf965a9207fa0f12f7337f51a8aff301 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
||||
@@ -85,6 +85,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -2528,11 +2528,12 @@ index ede0ced64d74d71547d1b8bb6853c5aacc1b486a..318bf2a0feea7b5eb15b56565d4aecc4
|
||||
// Paper start
|
||||
private boolean canPortal = false;
|
||||
|
||||
@@ -107,15 +108,117 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
@@ -106,16 +107,118 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
|
||||
navigationflying.setCanOpenDoors(false);
|
||||
navigationflying.setCanFloat(true);
|
||||
navigationflying.setCanPassDoors(true);
|
||||
return navigationflying;
|
||||
+ this.moveControl = new net.pl3x.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.1F); // Purpur
|
||||
return navigationflying;
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
|
||||
@@ -30,7 +30,7 @@ index 20444c6887cbdd444b23bf018a6d63f22359e5e7..68321b5e425c0500a5691f8020317612
|
||||
public static final Item CHEST = registerBlock(Blocks.CHEST, CreativeModeTab.TAB_DECORATIONS);
|
||||
public static final Item CRAFTING_TABLE = registerBlock(Blocks.CRAFTING_TABLE, CreativeModeTab.TAB_DECORATIONS);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
|
||||
index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf08c2ec0f 100644
|
||||
index 130ffb06b12565efb35afb55b6da20b1b16f6f06..bc4646a7a72c33a3671115953a2bbd7cfe5d7d92 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/SpawnerBlock.java
|
||||
@@ -1,9 +1,19 @@
|
||||
@@ -53,7 +53,7 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
@@ -13,6 +23,19 @@ import net.minecraft.world.level.block.entity.SpawnerBlockEntity;
|
||||
@@ -13,6 +23,20 @@ import net.minecraft.world.level.block.entity.SpawnerBlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
@@ -66,6 +66,7 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf
|
||||
+
|
||||
+import java.util.List;
|
||||
+import java.util.Locale;
|
||||
+import java.util.Optional;
|
||||
+
|
||||
+import static net.kyori.adventure.text.format.TextDecoration.ITALIC;
|
||||
+// Purpur end
|
||||
@@ -73,7 +74,7 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf
|
||||
public class SpawnerBlock extends BaseEntityBlock {
|
||||
|
||||
protected SpawnerBlock(BlockBehaviour.Properties settings) {
|
||||
@@ -30,6 +53,55 @@ public class SpawnerBlock extends BaseEntityBlock {
|
||||
@@ -30,6 +54,55 @@ public class SpawnerBlock extends BaseEntityBlock {
|
||||
return createTickerHelper(type, BlockEntityType.MOB_SPAWNER, world.isClientSide ? SpawnerBlockEntity::clientTick : SpawnerBlockEntity::serverTick);
|
||||
}
|
||||
|
||||
@@ -81,9 +82,9 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf
|
||||
+ @Override
|
||||
+ public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, BlockEntity blockEntity, ItemStack stack) {
|
||||
+ if (level.purpurConfig.silkTouchEnabled && player.getBukkitEntity().hasPermission("purpur.drop.spawners") && isSilkTouch(level, stack)) {
|
||||
+ ResourceLocation type = ((SpawnerBlockEntity) blockEntity).getSpawner().getEntityId(level, pos);
|
||||
+ if (type != null) {
|
||||
+ final Component mobName = PaperAdventure.asAdventure(EntityType.getFromKey(type).getDescription());
|
||||
+ Optional<EntityType<?>> type = EntityType.by(((SpawnerBlockEntity) blockEntity).getSpawner().nextSpawnData.getEntityToSpawn());
|
||||
+ if (type.isPresent()) {
|
||||
+ final Component mobName = PaperAdventure.asAdventure(type.get().getDescription());
|
||||
+ CompoundTag display = new CompoundTag();
|
||||
+ CompoundTag tag = new CompoundTag();
|
||||
+
|
||||
@@ -112,7 +113,7 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf
|
||||
+ }
|
||||
+
|
||||
+ ItemStack item = new ItemStack(Blocks.SPAWNER.asItem());
|
||||
+ tag.putString("Purpur.mob_type", type.toString());
|
||||
+ tag.putString("Purpur.mob_type", type.get().getName());
|
||||
+ item.setTag(tag);
|
||||
+
|
||||
+ popResource(level, pos, item);
|
||||
@@ -129,7 +130,7 @@ index 130ffb06b12565efb35afb55b6da20b1b16f6f06..f59883d2b08ff18fd4b7e342f4d899cf
|
||||
@Override
|
||||
public void spawnAfterBreak(BlockState state, ServerLevel world, BlockPos pos, ItemStack stack) {
|
||||
super.spawnAfterBreak(state, world, pos, stack);
|
||||
@@ -38,6 +110,7 @@ public class SpawnerBlock extends BaseEntityBlock {
|
||||
@@ -38,6 +111,7 @@ public class SpawnerBlock extends BaseEntityBlock {
|
||||
|
||||
@Override
|
||||
public int getExpDrop(BlockState iblockdata, ServerLevel worldserver, BlockPos blockposition, ItemStack itemstack) {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index d37aa315753ffff5601d42987beae7af4a267ce1..299e628db2ddb0f36294c12dd5b55db6c519ac22 100644
|
||||
index d37aa315753ffff5601d42987beae7af4a267ce1..80a57d726ee663aa37a3b93c883f835a2ebc765e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2537,5 +2537,25 @@ public class ServerPlayer extends Player {
|
||||
@@ -29,7 +29,7 @@ index d37aa315753ffff5601d42987beae7af4a267ce1..299e628db2ddb0f36294c12dd5b55db6
|
||||
+ if (this.level == toLevel) {
|
||||
+ this.connection.teleport(to);
|
||||
+ } else {
|
||||
+ this.server.getPlayerList().moveToWorld(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck);
|
||||
+ this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck);
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end
|
||||
|
||||
@@ -42,7 +42,7 @@ index fe029ec70afad56bb7a7361f347e9b9aef5e00ba..2c37694a6055513803708c9fb40fb0c4
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index d3d7a668d78f52b56654fe89148ecdfd662c769e..244440eb9d4e85cb73bb6c0dd645d069a036917c 100644
|
||||
index e07095a3ed1af5a8bb7715c264535ae952e264d9..dd186ad2080d358ee1ed5c8ac6725a9e3dcaeb39 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -256,6 +256,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -70,7 +70,7 @@ index d3d7a668d78f52b56654fe89148ecdfd662c769e..244440eb9d4e85cb73bb6c0dd645d069
|
||||
|
||||
// CraftBukkit start - World fallback code, either respawn location or global spawn
|
||||
@@ -2566,5 +2569,13 @@ public class ServerPlayer extends Player {
|
||||
this.server.getPlayerList().moveToWorld(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck);
|
||||
this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig.disableTeleportationSuffocationCheck);
|
||||
}
|
||||
}
|
||||
+
|
||||
|
||||
@@ -19,7 +19,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
Co-authored-by: Mariell Hoversholm <proximyst@proximyst.com>
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
index f8a2aa31e38f64f88a82d5a388b58f1962d5fda0..c34023c69c9a97824417a40f5fac8f2e71f4b6f3 100644
|
||||
index f8a2aa31e38f64f88a82d5a388b58f1962d5fda0..b98f05c32d81195e779701d90d30f345c9695cbf 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
@@ -454,7 +454,14 @@ public abstract class ChunkGenerator implements BiomeManager.NoiseBiomeSource {
|
||||
@@ -29,8 +29,8 @@ index f8a2aa31e38f64f88a82d5a388b58f1962d5fda0..c34023c69c9a97824417a40f5fac8f2e
|
||||
-
|
||||
+ // Purpur start
|
||||
+ if (new net.pl3x.purpur.event.world.StructureGenerateEvent(
|
||||
+ accessor.getWorld().getWorld(),
|
||||
+ org.bukkit.StructureType.getStructureTypes().get(feature.feature.getFeatureName().toLowerCase()),
|
||||
+ structureAccessor.getWorld().getWorld(),
|
||||
+ org.bukkit.StructureType.getStructureTypes().get(structurestart.getFeature().getFeatureName().toLowerCase()),
|
||||
+ chunkcoordintpair.x,
|
||||
+ chunkcoordintpair.z
|
||||
+ ).callEvent())
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Hide hidden players from entity selector
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java
|
||||
index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..eaa1af57bdf4cb890706e839cbbae15f00933391 100644
|
||||
index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..39c8cb9494aa516a3d828010a8e3329db9d25707 100644
|
||||
--- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java
|
||||
+++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java
|
||||
@@ -184,10 +184,10 @@ public class EntitySelector {
|
||||
@@ -13,11 +13,11 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..eaa1af57bdf4cb890706e839cbbae15f
|
||||
if (this.playerName != null) {
|
||||
entityplayer = source.getServer().getPlayerList().getPlayerByName(this.playerName);
|
||||
- return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new ServerPlayer[]{entityplayer}));
|
||||
+ return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur
|
||||
+ return entityplayer == null || !canSee(source, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur
|
||||
} else if (this.entityUUID != null) {
|
||||
entityplayer = source.getServer().getPlayerList().getPlayer(this.entityUUID);
|
||||
- return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new ServerPlayer[]{entityplayer}));
|
||||
+ return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur
|
||||
+ return entityplayer == null || !canSee(source, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur
|
||||
} else {
|
||||
Vec3 vec3d = (Vec3) this.position.apply(source.getPosition());
|
||||
Predicate<Entity> predicate = this.getPredicate(vec3d);
|
||||
@@ -26,7 +26,7 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..eaa1af57bdf4cb890706e839cbbae15f
|
||||
|
||||
if (predicate.test(entityplayer1)) {
|
||||
- return Lists.newArrayList(new ServerPlayer[]{entityplayer1});
|
||||
+ return !canSee(commandlistenerwrapper, entityplayer1) ? Collections.emptyList() : Lists.newArrayList(entityplayer1); // Purpur
|
||||
+ return !canSee(source, entityplayer1) ? Collections.emptyList() : Lists.newArrayList(entityplayer1); // Purpur
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..eaa1af57bdf4cb890706e839cbbae15f
|
||||
|
||||
if (this.isWorldLimited()) {
|
||||
object = source.getLevel().getPlayers(predicate);
|
||||
+ ((List) object).removeIf(entityplayer3 -> !canSee(commandlistenerwrapper, (ServerPlayer) entityplayer3)); // Purpur
|
||||
+ ((List) object).removeIf(entityplayer3 -> !canSee(source, (ServerPlayer) entityplayer3)); // Purpur
|
||||
} else {
|
||||
object = Lists.newArrayList();
|
||||
Iterator iterator = source.getServer().getPlayerList().getPlayers().iterator();
|
||||
@@ -43,7 +43,7 @@ index 35cc3bba20afd4a47160cc674415ba6a3a0ec0ec..eaa1af57bdf4cb890706e839cbbae15f
|
||||
ServerPlayer entityplayer2 = (ServerPlayer) iterator.next();
|
||||
|
||||
- if (predicate.test(entityplayer2)) {
|
||||
+ if (predicate.test(entityplayer2) && canSee(commandlistenerwrapper, entityplayer2)) { // Purpur
|
||||
+ if (predicate.test(entityplayer2) && canSee(source, entityplayer2)) { // Purpur
|
||||
((List) object).add(entityplayer2);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user