Small fixes, add majorVersion method, nicer getter names in some classes

None of the deprecated methods will be removed anytime soon.
This commit is contained in:
Nassim Jahnke 2021-08-28 22:15:28 +02:00
parent e7a0b4cf04
commit f2147179c2
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
38 changed files with 238 additions and 98 deletions

View File

@ -167,12 +167,12 @@ public class ProtocolVersion {
Preconditions.checkArgument(!versionWildcard || versionRange == null, "A version cannot be a wildcard and a range at the same time!"); Preconditions.checkArgument(!versionWildcard || versionRange == null, "A version cannot be a wildcard and a range at the same time!");
if (versionRange != null) { if (versionRange != null) {
includedVersions = new LinkedHashSet<>(); includedVersions = new LinkedHashSet<>();
for (int i = versionRange.getRangeFrom(); i <= versionRange.getRangeTo(); i++) { for (int i = versionRange.rangeFrom(); i <= versionRange.rangeTo(); i++) {
if (i == 0) { if (i == 0) {
includedVersions.add(versionRange.getBaseVersion()); // Keep both the base version and with ".0" appended includedVersions.add(versionRange.baseVersion()); // Keep both the base version and with ".0" appended
} }
includedVersions.add(versionRange.getBaseVersion() + "." + i); includedVersions.add(versionRange.baseVersion() + "." + i);
} }
} else { } else {
includedVersions = Collections.singleton(name); includedVersions = Collections.singleton(name);

View File

@ -46,13 +46,25 @@ import java.util.UUID;
public interface ViaAPI<T> { public interface ViaAPI<T> {
/** /**
* Returns the API version incremented with meaningful API changes. * Returns the <b>major version</b> matching {@link #getVersion()}.
* It is highly advised to check against the major version and to disable/not initiate
* any hooks into ViaVersion if given and expected versions do not match.
*
* @return major plugin version
* @since 4.0.2
*/
default int majorVersion() {
return 4;
}
/**
* Returns an <b>internally based API version</b> incremented with meaningful API changes.
* This includes breaking changes to existing API and larger additions. * This includes breaking changes to existing API and larger additions.
* *
* @return API version incremented with meaningful API changes * @return API version incremented with meaningful API changes
*/ */
default int apiVersion() { default int apiVersion() {
return 4; return 5;
} }
/** /**

View File

@ -89,10 +89,10 @@ public class MappingDataBase implements MappingData {
if (diffmapping != null && diffmapping.has("tags")) { if (diffmapping != null && diffmapping.has("tags")) {
this.tags = new EnumMap<>(RegistryType.class); this.tags = new EnumMap<>(RegistryType.class);
JsonObject tags = diffmapping.getAsJsonObject("tags"); JsonObject tags = diffmapping.getAsJsonObject("tags");
if (tags.has(RegistryType.ITEM.getResourceLocation())) { if (tags.has(RegistryType.ITEM.resourceLocation())) {
loadTags(RegistryType.ITEM, tags, MappingDataLoader.indexedObjectToMap(newMappings.getAsJsonObject("items"))); loadTags(RegistryType.ITEM, tags, MappingDataLoader.indexedObjectToMap(newMappings.getAsJsonObject("items")));
} }
if (tags.has(RegistryType.BLOCK.getResourceLocation())) { if (tags.has(RegistryType.BLOCK.resourceLocation())) {
loadTags(RegistryType.BLOCK, tags, MappingDataLoader.indexedObjectToMap(newMappings.getAsJsonObject("blocks"))); loadTags(RegistryType.BLOCK, tags, MappingDataLoader.indexedObjectToMap(newMappings.getAsJsonObject("blocks")));
} }
} }
@ -101,7 +101,7 @@ public class MappingDataBase implements MappingData {
} }
private void loadTags(RegistryType type, JsonObject object, Object2IntMap<String> typeMapping) { private void loadTags(RegistryType type, JsonObject object, Object2IntMap<String> typeMapping) {
JsonObject tags = object.getAsJsonObject(type.getResourceLocation()); JsonObject tags = object.getAsJsonObject(type.resourceLocation());
List<TagData> tagsList = new ArrayList<>(tags.size()); List<TagData> tagsList = new ArrayList<>(tags.size());
for (Map.Entry<String, JsonElement> entry : tags.entrySet()) { for (Map.Entry<String, JsonElement> entry : tags.entrySet()) {
JsonArray array = entry.getValue().getAsJsonArray(); JsonArray array = entry.getValue().getAsJsonArray();

View File

@ -62,18 +62,38 @@ public enum BlockFace {
return opposites.get(this); return opposites.get(this);
} }
public byte modX() {
return modX;
}
public byte modY() {
return modY;
}
public byte modZ() {
return modZ;
}
public EnumAxis axis() {
return axis;
}
@Deprecated/*(forRemoval = true)*/
public byte getModX() { public byte getModX() {
return modX; return modX;
} }
@Deprecated/*(forRemoval = true)*/
public byte getModY() { public byte getModY() {
return modY; return modY;
} }
@Deprecated/*(forRemoval = true)*/
public byte getModZ() { public byte getModZ() {
return modZ; return modZ;
} }
@Deprecated/*(forRemoval = true)*/
public EnumAxis getAxis() { public EnumAxis getAxis() {
return axis; return axis;
} }

View File

@ -34,6 +34,11 @@ public enum Environment {
this.id = id; this.id = id;
} }
public int id() {
return id;
}
@Deprecated/*(forRemoval = true)*/
public int getId() { public int getId() {
return id; return id;
} }

View File

@ -33,14 +33,29 @@ public class EulerAngle {
this.z = z; this.z = z;
} }
public float x() {
return x;
}
public float y() {
return y;
}
public float z() {
return z;
}
@Deprecated/*(forRemoval = true)*/
public float getX() { public float getX() {
return x; return x;
} }
@Deprecated/*(forRemoval = true)*/
public float getY() { public float getY() {
return y; return y;
} }
@Deprecated/*(forRemoval = true)*/
public float getZ() { public float getZ() {
return z; return z;
} }

View File

@ -33,28 +33,43 @@ public class Position {
this.z = z; this.z = z;
} }
@Deprecated/*(forRemoval=true)*/
public Position(int x, short y, int z) { public Position(int x, short y, int z) {
this.x = x; this(x, (int) y, z);
this.y = y;
this.z = z;
} }
@Deprecated/*(forRemoval=true)*/
public Position(Position toCopy) { public Position(Position toCopy) {
this(toCopy.getX(), toCopy.getY(), toCopy.getZ()); this(toCopy.x(), toCopy.y(), toCopy.z());
} }
public Position getRelative(BlockFace face) { public Position getRelative(BlockFace face) {
return new Position(x + face.getModX(), (short) (y + face.getModY()), z + face.getModZ()); return new Position(x + face.modX(), (short) (y + face.modY()), z + face.modZ());
} }
public int x() {
return x;
}
public int y() {
return y;
}
public int z() {
return z;
}
@Deprecated/*(forRemoval=true)*/
public int getX() { public int getX() {
return x; return x;
} }
@Deprecated/*(forRemoval=true)*/
public int getY() { public int getY() {
return y; return y;
} }
@Deprecated/*(forRemoval=true)*/
public int getZ() { public int getZ() {
return z; return z;
} }

View File

@ -58,7 +58,12 @@ public enum RegistryType {
this.resourceLocation = resourceLocation; this.resourceLocation = resourceLocation;
} }
@Deprecated/*(forRemoval = true)*/
public String getResourceLocation() { public String getResourceLocation() {
return resourceLocation; return resourceLocation;
} }
public String resourceLocation() {
return resourceLocation;
}
} }

