Search in sources :

Example 6 with EconomyLayer

use of com.earth2me.essentials.economy.EconomyLayer in project Essentials by drtshock.

the class User method setMoney.

public void setMoney(final BigDecimal value, final UserBalanceUpdateEvent.Cause cause) throws MaxMoneyException {
    if (ess.getSettings().isEcoDisabled()) {
        if (ess.getSettings().isDebug()) {
            ess.getLogger().info("Internal economy functions disabled, aborting balance change.");
        }
        return;
    }
    final BigDecimal oldBalance = _getMoney();
    final UserBalanceUpdateEvent updateEvent = new UserBalanceUpdateEvent(this.getBase(), oldBalance, value, cause);
    ess.getServer().getPluginManager().callEvent(updateEvent);
    final BigDecimal newBalance = updateEvent.getNewBalance();
    final EconomyLayer layer = EconomyLayers.getSelectedLayer();
    if (layer != null && (layer.hasAccount(getBase()) || layer.createPlayerAccount(getBase()))) {
        layer.set(getBase(), newBalance);
    }
    super.setMoney(newBalance, true);
    Trade.log("Update", "Set", "API", getName(), new Trade(newBalance, ess), null, null, null, newBalance, ess);
}
Also used : EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) UserBalanceUpdateEvent(net.ess3.api.events.UserBalanceUpdateEvent) BigDecimal(java.math.BigDecimal)

Example 7 with EconomyLayer

use of com.earth2me.essentials.economy.EconomyLayer in project Essentials by drtshock.

the class Commandessentials method runDump.

