Caches result of getOfflinePlayer in PortalOwner
This commit is contained in:
		@@ -3,10 +3,11 @@ package net.knarcraft.stargate.portal.property;
 | 
			
		||||
import net.knarcraft.stargate.Stargate;
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.OfflinePlayer;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.jetbrains.annotations.NotNull;
 | 
			
		||||
import org.jetbrains.annotations.Nullable;
 | 
			
		||||
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -14,6 +15,7 @@ import java.util.UUID;
 | 
			
		||||
 */
 | 
			
		||||
public class PortalOwner {
 | 
			
		||||
 | 
			
		||||
    private static final Map<String, OfflinePlayer> fetchedPlayers = new HashMap<>();
 | 
			
		||||
    private UUID ownerUUID;
 | 
			
		||||
    private String ownerName;
 | 
			
		||||
 | 
			
		||||
@@ -23,15 +25,21 @@ public class PortalOwner {
 | 
			
		||||
     * @param ownerIdentifier <p>A UUID, or a username for legacy support</p>
 | 
			
		||||
     */
 | 
			
		||||
    public PortalOwner(@NotNull String ownerIdentifier) {
 | 
			
		||||
        if (fetchedPlayers.containsKey(ownerIdentifier)) {
 | 
			
		||||
            OfflinePlayer player = fetchedPlayers.get(ownerIdentifier);
 | 
			
		||||
            this.ownerUUID = player.getUniqueId();
 | 
			
		||||
            this.ownerName = player.getName();
 | 
			
		||||
        } else {
 | 
			
		||||
            parseIdentifier(ownerIdentifier);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Instantiates a new portal owner
 | 
			
		||||
     *
 | 
			
		||||
     * @param player <p>The player which is the owner of the portal</p>
 | 
			
		||||
     */
 | 
			
		||||
    public PortalOwner(@NotNull Player player) {
 | 
			
		||||
    public PortalOwner(@NotNull OfflinePlayer player) {
 | 
			
		||||
        this.ownerUUID = player.getUniqueId();
 | 
			
		||||
        this.ownerName = player.getName();
 | 
			
		||||
    }
 | 
			
		||||
@@ -106,6 +114,7 @@ public class PortalOwner {
 | 
			
		||||
            try {
 | 
			
		||||
                ownerUUID = UUID.fromString(ownerIdentifier);
 | 
			
		||||
                OfflinePlayer offlineOwner = Bukkit.getServer().getOfflinePlayer(ownerUUID);
 | 
			
		||||
                fetchedPlayers.put(ownerIdentifier, offlineOwner);
 | 
			
		||||
                ownerName = offlineOwner.getName();
 | 
			
		||||
            } catch (IllegalArgumentException exception) {
 | 
			
		||||
                //Invalid as UUID and username, so just keep it as owner name and hope the server owner fixes it
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user