diff options
author | Merrg1n <[email protected]> | 2022-08-13 22:36:35 +0800 |
---|---|---|
committer | Merrg1n <[email protected]> | 2022-08-14 01:42:37 +0800 |
commit | 94f092015a05d0179e307468c717ad391e455742 (patch) | |
tree | 1e90e0462e8bc2a6d4ae4131808b655089db72a9 /src/main/java/com/keuin/ohmyvanillamc/mixin/ReintroduceLlamaItemDuping.java | |
parent | 323226a7956b2dc1d56c56e63bc9354e2b8bd244 (diff) |
carpet ext
Diffstat (limited to 'src/main/java/com/keuin/ohmyvanillamc/mixin/ReintroduceLlamaItemDuping.java')
-rw-r--r-- | src/main/java/com/keuin/ohmyvanillamc/mixin/ReintroduceLlamaItemDuping.java | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/src/main/java/com/keuin/ohmyvanillamc/mixin/ReintroduceLlamaItemDuping.java b/src/main/java/com/keuin/ohmyvanillamc/mixin/ReintroduceLlamaItemDuping.java deleted file mode 100644 index fff7aff..0000000 --- a/src/main/java/com/keuin/ohmyvanillamc/mixin/ReintroduceLlamaItemDuping.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.keuin.ohmyvanillamc.mixin; - -import com.keuin.ohmyvanillamc.OhMyVanillaMinecraft; -import net.minecraft.advancement.PlayerAdvancementTracker; -import net.minecraft.entity.Entity; -import net.minecraft.network.Packet; -import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.PlayerManager; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.stat.ServerStatHandler; -import net.minecraft.stat.Stats; -import org.apache.logging.log4j.Logger; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -/** - * Reintroduce MC-161754 glitch - */ -@Mixin(PlayerManager.class) -public abstract class ReintroduceLlamaItemDuping { - - @Shadow - protected abstract void savePlayerData(ServerPlayerEntity player); - - @Shadow - @Final - private static Logger LOGGER; - - @Shadow - @Final - private List<ServerPlayerEntity> players; - - @Shadow - @Final - private MinecraftServer server; - - @Shadow - @Final - private Map<UUID, ServerPlayerEntity> playerMap; - - @Shadow - @Final - private Map<UUID, ServerStatHandler> statisticsMap; - - @Shadow - @Final - private Map<UUID, PlayerAdvancementTracker> advancementTrackers; - - @Shadow - public abstract void sendToAll(Packet<?> packet); - - /** - * @reason re-introduce llama item duplicating glitch. - * @author trueKeuin - */ - @Overwrite - public void remove(ServerPlayerEntity player) { - ServerWorld serverWorld = player.getServerWorld(); - player.incrementStat(Stats.LEAVE_GAME); - this.savePlayerData(player); - if (player.hasVehicle()) { - Entity entity = player.getRootVehicle(); - if (entity.hasPlayerRider()) { - LOGGER.debug("Removing player mount"); - player.stopRiding(); - serverWorld.removeEntity(entity); - // entity.removed = true - entity.removed = !OhMyVanillaMinecraft.getConfiguration().isReintroduceLlamaItemDuplicating() || entity.removed; - - Entity entity2; - for (Iterator var4 = entity.getPassengersDeep().iterator(); var4.hasNext(); // entity2.removed = true - entity2.removed = !OhMyVanillaMinecraft.getConfiguration().isReintroduceLlamaItemDuplicating() || entity2.removed) { - entity2 = (Entity) var4.next(); - serverWorld.removeEntity(entity2); - } - - serverWorld.getChunk(player.chunkX, player.chunkZ).markDirty(); - } - } - - player.detach(); - serverWorld.removePlayer(player); - player.getAdvancementTracker().clearCriteria(); - this.players.remove(player); - this.server.getBossBarManager().onPlayerDisconnect(player); - UUID uUID = player.getUuid(); - ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) this.playerMap.get(uUID); - if (serverPlayerEntity == player) { - this.playerMap.remove(uUID); - this.statisticsMap.remove(uUID); - this.advancementTrackers.remove(uUID); - } - - this.sendToAll(new PlayerListS2CPacket(PlayerListS2CPacket.Action.REMOVE_PLAYER, player)); - } -} |