// Generates a paste of useful information
private void runDump(Server server, CommandSource sender, String commandLabel, String[] args) {
    sender.sendMessage(tl("dumpCreating"));
    final JsonObject dump = new JsonObject();
    final JsonObject meta = new JsonObject();
    meta.addProperty("timestamp", Instant.now().toEpochMilli());
    meta.addProperty("sender", sender.getPlayer() != null ? sender.getPlayer().getName() : null);
    meta.addProperty("senderUuid", sender.getPlayer() != null ? sender.getPlayer().getUniqueId().toString() : null);
    dump.add("meta", meta);
    final JsonObject serverData = new JsonObject();
    serverData.addProperty("bukkit-version", Bukkit.getBukkitVersion());
    serverData.addProperty("server-version", Bukkit.getVersion());
    serverData.addProperty("server-brand", Bukkit.getName());
    serverData.addProperty("online-mode", ess.getOnlineModeProvider().getOnlineModeString());
    final JsonObject supportStatus = new JsonObject();
    final VersionUtil.SupportStatus status = VersionUtil.getServerSupportStatus();
    supportStatus.addProperty("status", status.name());
    supportStatus.addProperty("supported", status.isSupported());
    supportStatus.addProperty("trigger", VersionUtil.getSupportStatusClass());
    serverData.add("support-status", supportStatus);
    dump.add("server-data", serverData);
    final JsonObject environment = new JsonObject();
    environment.addProperty("java-version", System.getProperty("java.version"));
    environment.addProperty("operating-system", System.getProperty("os.name"));
    environment.addProperty("uptime", DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime()));
    environment.addProperty("allocated-memory", (Runtime.getRuntime().totalMemory() / 1024 / 1024) + "MB");
    dump.add("environment", environment);
    final JsonObject essData = new JsonObject();
    essData.addProperty("version", ess.getDescription().getVersion());
    final JsonObject updateData = new JsonObject();
    updateData.addProperty("id", ess.getUpdateChecker().getVersionIdentifier());
    updateData.addProperty("branch", ess.getUpdateChecker().getVersionBranch());
    updateData.addProperty("dev", ess.getUpdateChecker().isDevBuild());
    essData.add("update-data", updateData);
    final JsonObject econLayer = new JsonObject();
    econLayer.addProperty("enabled", !ess.getSettings().isEcoDisabled());
    econLayer.addProperty("selected-layer", EconomyLayers.isLayerSelected());
    final EconomyLayer layer = EconomyLayers.getSelectedLayer();
    econLayer.addProperty("name", layer == null ? "null" : layer.getName());
    econLayer.addProperty("layer-version", layer == null ? "null" : layer.getPluginVersion());
    econLayer.addProperty("backend-name", layer == null ? "null" : layer.getBackendName());
    essData.add("economy-layer", econLayer);
    final JsonArray addons = new JsonArray();
    final JsonArray plugins = new JsonArray();
    final ArrayList<Plugin> alphabetical = new ArrayList<>();
    Collections.addAll(alphabetical, Bukkit.getPluginManager().getPlugins());
    alphabetical.sort(Comparator.comparing(o -> o.getName().toUpperCase(Locale.ENGLISH)));
    for (final Plugin plugin : alphabetical) {
        final JsonObject pluginData = new JsonObject();
        final PluginDescriptionFile info = plugin.getDescription();
        final String name = info.getName();
        pluginData.addProperty("name", name);
        pluginData.addProperty("version", info.getVersion());
        pluginData.addProperty("description", info.getDescription());
        pluginData.addProperty("main", info.getMain());
        pluginData.addProperty("enabled", plugin.isEnabled());
        pluginData.addProperty("official", plugin == ess || officialPlugins.contains(name));
        pluginData.addProperty("unsupported", warnPlugins.contains(name));
        final JsonArray authors = new JsonArray();
        for (final String author : info.getAuthors()) {
            authors.add(author == null ? JsonNull.INSTANCE : new JsonPrimitive(author));
        }
        pluginData.add("authors", authors);
        if (name.startsWith("Essentials") && !name.equals("Essentials")) {
            addons.add(pluginData);
        }
        plugins.add(pluginData);
    }
    essData.add("addons", addons);
    dump.add("ess-data", essData);
    dump.add("plugins", plugins);
    final List<PasteUtil.PasteFile> files = new ArrayList<>();
    files.add(new PasteUtil.PasteFile("dump.json", dump.toString()));
    final Plugin essDiscord = Bukkit.getPluginManager().getPlugin("EssentialsDiscord");
    final Plugin essSpawn = Bukkit.getPluginManager().getPlugin("EssentialsSpawn");
    // Further operations will be heavy IO
    ess.runTaskAsynchronously(() -> {
        boolean config = false;
        boolean discord = false;
        boolean kits = false;
        boolean log = false;
        boolean worth = false;
        boolean tpr = false;
        boolean spawns = false;
        for (final String arg : args) {
            if (arg.equals("*") || arg.equalsIgnoreCase("all")) {
                config = true;
                discord = true;
                kits = true;
                log = true;
                worth = true;
                tpr = true;
                spawns = true;
                break;
            } else if (arg.equalsIgnoreCase("config")) {
                config = true;
            } else if (arg.equalsIgnoreCase("discord")) {
                discord = true;
            } else if (arg.equalsIgnoreCase("kits")) {
                kits = true;
            } else if (arg.equalsIgnoreCase("log")) {
                log = true;
            } else if (arg.equalsIgnoreCase("worth")) {
                worth = true;
            } else if (arg.equalsIgnoreCase("tpr")) {
                tpr = true;
            } else if (arg.equalsIgnoreCase("spawns")) {
                spawns = true;
            }
        }
        if (config) {
            try {
                files.add(new PasteUtil.PasteFile("config.yml", new String(Files.readAllBytes(ess.getSettings().getConfigFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "config.yml", e.getMessage()));
            }
        }
        if (discord && essDiscord != null) {
            try {
                files.add(new PasteUtil.PasteFile("discord-config.yml", new String(Files.readAllBytes(essDiscord.getDataFolder().toPath().resolve("config.yml")), StandardCharsets.UTF_8).replaceAll("[A-Za-z\\d]{24}\\.[\\w-]{6}\\.[\\w-]{27}", "<censored token>")));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "discord-config.yml", e.getMessage()));
            }
        }
        if (kits) {
            try {
                files.add(new PasteUtil.PasteFile("kits.yml", new String(Files.readAllBytes(ess.getKits().getFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "kits.yml", e.getMessage()));
            }
        }
        if (log) {
            try {
                files.add(new PasteUtil.PasteFile("latest.log", new String(Files.readAllBytes(Paths.get("logs", "latest.log")), StandardCharsets.UTF_8).replaceAll("(?m)^\\[\\d\\d:\\d\\d:\\d\\d] \\[.+/(?:DEBUG|TRACE)]: .+\\s(?:[A-Za-z.]+:.+\\s(?:\\t.+\\s)*)?\\s*(?:\"[A-Za-z]+\" : .+[\\s}\\]]+)*", "").replaceAll("(?:[0-9]{1,3}\\.){3}[0-9]{1,3}", "<censored ip address>")));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "latest.log", e.getMessage()));
            }
        }
        if (worth) {
            try {
                files.add(new PasteUtil.PasteFile("worth.yml", new String(Files.readAllBytes(ess.getWorth().getFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "worth.yml", e.getMessage()));
            }
        }
        if (tpr) {
            try {
                files.add(new PasteUtil.PasteFile("tpr.yml", new String(Files.readAllBytes(ess.getRandomTeleport().getFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "tpr.yml", e.getMessage()));
            }
        }
        if (spawns && essSpawn != null) {
            try {
                files.add(new PasteUtil.PasteFile("spawn.yml", new String(Files.readAllBytes(ess.getDataFolder().toPath().resolve("spawn.yml")), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "spawn.yml", e.getMessage()));
            }
        }
        final CompletableFuture<PasteUtil.PasteResult> future = PasteUtil.createPaste(files);
        future.thenAccept(result -> {
            if (result != null) {
                final String dumpUrl = "https://essentialsx.net/dump.html?id=" + result.getPasteId();
                sender.sendMessage(tl("dumpUrl", dumpUrl));
                sender.sendMessage(tl("dumpDeleteKey", result.getDeletionKey()));
                if (sender.isPlayer()) {
                    ess.getLogger().info(tl("dumpConsoleUrl", dumpUrl));
                    ess.getLogger().info(tl("dumpDeleteKey", result.getDeletionKey()));
                }
            }
            files.clear();
        });
        future.exceptionally(throwable -> {
            sender.sendMessage(tl("dumpError", throwable.getMessage()));
            return null;
        });
    });
}
Also used : EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) Plugin(org.bukkit.plugin.Plugin) JsonObject(com.google.gson.JsonObject) Arrays(java.util.Arrays) NumberUtil(com.earth2me.essentials.utils.NumberUtil) CommandSource(com.earth2me.essentials.CommandSource) User(com.earth2me.essentials.User) Player(org.bukkit.entity.Player) PasteUtil(com.earth2me.essentials.utils.PasteUtil) VersionUtil(com.earth2me.essentials.utils.VersionUtil) Location(org.bukkit.Location) FloatUtil(com.earth2me.essentials.utils.FloatUtil) World(org.bukkit.World) Locale(java.util.Locale) Map(java.util.Map) EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) Bukkit(org.bukkit.Bukkit) I18n.tl(com.earth2me.essentials.I18n.tl) ImmutableMap(com.google.common.collect.ImmutableMap) Collection(java.util.Collection) Sound(org.bukkit.Sound) UUID(java.util.UUID) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) StandardCharsets(java.nio.charset.StandardCharsets) JsonArray(com.google.gson.JsonArray) List(java.util.List) EconomyLayers(com.earth2me.essentials.economy.EconomyLayers) DateUtil(com.earth2me.essentials.utils.DateUtil) CompletableFuture(java.util.concurrent.CompletableFuture) Supplier(java.util.function.Supplier) UserMap(com.earth2me.essentials.UserMap) ArrayList(java.util.ArrayList) Lists(com.google.common.collect.Lists) Server(org.bukkit.Server) JsonPrimitive(com.google.gson.JsonPrimitive) ManagementFactory(java.lang.management.ManagementFactory) EnumUtil(com.earth2me.essentials.utils.EnumUtil) Charsets(com.google.common.base.Charsets) Files(java.nio.file.Files) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) IOException(java.io.IOException) EssentialsUpgrade(com.earth2me.essentials.EssentialsUpgrade) Paths(java.nio.file.Paths) JsonNull(com.google.gson.JsonNull) ChatColor(org.bukkit.ChatColor) Comparator(java.util.Comparator) Collections(java.util.Collections) PluginDescriptionFile(org.bukkit.plugin.PluginDescriptionFile) PluginManager(org.bukkit.plugin.PluginManager) JsonPrimitive(com.google.gson.JsonPrimitive) VersionUtil(com.earth2me.essentials.utils.VersionUtil) ArrayList(java.util.ArrayList) JsonObject(com.google.gson.JsonObject) PluginDescriptionFile(org.bukkit.plugin.PluginDescriptionFile) IOException(java.io.IOException) JsonArray(com.google.gson.JsonArray) PasteUtil(com.earth2me.essentials.utils.PasteUtil) Plugin(org.bukkit.plugin.Plugin)