View File

@ -33,26 +33,44 @@ public class Vector {
this.blockZ = blockZ; this.blockZ = blockZ;
} }
public int blockX() {
return blockX;
}
public int blockY() {
return blockY;
}
public int blockZ() {
return blockZ;
}
@Deprecated/*(forRemoval=true)*/
public int getBlockX() { public int getBlockX() {
return blockX; return blockX;
} }
public void setBlockX(int blockX) { @Deprecated/*(forRemoval=true)*/
this.blockX = blockX;
}
public int getBlockY() { public int getBlockY() {
return blockY; return blockY;
} }
public void setBlockY(int blockY) { @Deprecated/*(forRemoval=true)*/
this.blockY = blockY;
}
public int getBlockZ() { public int getBlockZ() {
return blockZ; return blockZ;
} }
@Deprecated/*(forRemoval=true)*/
public void setBlockX(int blockX) {
this.blockX = blockX;
}
@Deprecated/*(forRemoval=true)*/
public void setBlockY(int blockY) {
this.blockY = blockY;
}
@Deprecated/*(forRemoval=true)*/
public void setBlockZ(int blockZ) { public void setBlockZ(int blockZ) {
this.blockZ = blockZ; this.blockZ = blockZ;
} }

View File

@ -33,14 +33,29 @@ public class VillagerData {
this.level = level; this.level = level;
} }
public int type() {
return type;
}
public int profession() {
return profession;
}
public int level() {
return level;
}
@Deprecated/*(forRemoval=true)*/
public int getType() { public int getType() {
return type; return type;
} }
@Deprecated/*(forRemoval=true)*/
public int getProfession() { public int getProfession() {
return profession; return profession;
} }
@Deprecated/*(forRemoval=true)*/
public int getLevel() { public int getLevel() {
return level; return level;
} }

View File

@ -121,7 +121,7 @@ public final class Metadata {
if (o == null || getClass() != o.getClass()) return false; if (o == null || getClass() != o.getClass()) return false;
Metadata metadata = (Metadata) o; Metadata metadata = (Metadata) o;
if (id != metadata.id) return false; if (id != metadata.id) return false;
if (metaType != metaType) return false; if (metaType != metadata.metaType) return false;
return Objects.equals(value, metadata.value); return Objects.equals(value, metadata.value);
} }

View File

