Added support for UUID-based player lookups in 1.7.5+
You could argue that ShadowRanger's conversion of everything to UUID is better, but that would result in us having to contact Mojang's servers simply to fetch a player by UUID for versions < 1.7.5. It seems excessive (not to mention that uncached contact can result in rate limiting) when the server itself will not remember who they are across name changes. If they can re-obtain everything in their inventory, they can re-run /ac.
This commit is contained in:
		@@ -16,6 +16,8 @@
 | 
			
		||||
 | 
			
		||||
package com.lishid.openinv.internal.v1_7_R4;
 | 
			
		||||
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
import com.lishid.openinv.internal.IPlayerDataManager;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
@@ -60,4 +62,20 @@ public class PlayerDataManager implements IPlayerDataManager {
 | 
			
		||||
        return player.getUniqueId().toString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public OfflinePlayer getPlayerByID(String identifier) {
 | 
			
		||||
        try {
 | 
			
		||||
            UUID uuid = UUID.fromString(identifier);
 | 
			
		||||
            OfflinePlayer player = Bukkit.getOfflinePlayer(uuid);
 | 
			
		||||
            // Ensure player is a real player, otherwise return null
 | 
			
		||||
            if (player == null || !player.hasPlayedBefore() && !player.isOnline()) {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
            return player;
 | 
			
		||||
        } catch (IllegalArgumentException e) {
 | 
			
		||||
            // Not a UUID
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user