Example 8 with EconomyLayer

use of com.earth2me.essentials.economy.EconomyLayer in project Essentials by EssentialsX.

the class User method setMoney.

public void setMoney(final BigDecimal value, final UserBalanceUpdateEvent.Cause cause) throws MaxMoneyException {
    if (ess.getSettings().isEcoDisabled()) {
        if (ess.getSettings().isDebug()) {
            ess.getLogger().info("Internal economy functions disabled, aborting balance change.");
        }
        return;
    }
    final BigDecimal oldBalance = _getMoney();
    final UserBalanceUpdateEvent updateEvent = new UserBalanceUpdateEvent(this.getBase(), oldBalance, value, cause);
    ess.getServer().getPluginManager().callEvent(updateEvent);
    final BigDecimal newBalance = updateEvent.getNewBalance();
    final EconomyLayer layer = EconomyLayers.getSelectedLayer();
    if (layer != null && (layer.hasAccount(getBase()) || layer.createPlayerAccount(getBase()))) {
        layer.set(getBase(), newBalance);
    }
    super.setMoney(newBalance, true);
    Trade.log("Update", "Set", "API", getName(), new Trade(newBalance, ess), null, null, null, newBalance, ess);
}
Also used : EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) UserBalanceUpdateEvent(net.ess3.api.events.UserBalanceUpdateEvent) BigDecimal(java.math.BigDecimal)

Example 9 with EconomyLayer

use of com.earth2me.essentials.economy.EconomyLayer in project Essentials by EssentialsX.

the class Commandessentials method runDump.

// Generates a paste of useful information
private void runDump(Server server, CommandSource sender, String commandLabel, String[] args) {
    sender.sendMessage(tl("dumpCreating"));
    final JsonObject dump = new JsonObject();
    final JsonObject meta = new JsonObject();
    meta.addProperty("timestamp", Instant.now().toEpochMilli());
    meta.addProperty("sender", sender.getPlayer() != null ? sender.getPlayer().getName() : null);
    meta.addProperty("senderUuid", sender.getPlayer() != null ? sender.getPlayer().getUniqueId().toString() : null);
    dump.add("meta", meta);
    final JsonObject serverData = new JsonObject();
    serverData.addProperty("bukkit-version", Bukkit.getBukkitVersion());
    serverData.addProperty("server-version", Bukkit.getVersion());
    serverData.addProperty("server-brand", Bukkit.getName());
    serverData.addProperty("online-mode", ess.getOnlineModeProvider().getOnlineModeString());
    final JsonObject supportStatus = new JsonObject();
    final VersionUtil.SupportStatus status = VersionUtil.getServerSupportStatus();
    supportStatus.addProperty("status", status.name());
    supportStatus.addProperty("supported", status.isSupported());
    supportStatus.addProperty("trigger", VersionUtil.getSupportStatusClass());
    serverData.add("support-status", supportStatus);
    dump.add("server-data", serverData);
    final JsonObject environment = new JsonObject();
    environment.addProperty("java-version", System.getProperty("java.version"));
    environment.addProperty("operating-system", System.getProperty("os.name"));
    environment.addProperty("uptime", DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime()));
    environment.addProperty("allocated-memory", (Runtime.getRuntime().totalMemory() / 1024 / 1024) + "MB");
    dump.add("environment", environment);
    final JsonObject essData = new JsonObject();
    essData.addProperty("version", ess.getDescription().getVersion());
    final JsonObject updateData = new JsonObject();
    updateData.addProperty("id", ess.getUpdateChecker().getVersionIdentifier());
    updateData.addProperty("branch", ess.getUpdateChecker().getVersionBranch());
    updateData.addProperty("dev", ess.getUpdateChecker().isDevBuild());
    essData.add("update-data", updateData);
    final JsonObject econLayer = new JsonObject();
    econLayer.addProperty("enabled", !ess.getSettings().isEcoDisabled());
    econLayer.addProperty("selected-layer", EconomyLayers.isLayerSelected());
    final EconomyLayer layer = EconomyLayers.getSelectedLayer();
    econLayer.addProperty("name", layer == null ? "null" : layer.getName());
    econLayer.addProperty("layer-version", layer == null ? "null" : layer.getPluginVersion());
    econLayer.addProperty("backend-name", layer == null ? "null" : layer.getBackendName());
    essData.add("economy-layer", econLayer);
    final JsonArray addons = new JsonArray();
    final JsonArray plugins = new JsonArray();
    final ArrayList<Plugin> alphabetical = new ArrayList<>();
    Collections.addAll(alphabetical, Bukkit.getPluginManager().getPlugins());
    alphabetical.sort(Comparator.comparing(o -> o.getName().toUpperCase(Locale.ENGLISH)));
    for (final Plugin plugin : alphabetical) {
        final JsonObject pluginData = new JsonObject();
        final PluginDescriptionFile info = plugin.getDescription();
        final String name = info.getName();
        pluginData.addProperty("name", name);
        pluginData.addProperty("version", info.getVersion());
        pluginData.addProperty("description", info.getDescription());
        pluginData.addProperty("main", info.getMain());
        pluginData.addProperty("enabled", plugin.isEnabled());
        pluginData.addProperty("official", plugin == ess || officialPlugins.contains(name));
        pluginData.addProperty("unsupported", warnPlugins.contains(name));
        final JsonArray authors = new JsonArray();
        for (final String author : info.getAuthors()) {
            authors.add(author == null ? JsonNull.INSTANCE : new JsonPrimitive(author));
        }
        pluginData.add("authors", authors);
        if (name.startsWith("Essentials") && !name.equals("Essentials")) {
            addons.add(pluginData);
        }
        plugins.add(pluginData);
    }
    essData.add("addons", addons);
    dump.add("ess-data", essData);
    dump.add("plugins", plugins);
    final List<PasteUtil.PasteFile> files = new ArrayList<>();
    files.add(new PasteUtil.PasteFile("dump.json", dump.toString()));
    final Plugin essDiscord = Bukkit.getPluginManager().getPlugin("EssentialsDiscord");
    final Plugin essSpawn = Bukkit.getPluginManager().getPlugin("EssentialsSpawn");
    // Further operations will be heavy IO
    ess.runTaskAsynchronously(() -> {
        boolean config = false;
        boolean discord = false;
        boolean kits = false;
        boolean log = false;
        boolean worth = false;
        boolean tpr = false;
        boolean spawns = false;
        for (final String arg : args) {
            if (arg.equals("*") || arg.equalsIgnoreCase("all")) {
                config = true;
                discord = true;
                kits = true;
                log = true;
                worth = true;
                tpr = true;
                spawns = true;
                break;
            } else if (arg.equalsIgnoreCase("config")) {
                config = true;
            } else if (arg.equalsIgnoreCase("discord")) {
                discord = true;
            } else if (arg.equalsIgnoreCase("kits")) {
                kits = true;
            } else if (arg.equalsIgnoreCase("log")) {
                log = true;
            } else if (arg.equalsIgnoreCase("worth")) {
                worth = true;
            } else if (arg.equalsIgnoreCase("tpr")) {
                tpr = true;
            } else if (arg.equalsIgnoreCase("spawns")) {
                spawns = true;
            }
        }
        if (config) {
            try {
                files.add(new PasteUtil.PasteFile("config.yml", new String(Files.readAllBytes(ess.getSettings().getConfigFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "config.yml", e.getMessage()));
            }
        }
        if (discord && essDiscord != null) {
            try {
                files.add(new PasteUtil.PasteFile("discord-config.yml", new String(Files.readAllBytes(essDiscord.getDataFolder().toPath().resolve("config.yml")), StandardCharsets.UTF_8).replaceAll("[A-Za-z\\d]{24}\\.[\\w-]{6}\\.[\\w-]{27}", "<censored token>")));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "discord-config.yml", e.getMessage()));
            }
        }
        if (kits) {
            try {
                files.add(new PasteUtil.PasteFile("kits.yml", new String(Files.readAllBytes(ess.getKits().getFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "kits.yml", e.getMessage()));
            }
        }
        if (log) {
            try {
                files.add(new PasteUtil.PasteFile("latest.log", new String(Files.readAllBytes(Paths.get("logs", "latest.log")), StandardCharsets.UTF_8).replaceAll("(?m)^\\[\\d\\d:\\d\\d:\\d\\d] \\[.+/(?:DEBUG|TRACE)]: .+\\s(?:[A-Za-z.]+:.+\\s(?:\\t.+\\s)*)?\\s*(?:\"[A-Za-z]+\" : .+[\\s}\\]]+)*", "").replaceAll("(?:[0-9]{1,3}\\.){3}[0-9]{1,3}", "<censored ip address>")));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "latest.log", e.getMessage()));
            }
        }
        if (worth) {
            try {
                files.add(new PasteUtil.PasteFile("worth.yml", new String(Files.readAllBytes(ess.getWorth().getFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "worth.yml", e.getMessage()));
            }
        }
        if (tpr) {
            try {
                files.add(new PasteUtil.PasteFile("tpr.yml", new String(Files.readAllBytes(ess.getRandomTeleport().getFile().toPath()), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "tpr.yml", e.getMessage()));
            }
        }
        if (spawns && essSpawn != null) {
            try {
                files.add(new PasteUtil.PasteFile("spawn.yml", new String(Files.readAllBytes(ess.getDataFolder().toPath().resolve("spawn.yml")), StandardCharsets.UTF_8)));
            } catch (IOException e) {
                sender.sendMessage(tl("dumpErrorUpload", "spawn.yml", e.getMessage()));
            }
        }
        final CompletableFuture<PasteUtil.PasteResult> future = PasteUtil.createPaste(files);
        future.thenAccept(result -> {
            if (result != null) {
                final String dumpUrl = "https://essentialsx.net/dump.html?id=" + result.getPasteId();
                sender.sendMessage(tl("dumpUrl", dumpUrl));
                sender.sendMessage(tl("dumpDeleteKey", result.getDeletionKey()));
                if (sender.isPlayer()) {
                    ess.getLogger().info(tl("dumpConsoleUrl", dumpUrl));
                    ess.getLogger().info(tl("dumpDeleteKey", result.getDeletionKey()));
                }
            }
            files.clear();
        });
        future.exceptionally(throwable -> {
            sender.sendMessage(tl("dumpError", throwable.getMessage()));
            return null;
        });
    });
}
Also used : EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) Plugin(org.bukkit.plugin.Plugin) JsonObject(com.google.gson.JsonObject) Arrays(java.util.Arrays) NumberUtil(com.earth2me.essentials.utils.NumberUtil) CommandSource(com.earth2me.essentials.CommandSource) User(com.earth2me.essentials.User) Player(org.bukkit.entity.Player) PasteUtil(com.earth2me.essentials.utils.PasteUtil) VersionUtil(com.earth2me.essentials.utils.VersionUtil) Location(org.bukkit.Location) FloatUtil(com.earth2me.essentials.utils.FloatUtil) World(org.bukkit.World) Locale(java.util.Locale) Map(java.util.Map) EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) Bukkit(org.bukkit.Bukkit) I18n.tl(com.earth2me.essentials.I18n.tl) ImmutableMap(com.google.common.collect.ImmutableMap) Collection(java.util.Collection) Sound(org.bukkit.Sound) UUID(java.util.UUID) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) StandardCharsets(java.nio.charset.StandardCharsets) JsonArray(com.google.gson.JsonArray) List(java.util.List) EconomyLayers(com.earth2me.essentials.economy.EconomyLayers) DateUtil(com.earth2me.essentials.utils.DateUtil) CompletableFuture(java.util.concurrent.CompletableFuture) Supplier(java.util.function.Supplier) UserMap(com.earth2me.essentials.UserMap) ArrayList(java.util.ArrayList) Lists(com.google.common.collect.Lists) Server(org.bukkit.Server) JsonPrimitive(com.google.gson.JsonPrimitive) ManagementFactory(java.lang.management.ManagementFactory) EnumUtil(com.earth2me.essentials.utils.EnumUtil) Charsets(com.google.common.base.Charsets) Files(java.nio.file.Files) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) IOException(java.io.IOException) EssentialsUpgrade(com.earth2me.essentials.EssentialsUpgrade) Paths(java.nio.file.Paths) JsonNull(com.google.gson.JsonNull) ChatColor(org.bukkit.ChatColor) Comparator(java.util.Comparator) Collections(java.util.Collections) PluginDescriptionFile(org.bukkit.plugin.PluginDescriptionFile) PluginManager(org.bukkit.plugin.PluginManager) JsonPrimitive(com.google.gson.JsonPrimitive) VersionUtil(com.earth2me.essentials.utils.VersionUtil) ArrayList(java.util.ArrayList) JsonObject(com.google.gson.JsonObject) PluginDescriptionFile(org.bukkit.plugin.PluginDescriptionFile) IOException(java.io.IOException) JsonArray(com.google.gson.JsonArray) PasteUtil(com.earth2me.essentials.utils.PasteUtil) Plugin(org.bukkit.plugin.Plugin)

