3
0
Mirror von https://github.com/ViaVersion/ViaBackwards.git synchronisiert 2024-12-26 16:12:43 +01:00

Merge branch 'master' into dev

Dieser Commit ist enthalten in:
KennyTV 2020-07-09 17:10:45 +02:00
Commit d5b19b8869
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 6BE3B555EBC5982B
4 geänderte Dateien mit 24 neuen und 6 gelöschten Zeilen

Datei anzeigen

@ -297,9 +297,7 @@ public class EntityPackets1_11 extends LegacyEntityRewriter<Protocol1_10To1_11>
Metadata data = e.getData();
data.setId(13);
data.setMetaType(MetaType1_9.VarInt);
data.setValue((int) data.getValue() == 1 ? 2 : 4);
data.setValue(((Number) data.getValue()).intValue() == 1 ? 2 : 4);
return data;
});

Datei anzeigen

@ -39,9 +39,13 @@ public class ParticleMapping {
int type = blockType >> 4;
int meta = blockType & 15;
return new int[]{type + (meta << 12)};
}
@Override
public boolean isBlockHandler() {
return true;
}
};
particles = new ParticleData[]{
@ -148,11 +152,15 @@ public class ParticleMapping {
return new ParticleData(replacementId, handler);
}
interface ParticleHandler {
public interface ParticleHandler {
int[] rewrite(Protocol1_12_2To1_13 protocol, PacketWrapper wrapper) throws Exception;
int[] rewrite(Protocol1_12_2To1_13 protocol, List<Particle.ParticleData> data);
default boolean isBlockHandler() {
return false;
}
}
public static final class ParticleData {

Datei anzeigen

@ -382,6 +382,11 @@ public class EntityPackets1_13 extends LegacyEntityRewriter<Protocol1_12_2To1_13
int secondArg = 0;
int[] particleArgs = data.rewriteMeta(protocol, particle.getArguments());
if (particleArgs != null && particleArgs.length != 0) {
if (data.getHandler().isBlockHandler() && particleArgs[0] == 0) {
// Air doesn't have a break particle for sub 1.13 clients -> glass pane
particleArgs[0] = 102;
}
firstArg = particleArgs[0];
secondArg = particleArgs.length == 2 ? particleArgs[1] : 0;
}

Datei anzeigen

@ -139,8 +139,15 @@ public class PlayerPacket1_13 extends Rewriter<Protocol1_12_2To1_13> {
int[] data = old.rewriteData(protocol, wrapper);
if (data != null) {
for (int i : data)
if (old.getHandler().isBlockHandler() && data[0] == 0) {
// Cancel air block particles
wrapper.cancel();
return;
}
for (int i : data) {
wrapper.write(Type.VAR_INT, i);
}
}
}
});