Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-29 09:30:08 +01:00
Fix recipe book not being empty when using a multi-server configuration, with servers which are pre-1.12. (#3156)
Dieser Commit ist enthalten in:
Ursprung
e7f07d1fdb
Commit
85f9414b95
@ -33,6 +33,7 @@ import com.viaversion.viaversion.api.protocol.AbstractProtocol;
|
|||||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||||
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
||||||
import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper;
|
import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper;
|
||||||
|
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
|
||||||
import com.viaversion.viaversion.api.rewriter.ItemRewriter;
|
import com.viaversion.viaversion.api.rewriter.ItemRewriter;
|
||||||
import com.viaversion.viaversion.api.type.Type;
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
import com.viaversion.viaversion.api.type.types.version.Types1_12;
|
import com.viaversion.viaversion.api.type.types.version.Types1_12;
|
||||||
@ -40,6 +41,8 @@ import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
|||||||
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.metadata.MetadataRewriter1_12To1_11_1;
|
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.metadata.MetadataRewriter1_12To1_11_1;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.packets.InventoryPackets;
|
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.packets.InventoryPackets;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.providers.InventoryQuickMoveProvider;
|
import com.viaversion.viaversion.protocols.protocol1_12to1_11_1.providers.InventoryQuickMoveProvider;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ClientboundPackets1_13;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type;
|
import com.viaversion.viaversion.protocols.protocol1_9_1_2to1_9_3_4.types.Chunk1_9_3_4Type;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ClientboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ClientboundPackets1_9_3;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ServerboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.ServerboundPackets1_9_3;
|
||||||
@ -164,9 +167,16 @@ public class Protocol1_12To1_11_1 extends AbstractProtocol<ClientboundPackets1_9
|
|||||||
map(Type.UNSIGNED_BYTE);
|
map(Type.UNSIGNED_BYTE);
|
||||||
map(Type.INT);
|
map(Type.INT);
|
||||||
handler(wrapper -> {
|
handler(wrapper -> {
|
||||||
ClientWorld clientChunks = wrapper.user().get(ClientWorld.class);
|
UserConnection user = wrapper.user();
|
||||||
|
ClientWorld clientChunks = user.get(ClientWorld.class);
|
||||||
int dimensionId = wrapper.get(Type.INT, 1);
|
int dimensionId = wrapper.get(Type.INT, 1);
|
||||||
clientChunks.setEnvironment(dimensionId);
|
clientChunks.setEnvironment(dimensionId);
|
||||||
|
|
||||||
|
// Reset recipes
|
||||||
|
if (user.getProtocolInfo().getProtocolVersion() >= ProtocolVersion.v1_13.getVersion()) {
|
||||||
|
wrapper.create(ClientboundPackets1_13.DECLARE_RECIPES, packetWrapper -> packetWrapper.write(Type.VAR_INT, 0))
|
||||||
|
.scheduleSend(Protocol1_13To1_12_2.class);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.packets;
|
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.packets;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.Via;
|
||||||
import com.viaversion.viaversion.api.minecraft.entities.Entity1_13Types;
|
import com.viaversion.viaversion.api.minecraft.entities.Entity1_13Types;
|
||||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||||
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
||||||
@ -146,6 +147,25 @@ public class EntityPackets {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
protocol.registerClientbound(ClientboundPackets1_12_1.ENTITY_EFFECT, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
map(Type.VAR_INT); // Entity id
|
||||||
|
map(Type.BYTE); // Effect id
|
||||||
|
map(Type.BYTE); // Amplifier
|
||||||
|
map(Type.VAR_INT); // Duration
|
||||||
|
|
||||||
|
handler(packetWrapper -> {
|
||||||
|
byte flags = packetWrapper.read(Type.BYTE); // Input Flags
|
||||||
|
|
||||||
|
if (Via.getConfig().isNewEffectIndicator())
|
||||||
|
flags |= 0x04;
|
||||||
|
|
||||||
|
packetWrapper.write(Type.BYTE, flags);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
metadataRewriter.registerRemoveEntities(ClientboundPackets1_12_1.DESTROY_ENTITIES);
|
metadataRewriter.registerRemoveEntities(ClientboundPackets1_12_1.DESTROY_ENTITIES);
|
||||||
metadataRewriter.registerMetadataRewriter(ClientboundPackets1_12_1.ENTITY_METADATA, Types1_12.METADATA_LIST, Types1_13.METADATA_LIST);
|
metadataRewriter.registerMetadataRewriter(ClientboundPackets1_12_1.ENTITY_METADATA, Types1_12.METADATA_LIST, Types1_13.METADATA_LIST);
|
||||||
}
|
}
|
||||||
|
@ -141,6 +141,17 @@ public class WorldPackets {
|
|||||||
compoundTag.put("Text" + i, new StringTag(text.toString()));
|
compoundTag.put("Text" + i, new StringTag(text.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (id.equals("minecraft:mob_spawner")) {
|
||||||
|
Tag spawnDataTag = compoundTag.get("SpawnData");
|
||||||
|
if (spawnDataTag instanceof CompoundTag) {
|
||||||
|
Tag spawnDataIdTag = ((CompoundTag) spawnDataTag).get("id");
|
||||||
|
if (spawnDataIdTag instanceof StringTag) {
|
||||||
|
StringTag spawnDataIdStringTag = ((StringTag) spawnDataIdTag);
|
||||||
|
if (spawnDataIdStringTag.getValue().equals("minecraft:zombie_pigman")) {
|
||||||
|
spawnDataIdStringTag.setValue("minecraft:zombified_piglin");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren