Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-20 06:50:08 +01:00
Small fixes, add majorVersion method, nicer getter names in some classes
None of the deprecated methods will be removed anytime soon.
Dieser Commit ist enthalten in:
Ursprung
e7a0b4cf04
Commit
f2147179c2
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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 =
|
||||||
|
@ -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) {
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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() {
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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()));
|
||||||
}
|
}
|
||||||
|
@ -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--;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren