9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2026-01-04 15:41:31 +00:00

feat: fix some error

This commit is contained in:
MC_XiaoHei
2025-09-25 17:21:54 +08:00
parent 1dea55c329
commit 60ff1db36d
16 changed files with 91 additions and 59 deletions

View File

@@ -110,7 +110,7 @@ index 1f0e7c391d02b18e2c89700025713ec3d759f2ea..300ee12ca9584e53e9d72e3ebfd039be
org.bukkit.event.block.BlockCanBuildEvent event = new org.bukkit.event.block.BlockCanBuildEvent(org.bukkit.craftbukkit.block.CraftBlock.at(context.getLevel(), clickedPos), player, org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(blockState), defaultReturn, org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(context.getHand())); // Paper - Expose hand in BlockCanBuildEvent
diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
index 10c123b9cffdc79d069a82d09e57b24bc1572771..034f01c0f8987fbfd32120c8186aa8c6f44eb81d 100644
index 10c123b9cffdc79d069a82d09e57b24bc1572771..85ba7ef0c2e50269427e168336cf29f5375f731d 100644
--- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
@@ -153,7 +153,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl
@@ -118,7 +118,7 @@ index 10c123b9cffdc79d069a82d09e57b24bc1572771..034f01c0f8987fbfd32120c8186aa8c6
if (!entities.isEmpty()) {
for (Entity entity : entities) {
- if (entity.getPistonPushReaction() != PushReaction.IGNORE) {
+ if (entity.getPistonPushReaction() != PushReaction.IGNORE && !(entity instanceof Player player && player.isCreativeFlyOrSpectator())) { // Leaves - creative no clip
+ if (entity.getPistonPushReaction() != PushReaction.IGNORE && !(entity instanceof net.minecraft.world.entity.player.Player player && player.isCreativeFlyOrSpectator())) { // Leaves - creative no clip
entity.move(
MoverType.SHULKER_BOX,
new Vec3(

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Replay Mod API
This patch is Powered by ReplayMod(https://github.com/ReplayMod)
diff --git a/net/minecraft/commands/CommandSourceStack.java b/net/minecraft/commands/CommandSourceStack.java
index 6ead209287ab021b8245fa5c3b7f18ca7d9c66b3..c8744cb6ae4f5a2d1527bace129d9b4b8c1a8cd9 100644
index 6ead209287ab021b8245fa5c3b7f18ca7d9c66b3..cc0213907d1291e31261e923c74bdeaae2765e2e 100644
--- a/net/minecraft/commands/CommandSourceStack.java
+++ b/net/minecraft/commands/CommandSourceStack.java
@@ -580,7 +580,7 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
@@ -14,7 +14,7 @@ index 6ead209287ab021b8245fa5c3b7f18ca7d9c66b3..c8744cb6ae4f5a2d1527bace129d9b4b
@Override
public Collection<String> getOnlinePlayerNames() {
- return this.entity instanceof ServerPlayer sourcePlayer && !sourcePlayer.getBukkitEntity().hasPermission("paper.bypass-visibility.tab-completion") ? this.getServer().getPlayerList().getPlayers().stream().filter(serverPlayer -> sourcePlayer.getBukkitEntity().canSee(serverPlayer.getBukkitEntity())).map(serverPlayer -> serverPlayer.getGameProfile().name()).toList() : Lists.newArrayList(this.server.getPlayerNames()); // Paper - Make CommandSourceStack respect hidden players
+ return this.entity instanceof ServerPlayer sourcePlayer && !(sourcePlayer instanceof org.leavesmc.leaves.replay.ServerPhotographer) && !sourcePlayer.getBukkitEntity().hasPermission("paper.bypass-visibility.tab-completion") ? this.getServer().getPlayerList().getPlayers().stream().filter(serverPlayer -> sourcePlayer.getBukkitEntity().canSee(serverPlayer.getBukkitEntity())).map(serverPlayer -> serverPlayer.getGameProfile().getName()).toList() : Lists.newArrayList(this.server.getPlayerNames()); // Paper - Make CommandSourceStack respect hidden players // Leaves - only real player
+ return this.entity instanceof ServerPlayer sourcePlayer && !(sourcePlayer instanceof org.leavesmc.leaves.replay.ServerPhotographer) && !sourcePlayer.getBukkitEntity().hasPermission("paper.bypass-visibility.tab-completion") ? this.getServer().getPlayerList().getPlayers().stream().filter(serverPlayer -> sourcePlayer.getBukkitEntity().canSee(serverPlayer.getBukkitEntity())).map(serverPlayer -> serverPlayer.getGameProfile().name()).toList() : Lists.newArrayList(this.server.getPlayerNames()); // Paper - Make CommandSourceStack respect hidden players // Leaves - only real player
}
@Override
@@ -265,21 +265,20 @@ index cfe62a56ce1b4222ed6d73fc6390b7726542a9cd..234478bca5f8b1ea768b487c943b44e0
.map(Player::nameAndId)
.filter(nameAndId -> !playerList.getWhiteList().isWhiteListed(nameAndId))
diff --git a/net/minecraft/server/gui/PlayerListComponent.java b/net/minecraft/server/gui/PlayerListComponent.java
index 5a8cd3e6b448a4472092690cf589bca10b142126..c9abb60b96e07fae86111be503bc49422ba92906 100644
index 5a8cd3e6b448a4472092690cf589bca10b142126..8f22d5faf89006153b1fff4ff0b622f8de9fb588 100644
--- a/net/minecraft/server/gui/PlayerListComponent.java
+++ b/net/minecraft/server/gui/PlayerListComponent.java
@@ -17,9 +17,8 @@ public class PlayerListComponent extends JList<String> {
@@ -17,8 +17,8 @@ public class PlayerListComponent extends JList<String> {
if (this.tickCount++ % 20 == 0) {
Vector<String> list = new Vector<>();
- for (int i = 0; i < this.server.getPlayerList().getPlayers().size(); i++) {
- list.add(this.server.getPlayerList().getPlayers().get(i).getGameProfile().name());
- }
+ for (int i = 0; i < this.server.getPlayerList().realPlayers.size(); i++) { // Leaves - only real players
+ list.add(this.server.getPlayerList().realPlayers.get(i).getGameProfile().name()); // Leaves - only real players
}
this.setListData(list);
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 5deab686b386e3b82205a828ae12a72cb0f2e6fb..0db088864eac6c65a78620953821a1280056a688 100644
--- a/net/minecraft/server/level/ServerLevel.java
@@ -302,8 +301,21 @@ index 5deab686b386e3b82205a828ae12a72cb0f2e6fb..0db088864eac6c65a78620953821a128
ServerLevel.this.realPlayers.remove(serverPlayer);
}
// Leaves end - skip
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 0981f5d07144f75148b035e41f82190d0cd6526a..13c6ed8e37875e1ae061cf0a55b05a7f10fa24e1 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -522,7 +522,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
// Paper start - Expand PlayerGameModeChangeEvent
this.loadGameTypes(input);
}
- private void loadGameTypes(ValueInput input) {
+ public void loadGameTypes(ValueInput input) { // Leaves - private -> public
if (this.server.getForcedGameType() != null && this.server.getForcedGameType() != readPlayerMode(input, "playerGameType")) {
if (new org.bukkit.event.player.PlayerGameModeChangeEvent(this.getBukkitEntity(), org.bukkit.GameMode.getByValue(this.server.getDefaultGameType().getId()), org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.DEFAULT_GAMEMODE, null).callEvent()) {
this.gameMode.setGameModeForPlayer(this.server.getForcedGameType(), GameType.DEFAULT_MODE);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..39e624aca0cc803b682ea8d2304dcd86480265bb 100644
index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..19c8b1a728c28ed6e325b0b5e3d4aec764b74f0b 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -125,6 +125,7 @@ public abstract class PlayerList {
@@ -363,7 +375,7 @@ index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..39e624aca0cc803b682ea8d2304dcd86
+ this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player); // Spigot
+ this.playersByUUID.put(player.getUUID(), player);
+
+ player.supressTrackerForLogin = true;
+ player.suppressTrackerForLogin = true;
+ worldserver1.addNewPlayer(player);
+ this.server.getCustomBossEvents().onPlayerConnect(player);
+ org.bukkit.craftbukkit.entity.CraftPlayer bukkitPlayer = player.getBukkitEntity();
@@ -409,7 +421,7 @@ index 248c08b4f1dc6cf47ac311d5872ae56485e3b425..39e624aca0cc803b682ea8d2304dcd86
+ }
+
+ player.sentListPacket = true;
+ player.supressTrackerForLogin = false;
+ player.suppressTrackerForLogin = false;
+ ((ServerLevel)player.level()).getChunkSource().chunkMap.addEntity(player);
+
+ this.sendLevelInfo(player, worldserver1);

View File

@@ -4,28 +4,40 @@ Date: Tue, 5 Sep 2023 08:49:01 +0800
Subject: [PATCH] Spider jockeys drop gapples
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
index fccb328fbad2dafe1655acbcbca3e05d85864f23..ad72fbbf8fd27a7fc1e9dd599e8721bc4a7294ff 100644
--- a/net/minecraft/world/entity/monster/Creeper.java
+++ b/net/minecraft/world/entity/monster/Creeper.java
@@ -54,7 +54,7 @@ public class Creeper extends Monster {
public int swell;
public int maxSwell = 30;
public int explosionRadius = 3;
- private boolean droppedSkulls;
+ public boolean droppedSkulls; // Leaves - private -> public
public @Nullable Entity entityIgniter; // CraftBukkit
public Creeper(EntityType<? extends Creeper> entityType, Level level) {
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 4eb35a7a2dfcb4803c00e1e9179fea8186b15d41..b81ca006d33f14faf54ecce3ad4c7d198b9794d0 100644
index 4eb35a7a2dfcb4803c00e1e9179fea8186b15d41..7f564227fb022e38a28190683cf54406c764a06f 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -129,4 +129,26 @@ public class Skeleton extends AbstractSkeleton {
@@ -129,4 +129,25 @@ public class Skeleton extends AbstractSkeleton {
SoundEvent getStepSound() {
return SoundEvents.SKELETON_STEP;
}
+
+
+ // Leaves start - spider jockeys drop gapples
+ @Override
+ protected void dropCustomDeathLoot(ServerLevel level, DamageSource damageSource, boolean recentlyHit) {
+ protected void dropCustomDeathLoot(net.minecraft.server.level.ServerLevel level, DamageSource damageSource, boolean recentlyHit) {
+ super.dropCustomDeathLoot(level, damageSource, recentlyHit);
+ if (damageSource.getEntity() instanceof Creeper creeper && creeper.canDropMobsSkull()) {
+ creeper.increaseDroppedSkulls();
+ this.spawnAtLocation(level, Items.SKELETON_SKULL);
+ if (damageSource.getEntity() instanceof Creeper creeper && creeper.isPowered() && !creeper.droppedSkulls) {
+ creeper.droppedSkulls = true;
+ this.spawnAtLocation(level, net.minecraft.world.item.Items.SKELETON_SKULL);
+ }
+ }
+
+ // Leaves start - spider jockeys drop gapples
+ @Override
+ protected void dropFromLootTable(ServerLevel level, DamageSource damageSource, boolean causedByPlayer) {
+ protected void dropFromLootTable(net.minecraft.server.level.ServerLevel level, DamageSource damageSource, boolean causedByPlayer) {
+ super.dropFromLootTable(level, damageSource, causedByPlayer);
+ if (org.leavesmc.leaves.LeavesConfig.modify.spiderJockeysDropGapples > 0.0D) {
+ if (this.getRootVehicle().getType() == EntityType.SPIDER && this.random.nextDouble() < org.leavesmc.leaves.LeavesConfig.modify.spiderJockeysDropGapples) {

View File

@@ -608,7 +608,7 @@ index 5c7638fed052d68023646b86d5f4bb5b3510b390..a646628fb486056ea631f22f54c03259
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
index 646d4c26870bb03f6d397b5e03ad97923d0928b2..77cfc97b3c8926b8126076f41c801c418f3b93fd 100644
index 646d4c26870bb03f6d397b5e03ad97923d0928b2..6abdcd09c522b8278a381f08151c1a5fc33d1b2e 100644
--- a/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -39,7 +39,7 @@ import net.minecraft.world.level.storage.ValueInput;
@@ -674,7 +674,7 @@ index 646d4c26870bb03f6d397b5e03ad97923d0928b2..77cfc97b3c8926b8126076f41c801c41
+
+ @Override
+ public void lithium$handleSetChanged() {
+ if (this.isSleeping() && this.level != null && !this.level.isClientSide) {
+ if (this.isSleeping() && this.level != null && !this.level.isClientSide()) {
+ this.wakeUpNow();
+ }
+ }
@@ -1245,7 +1245,7 @@ index 6b05556a84ae6a8f08025439db29db207325bb7a..f02904e9be89dd4e6ee416d0d383b718
+ @Override public boolean lithium$itemInsertionTestRequiresStackSize1() {return true;} // Leaves - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/CrafterBlockEntity.java b/net/minecraft/world/level/block/entity/CrafterBlockEntity.java
index a631ad830d4820fbf983ef321b40f3192db4527f..6ecb54cbd7d57a9198e8b1273ee0cebb373a005d 100644
index a631ad830d4820fbf983ef321b40f3192db4527f..8c515d1164fe62b13633d30894e8291cc242cbb3 100644
--- a/net/minecraft/world/level/block/entity/CrafterBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/CrafterBlockEntity.java
@@ -22,7 +22,7 @@ import net.minecraft.world.level.block.state.BlockState;
@@ -1316,7 +1316,7 @@ index a631ad830d4820fbf983ef321b40f3192db4527f..6ecb54cbd7d57a9198e8b1273ee0cebb
+
+ @Override
+ public void lithium$handleSetChanged() {
+ if (this.isSleeping() && this.level != null && !this.level.isClientSide) {
+ if (this.isSleeping() && this.level != null && !this.level.isClientSide()) {
+ this.wakeUpNow();
+ }
+ }
@@ -2344,7 +2344,7 @@ index 83a8dc51d0346fb5b28922e7b54d5ee58b315228..b67a1cacad31a93276988560ef03879a
+ // Leaves end - Lithium Sleeping Block Entity
}
diff --git a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
index 034f01c0f8987fbfd32120c8186aa8c6f44eb81d..7b5518340aede4fe626c9aae0c5a301ab6522972 100644
index 85ba7ef0c2e50269427e168336cf29f5375f731d..faf41dcb07f0259fde4098b39a149c273fcc9c80 100644
--- a/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java
@@ -32,7 +32,7 @@ import net.minecraft.world.level.storage.ValueOutput;
@@ -2442,7 +2442,7 @@ index 9542e5c9418d74f131f794687b6c8276159d8c3f..906d7f9fb9135205ae7099cb12a50300
}
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index ff76f9ddc97c326bbe56a7ec138b11bf8e2d108d..7eb9d3e60869dbc8eafa6272c7e7bdcc2943b3ae 100644
index e5175fe703a103f7056618ca6322624c7fd8ad95..faf16d133286fe10a46048e8cb750ccaef48d704 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -932,12 +932,14 @@ public class LevelChunk extends ChunkAccess implements DebugValueSource, ca.spot

View File

@@ -81,6 +81,8 @@ import java.util.Objects;
import java.util.UUID;
import java.util.function.Predicate;
import static net.minecraft.server.MinecraftServer.getServer;
public class ServerBot extends ServerPlayer {
private final List<ServerBotAction<?>> actions;
@@ -199,7 +201,7 @@ public class ServerBot extends ServerPlayer {
this.notSleepTicks = 0;
}
if (!this.level().isClientSide && this.level().isBrightOutside()) {
if (!this.level().isClientSide() && this.level().isBrightOutside()) {
this.stopSleepInBed(false, true);
}
} else if (this.sleepCounter > 0) {
@@ -212,7 +214,7 @@ public class ServerBot extends ServerPlayer {
this.updateIsUnderwater();
if (this.getConfigValue(Configs.TICK_TYPE) == TickType.NETWORK) {
this.getServer().scheduleOnMain(this::runAction);
getServer().scheduleOnMain(this::runAction);
}
this.livingEntityTick();
@@ -350,7 +352,7 @@ public class ServerBot extends ServerPlayer {
if (LeavesConfig.modify.fakeplayer.canOpenInventory) {
if (player instanceof ServerPlayer player1 && player.getMainHandItem().isEmpty()) {
BotInventoryOpenEvent event = new BotInventoryOpenEvent(this.getBukkitEntity(), player1.getBukkitEntity());
this.getServer().server.getPluginManager().callEvent(event);
getServer().server.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
player.openMenu(new SimpleMenuProvider((i, inventory, p) -> ChestMenu.sixRows(i, inventory, this.container), this.getDisplayName()));
return InteractionResult.SUCCESS;
@@ -479,17 +481,17 @@ public class ServerBot extends ServerPlayer {
}
public void renderInfo() {
this.getServer().getPlayerList().getPlayers().forEach(this::sendPlayerInfo);
getServer().getPlayerList().getPlayers().forEach(this::sendPlayerInfo);
}
public void renderData() {
this.getServer().getPlayerList().getPlayers().forEach(
getServer().getPlayerList().getPlayers().forEach(
player -> this.sendFakeDataIfNeed(player, false)
);
}
private void sendPacket(Packet<?> packet) {
this.getServer().getPlayerList().getPlayers().forEach(player -> player.connection.send(packet));
getServer().getPlayerList().getPlayers().forEach(player -> player.connection.send(packet));
}
@Override
@@ -498,7 +500,7 @@ public class ServerBot extends ServerPlayer {
Component defaultMessage = this.getCombatTracker().getDeathMessage();
BotDeathEvent event = new BotDeathEvent(this.getBukkitEntity(), PaperAdventure.asAdventure(defaultMessage), flag);
this.getServer().server.getPluginManager().callEvent(event);
getServer().server.getPluginManager().callEvent(event);
if (event.isCancelled()) {
if (this.getHealth() <= 0) {
@@ -511,15 +513,15 @@ public class ServerBot extends ServerPlayer {
net.kyori.adventure.text.Component deathMessage = event.deathMessage();
if (event.isSendDeathMessage() && deathMessage != null && !deathMessage.equals(net.kyori.adventure.text.Component.empty())) {
this.getServer().getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(deathMessage), false);
getServer().getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(deathMessage), false);
}
this.getServer().getBotList().removeBot(this, BotRemoveEvent.RemoveReason.DEATH, null, false);
getServer().getBotList().removeBot(this, BotRemoveEvent.RemoveReason.DEATH, null, false);
}
@Override
public boolean startRiding(@NotNull Entity vehicle, boolean force) {
if (super.startRiding(vehicle, force)) {
public boolean startRiding(@NotNull Entity vehicle, boolean force, boolean sendGameEvent) {
if (super.startRiding(vehicle, force, sendGameEvent)) {
if (vehicle.getControllingPassenger() == this) { // see net.minecraft.server.networkServerGamePacketListenerImpl#handleMoveVehicle
this.setDeltaMovement(Vec3.ZERO);
this.setYRot(vehicle.yRotO);

View File

@@ -18,6 +18,8 @@ import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import static net.minecraft.server.MinecraftServer.getServer;
public class ServerLookAction extends ServerBotAction<ServerLookAction> {
private static final Vector ZERO_VECTOR = new Vector(0, 0, 0);
@@ -29,8 +31,8 @@ public class ServerLookAction extends ServerBotAction<ServerLookAction> {
public ServerLookAction() {
super("look", CommandArgument.of(CommandArgumentType.STRING, CommandArgumentType.DOUBLE, CommandArgumentType.DOUBLE), ServerLookAction::new);
this.setSuggestion(0, (sender, arg) -> sender instanceof Player player ?
Pair.of(Stream.concat(Arrays.stream(MinecraftServer.getServer().getPlayerNames()), Stream.of(DF.format(player.getX()))).toList(), "<Player>|<X>") :
Pair.of(Stream.concat(Arrays.stream(MinecraftServer.getServer().getPlayerNames()), Stream.of("0")).toList(), "<Player>|<X>")
Pair.of(Stream.concat(Arrays.stream(getServer().getPlayerNames()), Stream.of(DF.format(player.getX()))).toList(), "<Player>|<X>") :
Pair.of(Stream.concat(Arrays.stream(getServer().getPlayerNames()), Stream.of("0")).toList(), "<Player>|<X>")
);
this.setSuggestion(1, (sender, arg) -> sender instanceof Player player ? Pair.of(List.of(DF.format(player.getY())), "<Y>") : Pair.of(List.of("0"), "<Y>"));
this.setSuggestion(2, (sender, arg) -> sender instanceof Player player ? Pair.of(List.of(DF.format(player.getZ())), "<Z>") : Pair.of(List.of("0"), "<Z>"));
@@ -90,7 +92,7 @@ public class ServerLookAction extends ServerBotAction<ServerLookAction> {
@Override
public void loadCommand(ServerPlayer player, @NotNull CommandArgumentResult result) {
String nameOrX = result.readString(player.getScoreboardName());
ServerPlayer player1 = player.getServer().getPlayerList().getPlayerByName(nameOrX);
ServerPlayer player1 = getServer().getPlayerList().getPlayerByName(nameOrX);
if (player1 != null) {
this.setTarget(player1);
return;

View File

@@ -74,14 +74,14 @@ public class LeavesMinecraftSessionService extends PaperMinecraftSessionService
final HasJoinedMinecraftServerResponse response = client.get(url, HasJoinedMinecraftServerResponse.class);
if (response != null && response.id() != null) {
if (LeavesConfig.mics.yggdrasil.loginProtect && cache != null) {
if (!response.id().equals(cache.getId())) {
if (!response.id().equals(cache.id())) {
continue;
}
}
final GameProfile result1 = new GameProfile(response.id(), profileName);
if (response.properties() != null) {
result1.getProperties().putAll(response.properties());
result1.properties().putAll(response.properties());
}
final Set<ProfileActionType> profileActions = response.profileActions().stream()

View File

@@ -54,7 +54,7 @@ public class AppleSkinProtocol implements LeavesProtocol {
@ProtocolHandler.MinecraftRegister(onlyNamespace = true)
public static void onPlayerSubscribed(@NotNull Context context, ResourceLocation id) {
subscribedChannels.computeIfAbsent(context.profile().getId(), k -> new HashSet<>()).add(id.getPath());
subscribedChannels.computeIfAbsent(context.profile().id(), k -> new HashSet<>()).add(id.getPath());
}
@ProtocolHandler.Ticker

View File

@@ -69,8 +69,8 @@ public class BBORProtocol implements LeavesProtocol {
ServerLevel overworld = MinecraftServer.getServer().overworld();
ProtocolUtils.sendBytebufPacket(player, INITIALIZE_CLIENT, buf -> {
buf.writeLong(overworld.getSeed());
buf.writeInt(overworld.levelData.getSpawnPos().getX());
buf.writeInt(overworld.levelData.getSpawnPos().getZ());
buf.writeInt(overworld.levelData.getRespawnData().pos().getX());
buf.writeInt(overworld.levelData.getRespawnData().pos().getZ());
});
sendStructureList(player);
}

View File

@@ -48,7 +48,7 @@ public class CommonUtil {
return null;
}
Optional<GameProfile> optional = SkullBlockEntity.fetchGameProfile(String.valueOf(uuid)).getNow(Optional.empty());
return optional.map(GameProfile::getName).orElse(null);
return optional.map(GameProfile::name).orElse(null);
}

View File

@@ -164,7 +164,7 @@ public class ServuxHudDataProtocol implements LeavesProtocol {
private static void putWorldData(@NotNull CompoundTag metadata) {
ServerLevel level = MinecraftServer.getServer().overworld();
BlockPos spawnPos = level.levelData.getSpawnPos();
BlockPos spawnPos = level.levelData.getRespawnData().pos();
metadata.putInt("spawnPosX", spawnPos.getX());
metadata.putInt("spawnPosY", spawnPos.getY());
metadata.putInt("spawnPosZ", spawnPos.getZ());

View File

@@ -35,6 +35,8 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import static net.minecraft.server.MinecraftServer.getServer;
// Powered by Servux(https://github.com/sakura-ryoko/servux)
@LeavesProtocol.Register(namespace = "servux")
@@ -69,7 +71,7 @@ public class ServuxStructuresProtocol implements LeavesProtocol {
@ProtocolHandler.Ticker
public static void tick() {
MinecraftServer server = MinecraftServer.getServer();
MinecraftServer server = getServer();
int tickCounter = server.getTickCount();
retainDistance = server.getPlayerList().getViewDistance() + 2;
for (ServerPlayer player : players.values()) {
@@ -79,8 +81,8 @@ public class ServuxStructuresProtocol implements LeavesProtocol {
}
public static void onStartedWatchingChunk(ServerPlayer player, LevelChunk chunk) {
MinecraftServer server = player.getServer();
if (players.containsKey(player.getId()) && server != null) {
MinecraftServer server = getServer();
if (players.containsKey(player.getId())) {
addChunkTimeoutIfHasReferences(player.getUUID(), chunk, server.getTickCount());
}
}
@@ -119,7 +121,7 @@ public class ServuxStructuresProtocol implements LeavesProtocol {
LeavesLogger.LOGGER.warning(player.getScoreboardName() + " re-register servux:structures");
}
MinecraftServer server = MinecraftServer.getServer();
MinecraftServer server = getServer();
sendMetaData(player);
initialSyncStructures(player, player.moonrise$getViewDistanceHolder().getViewDistances().sendViewDistance() + 2, server.getTickCount());
}

View File

@@ -53,7 +53,7 @@ public class EntityUtils {
Entity passenger = createEntityAndPassengersFromNBT(tagList.getCompoundOrEmpty(i), world);
if (passenger != null) {
passenger.startRiding(entity, true);
passenger.startRiding(entity, true, true);
}
}
}

View File

@@ -55,7 +55,7 @@ public class CommunicationManager implements LeavesProtocol {
final VersionHandshakeServer hi = new VersionHandshakeServer(newPlayer);
playerMap.put(newPlayer, player);
final GameProfile profile = player.getGameProfile();
SyncmaticaProtocol.getPlayerIdentifierProvider().updateName(profile.getId(), profile.getName());
SyncmaticaProtocol.getPlayerIdentifierProvider().updateName(profile.id(), profile.name());
startExchangeUnchecked(hi);
}
@@ -149,7 +149,7 @@ public class CommunicationManager implements LeavesProtocol {
final UUID placementId = packetBuf.readUUID();
final ServerPlacement placement = SyncmaticaProtocol.getSyncmaticManager().getPlacement(placementId);
if (placement != null) {
if (!getGameProfile(source).getId().equals(placement.getOwner().uuid)) {
if (!getGameProfile(source).id().equals(placement.getOwner().uuid)) {
return;
}

View File

@@ -22,7 +22,7 @@ public class PlayerIdentifierProvider {
}
public PlayerIdentifier createOrGet(final @NotNull GameProfile gameProfile) {
return createOrGet(gameProfile.getId(), gameProfile.getName());
return createOrGet(gameProfile.id(), gameProfile.name());
}
public PlayerIdentifier createOrGet(final UUID uuid, final String playerName) {

View File

@@ -24,6 +24,8 @@ import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CopyOnWriteArrayList;
import static net.minecraft.server.MinecraftServer.getServer;
public class ServerPhotographer extends ServerPlayer {
private static final List<ServerPhotographer> photographers = new CopyOnWriteArrayList<>();
@@ -49,7 +51,7 @@ public class ServerPhotographer extends ServerPlayer {
throw new IllegalArgumentException(state.id + " is a invalid photographer id");
}
MinecraftServer server = MinecraftServer.getServer();
MinecraftServer server = getServer();
ServerLevel world = ((CraftWorld) state.loc.getWorld()).getHandle();
GameProfile profile = new GameProfile(UUID.randomUUID(), state.id);
@@ -62,7 +64,7 @@ public class ServerPhotographer extends ServerPlayer {
photographer.createState = state;
photographer.recorder.start();
MinecraftServer.getServer().getPlayerList().placeNewPhotographer(photographer.recorder, photographer, world);
getServer().getPlayerList().placeNewPhotographer(photographer.recorder, photographer, world);
photographer.level().chunkSource.move(photographer);
photographer.setInvisible(true);
photographers.add(photographer);
@@ -79,7 +81,7 @@ public class ServerPhotographer extends ServerPlayer {
this.lastPos = this.blockPosition();
super.tick();
if (this.getServer().getTickCount() % 10 == 0) {
if (getServer().getTickCount() % 10 == 0) {
connection.resetPosition();
this.level().chunkSource.move(this);
}
@@ -131,7 +133,7 @@ public class ServerPhotographer extends ServerPlayer {
super.remove(RemovalReason.KILLED);
photographers.remove(this);
this.recorder.stop();
this.getServer().getPlayerList().removePhotographer(this);
getServer().getPlayerList().removePhotographer(this);
LeavesLogger.LOGGER.info("Photographer " + createState.id + " removed");