Use ProtocolInfo#getServerProtocolVersion for block connection, use bungee and velocity version if not ported

This commit is contained in:
creeper123123321 2019-01-08 13:58:24 -02:00
parent 240653c429
commit cd7774f056
No known key found for this signature in database
GPG Key ID: 0AC57D54786721D1
3 changed files with 20 additions and 7 deletions

View File

@ -2,6 +2,7 @@ package us.myles.ViaVersion.bungee.platform;
import io.netty.buffer.ByteBuf;
import lombok.NonNull;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import us.myles.ViaVersion.api.Via;
@ -23,14 +24,17 @@ public class BungeeViaAPI implements ViaAPI<ProxiedPlayer> {
@Override
public int getPlayerVersion(@NonNull ProxiedPlayer player) {
if (!isPorted(player.getUniqueId()))
return ProtocolRegistry.SERVER_PROTOCOL;
return player.getPendingConnection().getVersion();
return getPortedPlayers().get(player.getUniqueId()).get(ProtocolInfo.class).getProtocolVersion();
}
@Override
public int getPlayerVersion(@NonNull UUID uuid) {
if (!isPorted(uuid))
if (!isPorted(uuid)) {
ProxiedPlayer player = ProxyServer.getInstance().getPlayer(uuid);
if (player != null) return player.getPendingConnection().getVersion();
return ProtocolRegistry.SERVER_PROTOCOL;
}
return getPortedPlayers().get(uuid).get(ProtocolInfo.class).getProtocolVersion();
}

View File

@ -2,7 +2,7 @@ package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.minecraft.Position;
import us.myles.ViaVersion.api.protocol.ProtocolRegistry;
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
public class GlassConnectionHandler extends AbstractFenceConnectionHandler {
@ -34,6 +34,8 @@ public class GlassConnectionHandler extends AbstractFenceConnectionHandler {
@Override
protected byte getStates(UserConnection user, Position position, int blockState) {
byte states = super.getStates(user, position, blockState);
return states == 0 && (ProtocolRegistry.SERVER_PROTOCOL <= 47 && ProtocolRegistry.SERVER_PROTOCOL != -1) ? 0xF : states;
return states == 0
&& user.get(ProtocolInfo.class).getServerProtocolVersion() <= 47
&& user.get(ProtocolInfo.class).getServerProtocolVersion() != -1 ? 0xF : states;
}
}

View File

@ -1,8 +1,11 @@
package us.myles.ViaVersion.velocity.platform;
import com.velocitypowered.api.network.ProtocolVersion;
import com.velocitypowered.api.proxy.InboundConnection;
import com.velocitypowered.api.proxy.Player;
import io.netty.buffer.ByteBuf;
import lombok.NonNull;
import us.myles.ViaVersion.VelocityPlugin;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.ViaAPI;
import us.myles.ViaVersion.api.boss.BossBar;
@ -21,14 +24,18 @@ public class VelocityViaAPI implements ViaAPI<Player> {
@Override
public int getPlayerVersion(@NonNull Player player) {
if (!isPorted(player.getUniqueId()))
return ProtocolRegistry.SERVER_PROTOCOL;
return player.getProtocolVersion().getProtocol();
return getPortedPlayers().get(player.getUniqueId()).get(ProtocolInfo.class).getProtocolVersion();
}
@Override
public int getPlayerVersion(@NonNull UUID uuid) {
if (!isPorted(uuid))
return ProtocolRegistry.SERVER_PROTOCOL;
if (!isPorted(uuid)) {
return VelocityPlugin.PROXY.getPlayer(uuid)
.map(InboundConnection::getProtocolVersion)
.map(ProtocolVersion::getProtocol)
.orElse(ProtocolRegistry.SERVER_PROTOCOL);
}
return getPortedPlayers().get(uuid).get(ProtocolInfo.class).getProtocolVersion();
}