PlotSquared/Sponge/src/main/java/com/plotsquared/sponge/uuid/SpongeLowerOfflineUUIDWrapper.java

101 lines
3.1 KiB
Java
Raw Normal View History

2015-07-30 16:25:16 +02:00
package com.plotsquared.sponge.uuid;
import com.google.common.base.Charsets;
import com.intellectualcrafters.plot.object.OfflinePlotPlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
2015-07-30 16:25:16 +02:00
import com.plotsquared.sponge.SpongeMain;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.profile.GameProfile;
import java.util.Collection;
import java.util.UUID;
2015-09-13 06:04:31 +02:00
public class SpongeLowerOfflineUUIDWrapper extends UUIDWrapper {
public SpongeLowerOfflineUUIDWrapper() {
// Anything?
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public UUID getUUID(final PlotPlayer player) {
return getUUID(player.getName());
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public UUID getUUID(final OfflinePlotPlayer player) {
return getUUID(player.getName());
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public OfflinePlotPlayer getOfflinePlayer(final UUID uuid) {
String name = UUIDHandler.getName(uuid);
2015-09-13 06:04:31 +02:00
if (name == null) {
try {
2015-09-11 12:09:22 +02:00
final GameProfile profile = SpongeMain.THIS.getResolver().get(uuid).get();
2015-09-13 06:04:31 +02:00
if (profile != null) {
name = profile.getName().orElse(null);
}
2015-09-13 06:04:31 +02:00
} catch (final Exception e) {
e.printStackTrace();
}
}
2015-09-13 06:04:31 +02:00
if (name == null) {
for (final GameProfile profile : SpongeMain.THIS.getResolver().getCachedProfiles()) {
String tmp = profile.getName().orElse(null);
if (tmp != null) {
if (getUUID(name).equals(uuid)) {
name = tmp;
break;
}
}
}
}
final String username = name;
2015-09-13 06:04:31 +02:00
return new OfflinePlotPlayer() {
@Override
2015-09-13 06:04:31 +02:00
public boolean isOnline() {
return UUIDHandler.getPlayer(uuid) != null;
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public UUID getUUID() {
return uuid;
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public String getName() {
return username;
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public long getLastPlayed() {
2015-09-11 12:09:22 +02:00
// TODO FIXME
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
};
}
2015-09-13 06:04:31 +02:00
public Player[] getOnlinePlayers() {
Collection<Player> onlinePlayers = SpongeMain.THIS.getServer().getOnlinePlayers();
return onlinePlayers.toArray(new Player[onlinePlayers.size()]);
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public UUID getUUID(final String name) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + name.toLowerCase()).getBytes(Charsets.UTF_8));
}
2015-09-13 06:04:31 +02:00
@Override
2015-09-13 06:04:31 +02:00
public OfflinePlotPlayer[] getOfflinePlayers() {
2015-09-11 12:09:22 +02:00
// TODO FIXME
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
2016-02-19 20:13:41 +01:00
@Override
public OfflinePlotPlayer getOfflinePlayer(String name) {
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
}