Example 10 with EconomyLayer

use of com.earth2me.essentials.economy.EconomyLayer in project Essentials by drtshock.

the class Commandessentials method runVersion.

// Displays versions of EssentialsX and related plugins.
private void runVersion(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception {
    if (sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.version"))
        return;
    boolean isMismatched = false;
    boolean isVaultInstalled = false;
    boolean isUnsupported = false;
    final VersionUtil.SupportStatus supportStatus = VersionUtil.getServerSupportStatus();
    final PluginManager pm = server.getPluginManager();
    final String essVer = pm.getPlugin("Essentials").getDescription().getVersion();
    final String serverMessageKey;
    if (supportStatus.isSupported()) {
        serverMessageKey = "versionOutputFine";
    } else if (supportStatus == VersionUtil.SupportStatus.UNSTABLE) {
        serverMessageKey = "versionOutputUnsupported";
    } else {
        serverMessageKey = "versionOutputWarn";
    }
    sender.sendMessage(tl(serverMessageKey, "Server", server.getBukkitVersion() + " " + server.getVersion()));
    sender.sendMessage(tl(serverMessageKey, "Brand", server.getName()));
    sender.sendMessage(tl("versionOutputFine", "EssentialsX", essVer));
    for (final Plugin plugin : pm.getPlugins()) {
        final PluginDescriptionFile desc = plugin.getDescription();
        String name = desc.getName();
        final String version = desc.getVersion();
        if (name.startsWith("Essentials") && !name.equalsIgnoreCase("Essentials")) {
            if (officialPlugins.contains(name)) {
                name = name.replace("Essentials", "EssentialsX");
                if (!version.equalsIgnoreCase(essVer)) {
                    isMismatched = true;
                    sender.sendMessage(tl("versionOutputWarn", name, version));
                } else {
                    sender.sendMessage(tl("versionOutputFine", name, version));
                }
            } else {
                sender.sendMessage(tl("versionOutputUnsupported", name, version));
                isUnsupported = true;
            }
        }
        if (versionPlugins.contains(name)) {
            if (warnPlugins.contains(name)) {
                sender.sendMessage(tl("versionOutputUnsupported", name, version));
                isUnsupported = true;
            } else {
                sender.sendMessage(tl("versionOutputFine", name, version));
            }
        }
        if (name.equals("Vault"))
            isVaultInstalled = true;
    }
    final String layer;
    if (ess.getSettings().isEcoDisabled()) {
        layer = "Disabled";
    } else if (EconomyLayers.isLayerSelected()) {
        final EconomyLayer economyLayer = EconomyLayers.getSelectedLayer();
        layer = economyLayer.getName() + " (" + economyLayer.getBackendName() + ")";
    } else {
        layer = "None";
    }
    sender.sendMessage(tl("versionOutputEconLayer", layer));
    if (isMismatched) {
        sender.sendMessage(tl("versionMismatchAll"));
    }
    if (!isVaultInstalled) {
        sender.sendMessage(tl("versionOutputVaultMissing"));
    }
    if (isUnsupported) {
        sender.sendMessage(tl("versionOutputUnsupportedPlugins"));
    }
    switch(supportStatus) {
        case NMS_CLEANROOM:
            sender.sendMessage(ChatColor.DARK_RED + tl("serverUnsupportedCleanroom"));
            break;
        case DANGEROUS_FORK:
            sender.sendMessage(ChatColor.DARK_RED + tl("serverUnsupportedDangerous"));
            break;
        case UNSTABLE:
            sender.sendMessage(ChatColor.DARK_RED + tl("serverUnsupportedMods"));
            break;
        case OUTDATED:
            sender.sendMessage(ChatColor.RED + tl("serverUnsupported"));
            break;
        case LIMITED:
            sender.sendMessage(ChatColor.RED + tl("serverUnsupportedLimitedApi"));
            break;
    }
    if (VersionUtil.getSupportStatusClass() != null) {
        sender.sendMessage(ChatColor.RED + tl("serverUnsupportedClass", VersionUtil.getSupportStatusClass()));
    }
    sender.sendMessage(tl("versionFetching"));
    ess.runTaskAsynchronously(() -> {
        for (String str : ess.getUpdateChecker().getVersionMessages(true, true)) {
            sender.sendMessage(str);
        }
    });
}
Also used : PluginManager(org.bukkit.plugin.PluginManager) EconomyLayer(com.earth2me.essentials.economy.EconomyLayer) VersionUtil(com.earth2me.essentials.utils.VersionUtil) PluginDescriptionFile(org.bukkit.plugin.PluginDescriptionFile) Plugin(org.bukkit.plugin.Plugin)

Aggregations

EconomyLayer (com.earth2me.essentials.economy.EconomyLayer)10 VersionUtil (com.earth2me.essentials.utils.VersionUtil)4 EventHandler (org.bukkit.event.EventHandler)4 Plugin (org.bukkit.plugin.Plugin)4 PluginDescriptionFile (org.bukkit.plugin.PluginDescriptionFile)4 PluginManager (org.bukkit.plugin.PluginManager)4 CommandSource (com.earth2me.essentials.CommandSource)2 EssentialsUpgrade (com.earth2me.essentials.EssentialsUpgrade)2 I18n.tl (com.earth2me.essentials.I18n.tl)2 User (com.earth2me.essentials.User)2 UserMap (com.earth2me.essentials.UserMap)2 EconomyLayers (com.earth2me.essentials.economy.EconomyLayers)2 DateUtil (com.earth2me.essentials.utils.DateUtil)2 EnumUtil (com.earth2me.essentials.utils.EnumUtil)2 FloatUtil (com.earth2me.essentials.utils.FloatUtil)2 NumberUtil (com.earth2me.essentials.utils.NumberUtil)2 PasteUtil (com.earth2me.essentials.utils.PasteUtil)2 Charsets (com.google.common.base.Charsets)2 ImmutableMap (com.google.common.collect.ImmutableMap)2 Lists (com.google.common.collect.Lists)2