Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package com.legacyminecraft.poseidon.commands;
2
3import com.legacyminecraft.poseidon.Poseidon;
4import com.projectposeidon.api.PoseidonUUID;
5import com.projectposeidon.api.UUIDType;
6import org.bukkit.Bukkit;
7import org.bukkit.ChatColor;
8import org.bukkit.command.Command;
9import org.bukkit.command.CommandSender;
10
11import java.io.IOException;
12import java.io.InputStream;
13import java.util.Arrays;
14import java.util.Properties;
15import java.util.UUID;
16
17public class PoseidonCommand extends Command {
18
19 private final Properties versionProperties = new Properties();
20
21 public PoseidonCommand(String name) {
22 super(name);
23 this.description = "Show data regarding the server's version of Project Poseidon";
24 this.usageMessage = "/poseidon";
25 this.setAliases(Arrays.asList("projectposeidon"));
26 }
27
28 @Override
29 public boolean execute(CommandSender sender, String currentAlias, String[] args) {
30 if (args.length == 0) {
31 String appName = Poseidon.getServer().getAppName();
32 String releaseVersion = Poseidon.getServer().getReleaseVersion();
33 String mavenVersion = Poseidon.getServer().getMavenVersion();
34 String buildTimestamp = Poseidon.getServer().getBuildTimestamp();
35 String gitCommit = Poseidon.getServer().getGitCommit();
36 String buildType = Poseidon.getServer().getBuildType();
37
38 // Shorten the git commit hash to 7 characters
39 if (gitCommit.length() > 7) {
40 gitCommit = gitCommit.substring(0, 7);
41 }
42
43 if ("Unknown".equals(releaseVersion)) {
44 sender.sendMessage(ChatColor.RED + "Warning: version.properties not found. This is a local or unconfigured build.");
45 } else {
46 sender.sendMessage(ChatColor.GRAY + "This server is running " + ChatColor.AQUA + appName + ChatColor.GRAY + ":");
47 sender.sendMessage(ChatColor.GRAY + " - Version: " + ChatColor.YELLOW + releaseVersion);
48 sender.sendMessage(ChatColor.GRAY + " - Built at: " + ChatColor.YELLOW + buildTimestamp);
49 sender.sendMessage(ChatColor.GRAY + " - Git SHA: " + ChatColor.YELLOW + gitCommit);
50
51 if ("production".equalsIgnoreCase(buildType)) {
52 sender.sendMessage(ChatColor.GREEN + "This is a release build.");
53 } else if ("pull_request".equalsIgnoreCase(buildType)) {
54 sender.sendMessage(ChatColor.BLUE + "This is a pull request build.");
55 } else {
56 sender.sendMessage(ChatColor.GRAY + "This is a development build.");
57 }
58 }
59 } else if (args.length == 1) {
60 if (args[0].equalsIgnoreCase("uuid")) {
61 sender.sendMessage(ChatColor.GRAY + "Please specify a user /poseidon uuid (username)");
62 } else {
63 sender.sendMessage(ChatColor.GRAY + "Unknown sub command.");
64 }
65 } else {
66 if (!args[0].equalsIgnoreCase("uuid")) {
67 sender.sendMessage(ChatColor.GRAY + "Unknown sub command.");
68 } else {
69 UUID uuid = PoseidonUUID.getPlayerUUIDFromCache(args[1], true);
70 if (uuid == null) {
71 uuid = PoseidonUUID.getPlayerUUIDFromCache(args[1], false);
72 }
73
74 if (uuid == null) {
75 sender.sendMessage(ChatColor.GRAY + "Unable to locate the UUID of the player called: " + ChatColor.WHITE + args[1] + ChatColor.GRAY + ". Please remember usernames are cap sensitive");
76 } else {
77 sender.sendMessage(ChatColor.GRAY + "Username: " + args[1]);
78 sender.sendMessage(ChatColor.GRAY + "UUID: " + uuid.toString());
79 UUIDType uuidType = PoseidonUUID.getPlayerUUIDCacheStatus(args[1]);
80 if (uuidType.equals(UUIDType.ONLINE)) {
81 sender.sendMessage(ChatColor.GRAY + "UUID Type: " + ChatColor.GREEN + "Online");
82 } else if (uuidType.equals(UUIDType.OFFLINE)) {
83 sender.sendMessage(ChatColor.GRAY + "UUID Type: " + ChatColor.RED + "Offline");
84 } else {
85 sender.sendMessage(ChatColor.GRAY + "UUID Type: " + ChatColor.DARK_RED + "UNKNOWN");
86 }
87 }
88 }
89 }
90
91 return true;
92
93 }
94
95}