diff options
author | glowredman <35727266+glowredman@users.noreply.github.com> | 2023-07-24 23:15:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-24 23:15:18 +0200 |
commit | 8b7e11bc2778fadc430c5a444895bf6fade62319 (patch) | |
tree | d8e4be4335c2bdbad521b00876233af3fe41935a /src/main/java/gregtech/api/net | |
parent | 5a4f0bfa3d1826d9a5634baea76f90333d2ae628 (diff) | |
download | GT5-Unofficial-8b7e11bc2778fadc430c5a444895bf6fade62319.tar.gz GT5-Unofficial-8b7e11bc2778fadc430c5a444895bf6fade62319.tar.bz2 GT5-Unofficial-8b7e11bc2778fadc430c5a444895bf6fade62319.zip |
Fix wrong Oregen Pattern on Servers (#2177)
* Update buildscript
* Send oregen pattern to client on login
Diffstat (limited to 'src/main/java/gregtech/api/net')
-rw-r--r-- | src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java b/src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java new file mode 100644 index 0000000000..d03fd1d7f0 --- /dev/null +++ b/src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java @@ -0,0 +1,56 @@ +package gregtech.api.net; + +import net.minecraft.world.IBlockAccess; + +import com.google.common.io.ByteArrayDataInput; + +import gregtech.api.util.GT_Log; +import gregtech.common.GT_Worldgenerator; +import gregtech.common.GT_Worldgenerator.OregenPattern; +import io.netty.buffer.ByteBuf; + +public class GT_Packet_SendOregenPattern extends GT_Packet_New { + + protected OregenPattern pattern = OregenPattern.AXISSYMMETRICAL; + + public GT_Packet_SendOregenPattern() { + super(true); + } + + public GT_Packet_SendOregenPattern(OregenPattern pattern) { + super(false); + this.pattern = pattern; + } + + @Override + public void encode(ByteBuf aOut) { + aOut.writeInt(this.pattern.ordinal()); + } + + @Override + public GT_Packet_New decode(ByteArrayDataInput aData) { + int ordinal = aData.readInt(); + // make sure we get valid data: + if (ordinal >= 0 && ordinal < OregenPattern.values().length) { + return new GT_Packet_SendOregenPattern(OregenPattern.values()[ordinal]); + } + // invalid data, default to AXISSYMMETRICAL: + GT_Log.err.println( + String.format( + "Received invalid data! Received %d but value must be between 0 and %d! Default (0) will be used.", + ordinal, + OregenPattern.values().length - 1)); + return new GT_Packet_SendOregenPattern(); + } + + @Override + public byte getPacketID() { + return 19; + } + + @Override + public void process(IBlockAccess aWorld) { + GT_Worldgenerator.oregenPattern = this.pattern; + } + +} |