ProjectAres/API/minecraft/src/main/java/tc/oc/api/minecraft/users/LocalUserDocument.java

125 lines
2.7 KiB
Java

package tc.oc.api.minecraft.users;
import java.time.Instant;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import javax.annotation.Nullable;
import com.google.common.collect.ImmutableMap;
import tc.oc.api.docs.PlayerId;
import tc.oc.api.docs.SimplePlayerId;
import tc.oc.api.docs.User;
import tc.oc.api.docs.virtual.UserDoc;
import tc.oc.api.minecraft.servers.DefaultPermissions;
public class LocalUserDocument extends SimplePlayerId implements User {
private final UUID uuid;
private final String ip;
LocalUserDocument(UUID uuid, String name, String ip) {
super(uuid.toString(), uuid.toString(), name);
this.uuid = uuid;
this.ip = ip;
}
LocalUserDocument(tc.oc.minecraft.api.user.User user) {
this(user.getUniqueId(),
user.getName(),
user.onlinePlayer()
.map(p -> p.getAddress().getHostString())
.orElse(""));
}
@Override
public @Nullable String nickname() {
return null;
}
@Override
public @Nullable String mc_locale() {
return null;
}
@Override
public UUID uuid() {
return uuid;
}
@Override
public List<UserDoc.Flair> minecraft_flair() {
return Collections.emptyList();
}
@Override
public List<String> trophy_ids() {
return Collections.emptyList();
}
@Override
public @Nullable Instant requested_tnt_license_at() {
return null;
}
@Override
public @Nullable Instant granted_tnt_license_at() {
return Instant.EPOCH;
}
@Override
public List<UserDoc.License.Kill> tnt_license_kills() {
return Collections.emptyList();
}
@Override
public int raindrops() {
return 0;
}
@Override
public String mc_last_sign_in_ip() {
return ip;
}
@Override
public @Nullable Date trial_expires_at() {
return null;
}
@Override
public Map<String, Map<String, Boolean>> mc_permissions_by_realm() {
return ImmutableMap.of(
"global", DefaultPermissions.DEFAULT_PERMISSIONS
);
}
@Override
public Map<String, Map<String, String>> mc_settings_by_profile() {
return Collections.emptyMap();
}
@Override
public Map<String, String> classes() {
return Collections.emptyMap();
}
@Override
public Set<PlayerId> friends() {
return Collections.emptySet();
}
@Override
public Map<String, List<Instant>> recent_match_joins_by_family_id() {
return Collections.emptyMap();
}
@Override
public int enemy_kills() {
return 0;
}
}