@ -26,16 +26,26 @@ public interface ProtocolPathEntry {
/** /**
* Returns the resulting protocol after transformation using * Returns the resulting protocol after transformation using
* the {@link #getProtocol()} protocol handlers. * the {@link #protocol()} protocol handlers.
* *
* @return output protocol version after transformation * @return output protocol version after transformation
*/ */
int getOutputProtocolVersion(); int outputProtocolVersion();
/** /**
* Returns the protocol to be applied with this entry. * Returns the protocol to be applied with this entry.
* *
* @return protocol to be applied with this entry * @return protocol to be applied with this entry
*/ */
Protocol getProtocol(); Protocol<?, ?, ?, ?> protocol();
@Deprecated/*(forRemoval = true)*/
default int getOutputProtocolVersion() {
return outputProtocolVersion();
}
@Deprecated/*(forRemoval = true)*/
default Protocol getProtocol() {
return protocol();
}
} }

View File

@ -29,12 +29,22 @@ public interface ProtocolPathKey {
* *
* @return client protocol version * @return client protocol version
*/ */
int getClientProtocolVersion(); int clientProtocolVersion();
/** /**
* Returns the server protocol version. * Returns the server protocol version.
* *
* @return server protocol version * @return server protocol version
*/ */
int getServerProtocolVersion(); int serverProtocolVersion();
@Deprecated/*(forRemoval = true)*/
default int getClientProtocolVersion() {
return clientProtocolVersion();
}
@Deprecated/*(forRemoval = true)*/
default int getServerProtocolVersion() {
return serverProtocolVersion();
}
} }

View File

@ -215,12 +215,12 @@ public class ProtocolVersion {
Preconditions.checkArgument(!versionWildcard || versionRange == null, "A version cannot be a wildcard and a range at the same time!"); Preconditions.checkArgument(!versionWildcard || versionRange == null, "A version cannot be a wildcard and a range at the same time!");
if (versionRange != null) { if (versionRange != null) {
includedVersions = new LinkedHashSet<>(); includedVersions = new LinkedHashSet<>();
for (int i = versionRange.getRangeFrom(); i <= versionRange.getRangeTo(); i++) { for (int i = versionRange.rangeFrom(); i <= versionRange.rangeTo(); i++) {
if (i == 0) { if (i == 0) {
includedVersions.add(versionRange.getBaseVersion()); // Keep both the base version and with ".0" appended includedVersions.add(versionRange.baseVersion()); // Keep both the base version and with ".0" appended
} }
includedVersions.add(versionRange.getBaseVersion() + "." + i); includedVersions.add(versionRange.baseVersion() + "." + i);
} }
} else { } else {
includedVersions = Collections.singleton(name); includedVersions = Collections.singleton(name);

View File

@ -50,7 +50,7 @@ public class VersionRange {
* *
* @return major version name * @return major version name
*/ */
public String getBaseVersion() { public String baseVersion() {
return baseVersion; return baseVersion;
} }
@ -59,7 +59,7 @@ public class VersionRange {
* *
* @return lowest included minor version * @return lowest included minor version
*/ */
public int getRangeFrom() { public int rangeFrom() {
return rangeFrom; return rangeFrom;
} }
@ -68,6 +68,21 @@ public class VersionRange {
* *
* @return highest included minor version * @return highest included minor version
*/ */
public int rangeTo() {
return rangeTo;
}
@Deprecated/*(forRemoval = true)*/
public String getBaseVersion() {
return baseVersion;
}
@Deprecated/*(forRemoval = true)*/
public int getRangeFrom() {
return rangeFrom;
}
@Deprecated/*(forRemoval = true)*/
public int getRangeTo() { public int getRangeTo() {
return rangeTo; return rangeTo;
} }

View File

@ -42,8 +42,8 @@ public class EulerAngleType extends Type<EulerAngle> {
@Override @Override
public void write(ByteBuf buffer, EulerAngle object) throws Exception { public void write(ByteBuf buffer, EulerAngle object) throws Exception {
Type.FLOAT.writePrimitive(buffer, object.getX()); Type.FLOAT.writePrimitive(buffer, object.x());
Type.FLOAT.writePrimitive(buffer, object.getY()); Type.FLOAT.writePrimitive(buffer, object.y());
Type.FLOAT.writePrimitive(buffer, object.getZ()); Type.FLOAT.writePrimitive(buffer, object.z());
} }
} }

View File

@ -44,8 +44,8 @@ public class Position1_14Type extends Type<Position> {
@Override @Override
public void write(ByteBuf buffer, Position object) { public void write(ByteBuf buffer, Position object) {
buffer.writeLong((((long) object.getX() & 0x3ffffff) << 38) buffer.writeLong((((long) object.x() & 0x3ffffff) << 38)
| (object.getY() & 0xfff) | (object.y() & 0xfff)
| ((((long) object.getZ()) & 0x3ffffff) << 12)); | ((((long) object.z()) & 0x3ffffff) << 12));
} }
} }

View File

@ -44,8 +44,8 @@ public class PositionType extends Type<Position> {
@Override @Override
public void write(ByteBuf buffer, Position object) { public void write(ByteBuf buffer, Position object) {
buffer.writeLong((((long) object.getX() & 0x3ffffff) << 38) buffer.writeLong((((long) object.x() & 0x3ffffff) << 38)
| ((((long) object.getY()) & 0xfff) << 26) | ((((long) object.y()) & 0xfff) << 26)
| (object.getZ() & 0x3ffffff)); | (object.z() & 0x3ffffff));
} }
} }

View File

@ -42,8 +42,8 @@ public class VectorType extends Type<Vector> {
@Override @Override
public void write(ByteBuf buffer, Vector object) throws Exception { public void write(ByteBuf buffer, Vector object) throws Exception {
Type.INT.write(buffer, object.getBlockX()); Type.INT.write(buffer, object.blockX());
Type.INT.write(buffer, object.getBlockY()); Type.INT.write(buffer, object.blockY());
Type.INT.write(buffer, object.getBlockZ()); Type.INT.write(buffer, object.blockZ());
} }
} }

View File

@ -38,8 +38,8 @@ public class VillagerDataType extends Type<VillagerData> {
@Override @Override
public void write(ByteBuf buffer, VillagerData object) throws Exception { public void write(ByteBuf buffer, VillagerData object) throws Exception {
Type.VAR_INT.writePrimitive(buffer, object.getType()); Type.VAR_INT.writePrimitive(buffer, object.type());
Type.VAR_INT.writePrimitive(buffer, object.getProfession()); Type.VAR_INT.writePrimitive(buffer, object.profession());
Type.VAR_INT.writePrimitive(buffer, object.getLevel()); Type.VAR_INT.writePrimitive(buffer, object.level());
} }
} }

View File

@ -194,7 +194,7 @@ public class BungeeServerHandler implements Listener {
} else { } else {
List<Protocol> protocols = new ArrayList<>(protocolPath.size()); List<Protocol> protocols = new ArrayList<>(protocolPath.size());
for (ProtocolPathEntry entry : protocolPath) { for (ProtocolPathEntry entry : protocolPath) {
protocols.add(entry.getProtocol()); protocols.add(entry.protocol());
} }
pipeline.add(protocols); pipeline.add(protocols);
} }

