Proper equals on servers
This commit is contained in:
		| @@ -4,6 +4,7 @@ import java.net.InetSocketAddress; | |||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
|  | import java.util.Objects; | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
| import lombok.Synchronized; | import lombok.Synchronized; | ||||||
| @@ -95,4 +96,19 @@ public abstract class ServerInfo | |||||||
|     { |     { | ||||||
|         return !restricted || player.hasPermission( "bungeecord.server." + name ); |         return !restricted || player.hasPermission( "bungeecord.server." + name ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean equals(Object obj) | ||||||
|  |     { | ||||||
|  |         return ( obj instanceof ServerInfo ) && Objects.equals( getAddress(), ( (ServerInfo) obj ).getAddress() ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public int hashCode() | ||||||
|  |     { | ||||||
|  |         int hash = 7; | ||||||
|  |         hash = 73 * hash + Objects.hashCode( getClass() ); | ||||||
|  |         hash = 73 * hash + Objects.hashCode( getAddress() ); | ||||||
|  |         return hash; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ import com.google.common.base.Preconditions; | |||||||
| import com.google.common.io.ByteArrayDataOutput; | import com.google.common.io.ByteArrayDataOutput; | ||||||
| import com.google.common.io.ByteStreams; | import com.google.common.io.ByteStreams; | ||||||
| import io.netty.channel.Channel; | import io.netty.channel.Channel; | ||||||
|  | import java.util.Objects; | ||||||
| import java.util.Queue; | import java.util.Queue; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
| import net.md_5.bungee.api.ChatColor; | import net.md_5.bungee.api.ChatColor; | ||||||
| @@ -165,7 +166,7 @@ public class ServerConnector extends PacketHandler | |||||||
|     public void handle(PacketFFKick kick) throws Exception |     public void handle(PacketFFKick kick) throws Exception | ||||||
|     { |     { | ||||||
|         ServerInfo def = bungee.getServerInfo( user.getPendingConnection().getListener().getFallbackServer() ); |         ServerInfo def = bungee.getServerInfo( user.getPendingConnection().getListener().getFallbackServer() ); | ||||||
|         if ( target == def ) |         if ( Objects.equals( target, def) ) | ||||||
|         { |         { | ||||||
|             def = null; |             def = null; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ import java.net.InetSocketAddress; | |||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Objects; | ||||||
| import java.util.logging.Level; | import java.util.logging.Level; | ||||||
| import lombok.AccessLevel; | import lombok.AccessLevel; | ||||||
| import lombok.Getter; | import lombok.Getter; | ||||||
| @@ -100,13 +101,7 @@ public final class UserConnection implements ProxiedPlayer | |||||||
|     @Override |     @Override | ||||||
|     public void connect(ServerInfo target) |     public void connect(ServerInfo target) | ||||||
|     { |     { | ||||||
|         if ( getServer() != null && getServer().getInfo() == target ) |         connect( target, false ); | ||||||
|         { |  | ||||||
|             sendMessage( ChatColor.RED + "Cannot connect to server you are already on!" ); |  | ||||||
|         } else |  | ||||||
|         { |  | ||||||
|             connect( target, false ); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void connectNow(ServerInfo target) |     public void connectNow(ServerInfo target) | ||||||
| @@ -121,10 +116,9 @@ public final class UserConnection implements ProxiedPlayer | |||||||
|         ServerConnectEvent event = new ServerConnectEvent( this, info ); |         ServerConnectEvent event = new ServerConnectEvent( this, info ); | ||||||
|         ProxyServer.getInstance().getPluginManager().callEvent( event ); |         ProxyServer.getInstance().getPluginManager().callEvent( event ); | ||||||
|         final ServerInfo target = event.getTarget(); // Update in case the event changed target |         final ServerInfo target = event.getTarget(); // Update in case the event changed target | ||||||
|         if ( getServer() != null && getServer().getInfo() == target ) |         if ( getServer() != null && Objects.equals( getServer().getInfo(), target ) ) | ||||||
|         { |         { | ||||||
|             sendMessage( ChatColor.RED + "Cannot connect to server you are already on!" ); |             sendMessage( ChatColor.RED + "Cannot connect to server you are already on!" ); | ||||||
|             return; |  | ||||||
|         } |         } | ||||||
|         new Bootstrap() |         new Bootstrap() | ||||||
|                 .channel( NioSocketChannel.class ) |                 .channel( NioSocketChannel.class ) | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ import com.google.common.io.ByteArrayDataInput; | |||||||
| import com.google.common.io.ByteArrayDataOutput; | import com.google.common.io.ByteArrayDataOutput; | ||||||
| import com.google.common.io.ByteStreams; | import com.google.common.io.ByteStreams; | ||||||
| import io.netty.channel.Channel; | import io.netty.channel.Channel; | ||||||
|  | import java.util.Objects; | ||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
| import net.md_5.bungee.EntityMap; | import net.md_5.bungee.EntityMap; | ||||||
| import net.md_5.bungee.ServerConnection; | import net.md_5.bungee.ServerConnection; | ||||||
| @@ -314,7 +315,7 @@ public class DownstreamBridge extends PacketHandler | |||||||
|     public void handle(PacketFFKick kick) throws Exception |     public void handle(PacketFFKick kick) throws Exception | ||||||
|     { |     { | ||||||
|         ServerInfo def = bungee.getServerInfo( con.getPendingConnection().getListener().getFallbackServer() ); |         ServerInfo def = bungee.getServerInfo( con.getPendingConnection().getListener().getFallbackServer() ); | ||||||
|         if ( server.getInfo() == def ) |         if ( Objects.equals( server.getInfo(), def ) ) | ||||||
|         { |         { | ||||||
|             def = null; |             def = null; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -38,6 +38,7 @@ public class BungeeScheduler implements TaskScheduler | |||||||
|         Set<ScheduledTask> toRemove = new HashSet<>(); |         Set<ScheduledTask> toRemove = new HashSet<>(); | ||||||
|         for ( ScheduledTask task : tasks.valueCollection() ) |         for ( ScheduledTask task : tasks.valueCollection() ) | ||||||
|         { |         { | ||||||
|  |             // TODO: proper checking? | ||||||
|             if ( task.getOwner() == plugin ) |             if ( task.getOwner() == plugin ) | ||||||
|             { |             { | ||||||
|                 toRemove.add( task ); |                 toRemove.add( task ); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 md_5
					md_5