View File

@ -236,7 +236,7 @@ public class ProtocolManagerImpl implements ProtocolManager {
supportedVersions.add(version.getVersion()); supportedVersions.add(version.getVersion());
for (ProtocolPathEntry pathEntry : protocolPath) { for (ProtocolPathEntry pathEntry : protocolPath) {
supportedVersions.add(pathEntry.getOutputProtocolVersion()); supportedVersions.add(pathEntry.outputProtocolVersion());
} }
} }
} }

View File

@ -22,20 +22,20 @@ import com.viaversion.viaversion.api.protocol.ProtocolPathEntry;
public class ProtocolPathEntryImpl implements ProtocolPathEntry { public class ProtocolPathEntryImpl implements ProtocolPathEntry {
private final int outputProtocolVersion; private final int outputProtocolVersion;
private final Protocol protocol; private final Protocol<?, ?, ?, ?> protocol;
public ProtocolPathEntryImpl(int outputProtocolVersion, Protocol protocol) { public ProtocolPathEntryImpl(int outputProtocolVersion, Protocol<?, ?, ?, ?> protocol) {
this.outputProtocolVersion = outputProtocolVersion; this.outputProtocolVersion = outputProtocolVersion;
this.protocol = protocol; this.protocol = protocol;
} }
@Override @Override
public int getOutputProtocolVersion() { public int outputProtocolVersion() {
return outputProtocolVersion; return outputProtocolVersion;
} }
@Override @Override
public Protocol getProtocol() { public Protocol<?, ?, ?, ?> protocol() {
return protocol; return protocol;
} }

View File

@ -29,12 +29,12 @@ public class ProtocolPathKeyImpl implements ProtocolPathKey {
} }
@Override @Override
public int getClientProtocolVersion() { public int clientProtocolVersion() {
return clientProtocolVersion; return clientProtocolVersion;
} }
@Override @Override
public int getServerProtocolVersion() { public int serverProtocolVersion() {
return serverProtocolVersion; return serverProtocolVersion;
} }

View File

@ -152,7 +152,7 @@ public class VersionedPacketTransformerImpl<C extends ClientboundPacketType, S e
if (path != null) { if (path != null) {
protocolList = new ArrayList<>(path.size()); protocolList = new ArrayList<>(path.size());
for (ProtocolPathEntry entry : path) { for (ProtocolPathEntry entry : path) {
protocolList.add(entry.getProtocol()); protocolList.add(entry.protocol());
} }
} else if (serverProtocolVersion != clientProtocolVersion) { } else if (serverProtocolVersion != clientProtocolVersion) {
throw new RuntimeException("No protocol path between client version " + clientProtocolVersion + " and server version " + serverProtocolVersion); throw new RuntimeException("No protocol path between client version " + clientProtocolVersion + " and server version " + serverProtocolVersion);

View File

@ -72,10 +72,10 @@ public class BaseProtocol extends AbstractProtocol {
if (protocolPath != null) { if (protocolPath != null) {
List<Protocol> protocols = new ArrayList<>(protocolPath.size()); List<Protocol> protocols = new ArrayList<>(protocolPath.size());
for (ProtocolPathEntry entry : protocolPath) { for (ProtocolPathEntry entry : protocolPath) {
protocols.add(entry.getProtocol()); protocols.add(entry.protocol());
// Ensure mapping data has already been loaded // Ensure mapping data has already been loaded
Via.getManager().getProtocolManager().completeMappingDataLoading(entry.getProtocol().getClass()); Via.getManager().getProtocolManager().completeMappingDataLoading(entry.protocol().getClass());
} }
// Add protocols to pipeline // Add protocols to pipeline

View File

@ -108,9 +108,9 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
public static final PacketHandler POS_TO_3_INT = wrapper -> { public static final PacketHandler POS_TO_3_INT = wrapper -> {
Position position = wrapper.read(Type.POSITION); Position position = wrapper.read(Type.POSITION);
wrapper.write(Type.INT, position.getX()); wrapper.write(Type.INT, position.x());
wrapper.write(Type.INT, position.getY()); wrapper.write(Type.INT, position.y());
wrapper.write(Type.INT, position.getZ()); wrapper.write(Type.INT, position.z());
}; };
private static final PacketHandler SEND_DECLARE_COMMANDS_AND_TAGS = private static final PacketHandler SEND_DECLARE_COMMANDS_AND_TAGS =

View File

@ -58,7 +58,7 @@ public class ConnectionData {
public static void update(UserConnection user, Position position) { public static void update(UserConnection user, Position position) {
for (BlockFace face : BlockFace.values()) { for (BlockFace face : BlockFace.values()) {
Position pos = position.getRelative(face); Position pos = position.getRelative(face);
int blockState = blockConnectionProvider.getBlockData(user, pos.getX(), pos.getY(), pos.getZ()); int blockState = blockConnectionProvider.getBlockData(user, pos.x(), pos.y(), pos.z());
ConnectionHandler handler = connectionHandlerMap.get(blockState); ConnectionHandler handler = connectionHandlerMap.get(blockState);
if (handler == null) continue; if (handler == null) continue;
@ -151,12 +151,12 @@ public class ConnectionData {
} }
public static void updateBlock(UserConnection user, Position pos, List<BlockChangeRecord1_8> records) { public static void updateBlock(UserConnection user, Position pos, List<BlockChangeRecord1_8> records) {
int blockState = blockConnectionProvider.getBlockData(user, pos.getX(), pos.getY(), pos.getZ()); int blockState = blockConnectionProvider.getBlockData(user, pos.x(), pos.y(), pos.z());
ConnectionHandler handler = getConnectionHandler(blockState); ConnectionHandler handler = getConnectionHandler(blockState);
if (handler == null) return; if (handler == null) return;
int newBlockState = handler.connect(user, pos, blockState); int newBlockState = handler.connect(user, pos, blockState);
records.add(new BlockChangeRecord1_8(pos.getX() & 0xF, pos.getY(), pos.getZ() & 0xF, newBlockState)); records.add(new BlockChangeRecord1_8(pos.x() & 0xF, pos.y(), pos.z() & 0xF, newBlockState));
} }
public static void updateBlockStorage(UserConnection userConnection, int x, int y, int z, int blockState) { public static void updateBlockStorage(UserConnection userConnection, int x, int y, int z, int blockState) {

View File

@ -27,6 +27,6 @@ public abstract class ConnectionHandler {
public abstract int connect(UserConnection user, Position position, int blockState); public abstract int connect(UserConnection user, Position position, int blockState);
public int getBlockData(UserConnection user, Position position) { public int getBlockData(UserConnection user, Position position) {
return Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockData(user, position.getX(), position.getY(), position.getZ()); return Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockData(user, position.x(), position.y(), position.z());
} }
} }

View File

@ -122,7 +122,7 @@ public class StairConnectionHandler extends ConnectionHandler {
StairData relativeStair = stairDataMap.get(getBlockData(user, position.getRelative(facing))); StairData relativeStair = stairDataMap.get(getBlockData(user, position.getRelative(facing)));
if (relativeStair != null && relativeStair.isBottom() == stair.isBottom()) { if (relativeStair != null && relativeStair.isBottom() == stair.isBottom()) {
BlockFace facing2 = relativeStair.getFacing(); BlockFace facing2 = relativeStair.getFacing();
if (facing.getAxis() != facing2.getAxis() && checkOpposite(user, stair, position, facing2.opposite())) { if (facing.axis() != facing2.axis() && checkOpposite(user, stair, position, facing2.opposite())) {
return facing2 == rotateAntiClockwise(facing) ? 3 : 4; // outer_left : outer_right return facing2 == rotateAntiClockwise(facing) ? 3 : 4; // outer_left : outer_right
} }
} }
@ -130,7 +130,7 @@ public class StairConnectionHandler extends ConnectionHandler {
relativeStair = stairDataMap.get(getBlockData(user, position.getRelative(facing.opposite()))); relativeStair = stairDataMap.get(getBlockData(user, position.getRelative(facing.opposite())));
if (relativeStair != null && relativeStair.isBottom() == stair.isBottom()) { if (relativeStair != null && relativeStair.isBottom() == stair.isBottom()) {
BlockFace facing2 = relativeStair.getFacing(); BlockFace facing2 = relativeStair.getFacing();
if (facing.getAxis() != facing2.getAxis() && checkOpposite(user, stair, position, facing2)) { if (facing.axis() != facing2.axis() && checkOpposite(user, stair, position, facing2)) {
return facing2 == rotateAntiClockwise(facing) ? 1 : 2; // inner_left : inner_right return facing2 == rotateAntiClockwise(facing) ? 1 : 2; // inner_left : inner_right
} }
} }

View File

@ -167,7 +167,7 @@ public class WorldPackets {
if (blockId == 73) { // Note block if (blockId == 73) { // Note block
PacketWrapper blockChange = wrapper.create(0x0B); // block change PacketWrapper blockChange = wrapper.create(0x0B); // block change
blockChange.write(Type.POSITION, new Position(pos)); // Clone because position is mutable blockChange.write(Type.POSITION, pos);
blockChange.write(Type.VAR_INT, 249 + (action * 24 * 2) + (param * 2)); blockChange.write(Type.VAR_INT, 249 + (action * 24 * 2) + (param * 2));
blockChange.send(Protocol1_13To1_12_2.class); blockChange.send(Protocol1_13To1_12_2.class);
} }
@ -191,7 +191,7 @@ public class WorldPackets {
UserConnection userConnection = wrapper.user(); UserConnection userConnection = wrapper.user();
if (Via.getConfig().isServersideBlockConnections()) { if (Via.getConfig().isServersideBlockConnections()) {
ConnectionData.updateBlockStorage(userConnection, position.getX(), position.getY(), position.getZ(), newId); ConnectionData.updateBlockStorage(userConnection, position.x(), position.y(), position.z(), newId);
newId = ConnectionData.connect(userConnection, position, newId); newId = ConnectionData.connect(userConnection, position, newId);
} }
wrapper.set(Type.VAR_INT, 0, checkStorage(wrapper.user(), position, newId)); wrapper.set(Type.VAR_INT, 0, checkStorage(wrapper.user(), position, newId));
@ -229,7 +229,7 @@ public class WorldPackets {
record.getSectionZ() + (chunkZ * 16)); record.getSectionZ() + (chunkZ * 16));
if (Via.getConfig().isServersideBlockConnections()) { if (Via.getConfig().isServersideBlockConnections()) {
ConnectionData.updateBlockStorage(userConnection, position.getX(), position.getY(), position.getZ(), newBlock); ConnectionData.updateBlockStorage(userConnection, position.x(), position.y(), position.z(), newBlock);
} }
record.setBlockId(checkStorage(wrapper.user(), position, newBlock)); record.setBlockId(checkStorage(wrapper.user(), position, newBlock));
} }
@ -297,7 +297,7 @@ public class WorldPackets {
records[i] = position; records[i] = position;
// Set to air // Set to air
ConnectionData.updateBlockStorage(userConnection, position.getX(), position.getY(), position.getZ(), 0); ConnectionData.updateBlockStorage(userConnection, position.x(), position.y(), position.z(), 0);
} }
// Workaround for packet order issue // Workaround for packet order issue

View File

@ -133,7 +133,7 @@ public class BlockConnectionStorage implements StorableObject {
} }
private long getChunkSectionIndex(Position position) { private long getChunkSectionIndex(Position position) {
return getChunkSectionIndex(position.getX(), position.getY(), position.getZ()); return getChunkSectionIndex(position.x(), position.y(), position.z());
} }
private short encodeBlockPos(int x, int y, int z) { private short encodeBlockPos(int x, int y, int z) {
@ -141,7 +141,7 @@ public class BlockConnectionStorage implements StorableObject {
} }
private short encodeBlockPos(Position pos) { private short encodeBlockPos(Position pos) {
return encodeBlockPos(pos.getX(), pos.getY(), pos.getZ()); return encodeBlockPos(pos.x(), pos.y(), pos.z());
} }
private <T> Map<Long, T> createLongObjectMap() { private <T> Map<Long, T> createLongObjectMap() {

View File

@ -410,14 +410,14 @@ public class WorldPackets {
for (BlockFace blockFace : BlockFace.values()) { for (BlockFace blockFace : BlockFace.values()) {
NibbleArray skyLightArray = section.getLight().getSkyLightNibbleArray(); NibbleArray skyLightArray = section.getLight().getSkyLightNibbleArray();
NibbleArray blockLightArray = section.getLight().getBlockLightNibbleArray(); NibbleArray blockLightArray = section.getLight().getBlockLightNibbleArray();
int neighbourX = x + blockFace.getModX(); int neighbourX = x + blockFace.modX();
int neighbourY = y + blockFace.getModY(); int neighbourY = y + blockFace.modY();
int neighbourZ = z + blockFace.getModZ(); int neighbourZ = z + blockFace.modZ();
if (blockFace.getModX() != 0) { if (blockFace.modX() != 0) {
// Another chunk, nothing we can do without an unnecessary amount of caching // Another chunk, nothing we can do without an unnecessary amount of caching
if (neighbourX == 16 || neighbourX == -1) continue; if (neighbourX == 16 || neighbourX == -1) continue;
} else if (blockFace.getModY() != 0) { } else if (blockFace.modY() != 0) {
if (neighbourY == 16 || neighbourY == -1) { if (neighbourY == 16 || neighbourY == -1) {
if (neighbourY == 16) { if (neighbourY == 16) {
ySection += 1; ySection += 1;
@ -435,7 +435,7 @@ public class WorldPackets {
skyLightArray = newSection.getLight().getSkyLightNibbleArray(); skyLightArray = newSection.getLight().getSkyLightNibbleArray();
blockLightArray = newSection.getLight().getBlockLightNibbleArray(); blockLightArray = newSection.getLight().getBlockLightNibbleArray();
} }
} else if (blockFace.getModZ() != 0) { } else if (blockFace.modZ() != 0) {
// Another chunk, nothing we can do without an unnecessary amount of caching // Another chunk, nothing we can do without an unnecessary amount of caching
if (neighbourZ == 16 || neighbourZ == -1) continue; if (neighbourZ == 16 || neighbourZ == -1) continue;
} }
@ -451,7 +451,7 @@ public class WorldPackets {
if (skyLightArray != null && skyLight != 15) { if (skyLightArray != null && skyLight != 15) {
int neighbourSkyLight = skyLightArray.get(neighbourX, neighbourY, neighbourZ); int neighbourSkyLight = skyLightArray.get(neighbourX, neighbourY, neighbourZ);
if (neighbourSkyLight == 15) { if (neighbourSkyLight == 15) {
if (blockFace.getModY() == 1) { if (blockFace.modY() == 1) {
// Keep 15 if block is exposed to sky // Keep 15 if block is exposed to sky
skyLight = 15; skyLight = 15;
continue; continue;

View File

@ -67,7 +67,7 @@ public final class Protocol1_17To1_16_4 extends AbstractProtocol<ClientboundPack
wrapper.write(Type.VAR_INT, 5); wrapper.write(Type.VAR_INT, 5);
for (RegistryType type : RegistryType.getValues()) { for (RegistryType type : RegistryType.getValues()) {
// Prefix with resource location // Prefix with resource location
wrapper.write(Type.STRING, type.getResourceLocation()); wrapper.write(Type.STRING, type.resourceLocation());
// Id conversion // Id conversion
tagRewriter.handle(wrapper, tagRewriter.getRewriter(type), tagRewriter.getNewTags(type)); tagRewriter.handle(wrapper, tagRewriter.getRewriter(type), tagRewriter.getNewTags(type));
@ -79,7 +79,7 @@ public final class Protocol1_17To1_16_4 extends AbstractProtocol<ClientboundPack
} }
// New Game Event tags type // New Game Event tags type
wrapper.write(Type.STRING, RegistryType.GAME_EVENT.getResourceLocation()); wrapper.write(Type.STRING, RegistryType.GAME_EVENT.resourceLocation());
wrapper.write(Type.VAR_INT, NEW_GAME_EVENT_TAGS.length); wrapper.write(Type.VAR_INT, NEW_GAME_EVENT_TAGS.length);
for (String tag : NEW_GAME_EVENT_TAGS) { for (String tag : NEW_GAME_EVENT_TAGS) {
wrapper.write(Type.STRING, tag); wrapper.write(Type.STRING, tag);

View File

@ -78,9 +78,9 @@ public class Protocol1_9_3To1_9_1_2 extends AbstractProtocol<ClientboundPackets1
//Create nbt //Create nbt
CompoundTag tag = new CompoundTag(); CompoundTag tag = new CompoundTag();
tag.put("id", new StringTag("Sign")); tag.put("id", new StringTag("Sign"));
tag.put("x", new IntTag(position.getX())); tag.put("x", new IntTag(position.x()));
tag.put("y", new IntTag(position.getY())); tag.put("y", new IntTag(position.y()));
tag.put("z", new IntTag(position.getZ())); tag.put("z", new IntTag(position.z()));
for (int i = 0; i < lines.length; i++) { for (int i = 0; i < lines.length; i++) {
tag.put("Text" + (i + 1), new StringTag(lines[i].toString())); tag.put("Text" + (i + 1), new StringTag(lines[i].toString()));
} }

View File

@ -156,8 +156,8 @@ public class WorldPackets {
// Unload the empty chunks // Unload the empty chunks
if (Via.getConfig().isChunkBorderFix()) { if (Via.getConfig().isChunkBorderFix()) {
for (BlockFace face : BlockFace.HORIZONTAL) { for (BlockFace face : BlockFace.HORIZONTAL) {
int chunkX = chunk.getX() + face.getModX(); int chunkX = chunk.getX() + face.modX();
int chunkZ = chunk.getZ() + face.getModZ(); int chunkZ = chunk.getZ() + face.modZ();
if (!clientChunks.getLoadedChunks().contains(ClientChunks.toLong(chunkX, chunkZ))) { if (!clientChunks.getLoadedChunks().contains(ClientChunks.toLong(chunkX, chunkZ))) {
PacketWrapper unloadChunk = wrapper.create(ClientboundPackets1_9.UNLOAD_CHUNK); PacketWrapper unloadChunk = wrapper.create(ClientboundPackets1_9.UNLOAD_CHUNK);
unloadChunk.write(Type.INT, chunkX); unloadChunk.write(Type.INT, chunkX);
@ -174,8 +174,8 @@ public class WorldPackets {
// Send empty chunks surrounding the loaded chunk to force 1.9+ clients to render the new chunk // Send empty chunks surrounding the loaded chunk to force 1.9+ clients to render the new chunk
if (Via.getConfig().isChunkBorderFix()) { if (Via.getConfig().isChunkBorderFix()) {
for (BlockFace face : BlockFace.HORIZONTAL) { for (BlockFace face : BlockFace.HORIZONTAL) {
int chunkX = chunk.getX() + face.getModX(); int chunkX = chunk.getX() + face.modX();
int chunkZ = chunk.getZ() + face.getModZ(); int chunkZ = chunk.getZ() + face.modZ();
if (!clientChunks.getLoadedChunks().contains(ClientChunks.toLong(chunkX, chunkZ))) { if (!clientChunks.getLoadedChunks().contains(ClientChunks.toLong(chunkX, chunkZ))) {
PacketWrapper emptyChunk = wrapper.create(ClientboundPackets1_9.CHUNK_DATA); PacketWrapper emptyChunk = wrapper.create(ClientboundPackets1_9.CHUNK_DATA);
Chunk c = new BaseChunk(chunkX, chunkZ, true, false, 0, new ChunkSection[16], new int[256], new ArrayList<>()); Chunk c = new BaseChunk(chunkX, chunkZ, true, false, 0, new ChunkSection[16], new int[256], new ArrayList<>());
@ -210,8 +210,8 @@ public class WorldPackets {
// Send empty chunks surrounding the loaded chunk to force 1.9+ clients to render the new chunk // Send empty chunks surrounding the loaded chunk to force 1.9+ clients to render the new chunk
if (Via.getConfig().isChunkBorderFix()) { if (Via.getConfig().isChunkBorderFix()) {
for (BlockFace face : BlockFace.HORIZONTAL) { for (BlockFace face : BlockFace.HORIZONTAL) {
int chunkX = chunk.getX() + face.getModX(); int chunkX = chunk.getX() + face.modX();
int chunkZ = chunk.getZ() + face.getModZ(); int chunkZ = chunk.getZ() + face.modZ();
if (!clientChunks.getLoadedChunks().contains(ClientChunks.toLong(chunkX, chunkZ))) { if (!clientChunks.getLoadedChunks().contains(ClientChunks.toLong(chunkX, chunkZ))) {
PacketWrapper emptyChunk = wrapper.create(ClientboundPackets1_9.CHUNK_DATA); PacketWrapper emptyChunk = wrapper.create(ClientboundPackets1_9.CHUNK_DATA);
Chunk c = new BaseChunk(chunkX, chunkZ, true, false, 0, new ChunkSection[16], new int[256], new ArrayList<>()); Chunk c = new BaseChunk(chunkX, chunkZ, true, false, 0, new ChunkSection[16], new int[256], new ArrayList<>());
@ -406,9 +406,9 @@ public class WorldPackets {
if (face == 255) if (face == 255)
return; return;
Position p = wrapper.get(Type.POSITION, 0); Position p = wrapper.get(Type.POSITION, 0);
int x = p.getX(); int x = p.x();
int y = p.getY(); int y = p.y();
int z = p.getZ(); int z = p.z();
switch (face) { switch (face) {
case 0: case 0:
y--; y--;

View File

@ -52,8 +52,8 @@ public class CommandBlockStorage implements StorableObject {
} }
private Pair<Integer, Integer> getChunkCoords(Position position) { private Pair<Integer, Integer> getChunkCoords(Position position) {
int chunkX = Math.floorDiv(position.getX(), 16); int chunkX = Math.floorDiv(position.x(), 16);
int chunkZ = Math.floorDiv(position.getZ(), 16); int chunkZ = Math.floorDiv(position.z(), 16);
return new Pair<>(chunkX, chunkZ); return new Pair<>(chunkX, chunkZ);
} }

View File

@ -276,12 +276,12 @@ public abstract class EntityRewriter<T extends Protocol> extends RewriterBase<T>
* @param entityType entity type * @param entityType entity type
* @param intType int type of the entity id * @param intType int type of the entity id
*/ */
public void registerTracker(ClientboundPacketType packetType, EntityType entityType, Type<? extends Integer> intType) { public void registerTracker(ClientboundPacketType packetType, EntityType entityType, Type<Integer> intType) {
protocol.registerClientbound(packetType, new PacketRemapper() { protocol.registerClientbound(packetType, new PacketRemapper() {
@Override @Override
public void registerMap() { public void registerMap() {
handler(wrapper -> { handler(wrapper -> {
int entityId = (int) wrapper.passthrough(intType); int entityId = wrapper.passthrough(intType);
tracker(wrapper.user()).addEntity(entityId, entityType); tracker(wrapper.user()).addEntity(entityId, entityType);
}); });
} }