Java Code Examples for com.dsh105.commodus.GeneralUtil

The following examples show how to use com.dsh105.commodus.GeneralUtil. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: HoloAPI   Author: DSH105   File: HoloCommand.java    License: GNU General Public License v3.0 6 votes vote down vote up
@Command(
        command = "holodebug",
        description = "Smashing bugs and coloring books",
        permission = "holo.debug"
)
public boolean debug(CommandEvent event) {
    event.respond("Debug results: ");
    event.respond("--------------[HoloAPI Stuff]--------------");
    event.respond("HoloAPI-Version: " + HoloAPI.getCore().getDescription().getVersion());
    event.respond("Message of the day: " + messages[GeneralUtil.random().nextInt(messages.length)]);
    event.respond("--------------[CraftBukkit Stuff]--------------");
    event.respond("Version tag: " + MinecraftReflection.getVersionTag());
    event.respond("NMS-package: " + MinecraftReflection.getMinecraftPackage());
    event.respond("CB-package: " + MinecraftReflection.getCraftBukkitPackage());
    event.respond("Bukkit version: " + Bukkit.getBukkitVersion());
    event.respond("--------------[Minecraft Server Stuff]--------------");
    event.respond("Using Netty: " + MinecraftReflection.isUsingNetty());
    event.respond("MinecraftServer: " + MinecraftReflection.getMinecraftClass("MinecraftServer").getCanonicalName());
    event.respond("Entity: " + MinecraftReflection.getMinecraftClass("Entity"));
    event.respond("Is (forge) Modded: " + (MinecraftReflection.getMinecraftClass("Entity").getCanonicalName().startsWith("net.minecraft.entity") ? "Definitely" : "Probably not"));
    return true;
}
 
Example #2
Source Project: SonarPet   Author: TechzoneMC   File: PetMenu.java    License: GNU General Public License v3.0 5 votes vote down vote up
public PetMenu(IPet pet, ArrayList<MenuOption> options, int size) {
    this.pet = pet;
    this.size = size;
    this.inv = Bukkit.createInventory(pet.getOwner(), size, "EchoPet DataMenu");
    this.options = options;
    for (MenuOption o : this.options) {
        if (o.item.getMenuType() == DataMenu.DataMenuType.BOOLEAN) {
            MenuItem mi = o.item;
            if (GeneralUtil.isEnumType(PetData.class, mi.toString())) {
                PetData pd = PetData.valueOf(mi.toString());
                if (pet.getPetData().contains(pd)) {
                    this.inv.setItem(o.position, o.item.getBoolean(false));
                } else {
                    this.inv.setItem(o.position, o.item.getBoolean(true));
                }
            } else {
                if (mi.toString().equals("HAT")) {
                    if (pet.isHat()) {
                        this.inv.setItem(o.position, o.item.getBoolean(false));
                    } else {
                        this.inv.setItem(o.position, o.item.getBoolean(true));
                    }
                }
                if (mi.toString().equals("RIDE")) {
                    if (pet.isOwnerRiding()) {
                        this.inv.setItem(o.position, o.item.getBoolean(false));
                    } else {
                        this.inv.setItem(o.position, o.item.getBoolean(true));
                    }
                }
            }
        } else {
            this.inv.setItem(o.position, o.item.getItem());
        }
    }
    int book = size - 1;
    this.inv.setItem(book, DataMenuItem.CLOSE.getItem());
}
 
Example #3
Source Project: SonarPet   Author: TechzoneMC   File: SelectorLayout.java    License: GNU General Public License v3.0 5 votes vote down vote up
public static void loadLayout() {
    if (selectorMenu != null) {
        HandlerList.unregisterAll(selectorMenu);
    }

    selectorLayout.clear();
    YAMLConfig config = ConfigOptions.instance.getConfig();
    String s = "petSelector.menu";
    int size = config.getInt(s + ".slots");
    for (int i = 1; i <= size; i++) {
        String cmd = config.getString(s + ".slot-" + i + ".command");
        String petType = config.getString(s + ".slot-" + i + ".petType");
        PetType pt = null;
        if (petType != null && GeneralUtil.isEnumType(PetType.class, petType.toUpperCase())) {
            pt = PetType.valueOf(petType.toUpperCase());
        }
        int id = config.getInt(s + ".slot-" + i + ".materialId");
        int data = config.getInt(s + ".slot-" + i + ".materialData");
        String name = config.getString(s + ".slot-" + i + ".name");
        if (name == null) {
            continue;
        }
        List<String> lore = config.config().getStringList(s + ".slot-" + i + ".lore");
        if (lore == null) {
            lore = new ArrayList<String>();
        }
        ArrayList<String> loreList = new ArrayList<String>();
        if (lore.size() > 0) {
            for (String part : lore) {
                loreList.add(ChatColor.translateAlternateColorCodes('&', part));
            }
        }
        Material type = Material.getMaterial(id);
        selectorLayout.add(new SelectorIcon(i - 1, cmd, pt, ItemData.create(type, data).withDisplayName(name.trim().isEmpty() ? Optional.empty() : Optional.of(name)).withLore(loreList)));
    }

    selectorMenu = new SelectorMenu();
}
 
Example #4
Source Project: SonarPet   Author: TechzoneMC   File: PetManager.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Override
public void loadRiderFromFile(String type, IPet pet) {
    String path = type + "." + pet.getOwnerUUID();
    if (EchoPet.getConfig(EchoPet.ConfigType.DATA).get(path + ".rider.type") != null) {
        ArrayList<PetData> riderData = new ArrayList<>();
        PetType riderPetType = PetType.fromDataString(EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".rider.type"), riderData);
        String riderName = EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".rider.name");
        if (Strings.isNullOrEmpty(riderName)) {
            riderName = riderPetType.getDefaultName(pet.getNameOfOwner());
        }
        if (EchoPet.getOptions().allowRidersFor(pet.getPetType())) {
            IPet rider = pet.createRider(riderPetType, true);
            if (rider != null && rider.isSpawned()) {
                rider.setPetName(riderName);
                ConfigurationSection mcs = EchoPet.getConfig(EchoPet.ConfigType.DATA).getConfigurationSection(path + ".rider.data");
                if (mcs != null) {
                    for (String key : mcs.getKeys(false)) {
                        if (GeneralUtil.isEnumType(PetData.class, key.toUpperCase())) {
                            PetData pd = PetData.valueOf(key.toUpperCase());
                            riderData.add(pd);
                        } else {
                            Logger.log(Logger.LogLevel.WARNING, "Error whilst loading data Pet Rider Save Data for " + pet.getNameOfOwner() + ". Unknown enum type: " + key + ".", true);
                        }
                    }
                }
                if (!riderData.isEmpty()) {
                    setData(pet, riderData.toArray(new PetData[riderData.size()]), true);
                }
            }
        }
    }
}
 
Example #5
Source Project: HoloAPI   Author: DSH105   File: LocationFunction.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Override
public boolean isValid(ConversationContext context, String input) {
    if (input.contains(" ")) {
        String[] split = input.split("\\s");
        if (split.length == 4) {
            if (Bukkit.getWorld(split[0]) != null) {
                for (int i = 1; i <= 3; i++) {
                    if (!GeneralUtil.isInt(split[i])) {
                        context.setSessionData("fail_int", true);
                        return false;
                    }
                }
                this.location = new Location(Bukkit.getWorld(split[0]), Integer.parseInt(split[1]), Integer.parseInt(split[2]), Integer.parseInt(split[3]));
            } else {
                context.setSessionData("fail_world", true);
                return false;
            }
        } else {
            context.setSessionData("fail_format", true);
            return false;
        }
    } else {
        context.setSessionData("fail_format", true);
        return false;
    }
    return true;
}
 
Example #6
Source Project: HoloAPI   Author: DSH105   File: AnimationBuilderInputPrompt.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Override
protected boolean isInputValid(ConversationContext conversationContext, String s) {
    if (conversationContext.getSessionData("askingForDelay") == null) {
        conversationContext.setSessionData("askingForDelay", false);
    }
    if (conversationContext.getSessionData("nextFrame") == null) {
        conversationContext.setSessionData("nextFrame", false);
    }

    return !((Boolean) conversationContext.getSessionData("askingForDelay") && !GeneralUtil.isInt(s)) && !(this.first && s.equalsIgnoreCase("DONE")) && !(s.equalsIgnoreCase("NEXT") && this.lines.isEmpty());
}
 
Example #7
Source Project: HoloAPI   Author: DSH105   File: EditCommand.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Command(
        command = "edit <id> <line> <content...>",
        description = "Edit a line of an existing hologram",
        permission = "holoapi.holo.edit",
        help = "The content can be more than one word"
)
public boolean editWithContent(CommandEvent event) {
    final Hologram hologram = HoloAPI.getManager().getHologram(event.variable("id"));
    if (hologram == null) {
        event.respond(Lang.HOLOGRAM_NOT_FOUND.getValue("id", event.variable("id")));
        return true;
    }

    int lineNumber;
    try {
        lineNumber = GeneralUtil.toInteger(event.variable("line_number"));
    } catch (NumberFormatException e) {
        event.respond(Lang.INT_ONLY.getValue("string", event.variable("line_number")));
        return true;
    }

    if (lineNumber > hologram.getLines().length) {
        event.respond(Lang.LINE_INDEX_TOO_BIG.getValue("index", event.variable("line_number")));
        return true;
    }

    hologram.updateLine(lineNumber - 1, event.variable("content"));
    event.respond(Lang.HOLOGRAM_UPDATE_LINE.getValue("index", lineNumber, "input", ChatColor.translateAlternateColorCodes('&', event.variable("content"))));
    return true;
}
 
Example #8
Source Project: HoloAPI   Author: DSH105   File: NearbyCommand.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Command(
        command = "nearby <radius>",
        description = "View information on all nearby holograms within the specified radius",
        permission = "holoapi.holo.nearby"
)
public boolean command(CommandEvent<Player> event) {
    int radius;
    try {
        radius = GeneralUtil.toInteger(event.variable("radius"));
    } catch (NumberFormatException e) {
        event.respond(Lang.INT_ONLY.getValue("string", event.variable("radius")));
        return true;
    }

    ArrayList<Hologram> nearby = new ArrayList<Hologram>();
    for (Hologram hologram : HoloAPI.getManager().getAllComplexHolograms().keySet()) {
        if (GeometryUtil.getNearbyEntities(hologram.getDefaultLocation(), radius).contains(event.sender())) {
            nearby.add(hologram);
        }
    }

    if (nearby.isEmpty()) {
        event.respond(Lang.NO_NEARBY_HOLOGRAMS.getValue("radius", radius));
        return true;
    }

    event.respond(Lang.HOLOGRAM_NEARBY.getValue("radius", radius));
    InfoCommand.info(event.sender(), nearby);
    if (MinecraftReflection.isUsingNetty()) {
        event.respond(Lang.TIP_HOVER_PREVIEW.getValue());
    }
    return true;
}
 
Example #9
Source Project: HoloAPI   Author: DSH105   File: ScriptCommand.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Command(
        command = "script editcurrent <line>",
        description = "Edits a script currently being built. Not intended for general use outside of context.",
        includeInHelp = false
        // No permission, as this cannot be called without another command executing it
)
public boolean editCurrentScript(CommandEvent event) {
    if (!(event.sender() instanceof Conversable)) {
        event.respond(Lang.NOT_CONVERSABLE.getValue());
        return true;
    }
    ScriptBuilderPrompt scriptBuilder = SCRIPT_EDITORS.get(getIdent((Conversable) event.sender()));
    if (scriptBuilder == null) {
        event.respond(Lang.PROMPT_SCRIPT_NOT_EDITING.getValue());
        return true;
    }

    int line = 0;
    try {
        line = GeneralUtil.toInteger(event.variable("line"));
    } catch (NumberFormatException e) {
        event.respond(Lang.INT_ONLY.getValue("string", event.variable("line")));
    }
    event.respond(Lang.PROMPT_SCRIPT_LINE_CHANGE.getValue("line", event.variable("line")));
    scriptBuilder.setCurrentlyEditing(line);
    return true;
}
 
Example #10
Source Project: HoloAPI   Author: DSH105   File: HelpCommand.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Command(
        command = "help <index>",
        description = "Retrieve a certain help page of all HoloAPI commands"
)
public boolean helpPage(CommandEvent event) {
    try {
        HoloAPI.getCommandManager().getHelpService().sendPage(event.sender(), GeneralUtil.toInteger(event.variable("index")));
        if (MinecraftReflection.isUsingNetty() && event.sender() instanceof Player) {
            event.respond(Lang.TIP_HOVER_COMMANDS.getValue());
        }
    } catch (NumberFormatException e) {
        event.respond(Lang.HELP_INDEX_TOO_BIG.getValue("index", event.variable("index")));
    }
    return true;
}
 
Example #11
Source Project: HoloAPI   Author: DSH105   File: SimpleAnimationLoader.java    License: GNU General Public License v3.0 5 votes vote down vote up
public void loadAnimationConfiguration(YAMLConfig config) {
    KEY_TO_IMAGE_MAP.clear();
    URL_UNLOADED.clear();
    File imageFolder = new File(HoloAPI.getCore().getDataFolder() + File.separator + "animations");
    if (!imageFolder.exists()) {
        imageFolder.mkdirs();
    }
    ConfigurationSection cs = config.getConfigurationSection("animations");
    if (cs != null) {
        for (String key : cs.getKeys(false)) {
            String path = "animations." + key + ".";
            String imagePath = config.getString(path + "path");
            if (imagePath == null) {
                HoloAPI.LOG.info("Failed to load animation: " + key + ". Invalid path");
                continue;
            }
            int imageHeight = config.getInt(path + "height", 10);
            int frameRate = config.getInt(path + "frameRate", 10);
            boolean requiresBorder = config.getBoolean(path + "requiresBorder", true);
            String imageChar = config.getString(path + "characterType", ImageChar.BLOCK.getHumanName());
            String imageType = config.getString(path + "type", "FILE");
            if (!GeneralUtil.isEnumType(ImageLoader.ImageLoadType.class, imageType.toUpperCase())) {
                HoloAPI.LOG.info("Failed to load animation: " + key + ". Invalid image type.");
                continue;
            }
            AnimationLoadType type = AnimationLoadType.valueOf(imageType.toUpperCase());

            AnimatedImageGenerator generator = findGenerator(type, key, imagePath, frameRate, imageHeight, imageChar, requiresBorder);
            if (generator != null) {
                this.KEY_TO_IMAGE_MAP.put(key, generator);
            }
        }
    }
    loaded = true;
    if (!KEY_TO_IMAGE_MAP.isEmpty() || !URL_UNLOADED.isEmpty()) {
        HoloAPI.LOG.info("Animations loaded.");
    }
}
 
Example #12
Source Project: HoloAPI   Author: DSH105   File: SimpleImageLoader.java    License: GNU General Public License v3.0 5 votes vote down vote up
public void loadImageConfiguration(YAMLConfig config) {
    KEY_TO_IMAGE_MAP.clear();
    URL_UNLOADED.clear();
    File imageFolder = new File(HoloAPI.getCore().getDataFolder() + File.separator + "images");
    if (!imageFolder.exists()) {
        imageFolder.mkdirs();
    }
    ConfigurationSection cs = config.getConfigurationSection("images");
    if (cs != null) {
        for (String key : cs.getKeys(false)) {
            String path = "images." + key + ".";
            String imagePath = config.getString(path + "path");
            int imageHeight = config.getInt(path + "height", 10);
            String imageChar = config.getString(path + "characterType", ImageChar.BLOCK.getHumanName());
            String imageType = config.getString(path + "type", "FILE");
            boolean requiresBorder = config.getBoolean(path + "requiresBorder", true);
            if (!GeneralUtil.isEnumType(ImageLoader.ImageLoadType.class, imageType.toUpperCase())) {
                HoloAPI.LOG.info("Failed to load image: " + key + ". Invalid image type.");
                continue;
            }
            ImageLoader.ImageLoadType type = ImageLoader.ImageLoadType.valueOf(imageType.toUpperCase());

            ImageGenerator generator = findGenerator(type, key, imagePath, imageHeight, imageChar, requiresBorder);
            if (generator != null) {
                this.KEY_TO_IMAGE_MAP.put(key, generator);
            }
        }
    }
    loaded = true;
    if (!KEY_TO_IMAGE_MAP.isEmpty() || !URL_UNLOADED.isEmpty()) {
        HoloAPI.LOG.info("Images loaded.");
    }
}
 
Example #13
Source Project: EntityAPI   Author: EntityAPIDev   File: SimpleEntityManager.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void despawn(ControllableEntity controllableEntity, DespawnReason reason) {
    if (controllableEntity.isSpawned()) {
        controllableEntity.despawn(reason);
    }
    if (!controllableEntity.isSpawned()) {
        Integer id = GeneralUtil.getKeyAtValue(ENTITIES, controllableEntity);
        if (id != null) { // May have already been removed
            this.ENTITIES.remove(id);
        }
    }
}
 
Example #14
Source Project: EchoPet   Author: DSH105   File: PetManager.java    License: GNU General Public License v3.0 5 votes vote down vote up
@Override
public void loadRiderFromFile(String type, IPet pet) {
    if (pet.getOwner() != null) {
        String path = type + "." + pet.getOwnerIdentification();
        if (EchoPet.getConfig(EchoPet.ConfigType.DATA).get(path + ".rider.type") != null) {
            PetType riderPetType = PetType.valueOf(EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".rider.type"));
            String riderName = EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".rider.name");
            if (riderName.equalsIgnoreCase("") || riderName == null) {
                riderName = riderPetType.getDefaultName(pet.getNameOfOwner());
            }
            if (riderPetType == null) return;
            if (EchoPet.getOptions().allowRidersFor(pet.getPetType())) {
                IPet rider = pet.createRider(riderPetType, true);
                if (rider != null && rider.getEntityPet() != null) {
                    rider.setPetName(riderName);
                    ArrayList<PetData> riderData = new ArrayList<PetData>();
                    ConfigurationSection mcs = EchoPet.getConfig(EchoPet.ConfigType.DATA).getConfigurationSection(path + ".rider.data");
                    if (mcs != null) {
                        for (String key : mcs.getKeys(false)) {
                            if (GeneralUtil.isEnumType(PetData.class, key.toUpperCase())) {
                                PetData pd = PetData.valueOf(key.toUpperCase());
                                riderData.add(pd);
                            } else {
                                Logger.log(Logger.LogLevel.WARNING, "Error whilst loading data Pet Rider Save Data for " + pet.getNameOfOwner() + ". Unknown enum type: " + key + ".", true);
                            }
                        }
                    }
                    if (!riderData.isEmpty()) {
                        setData(pet, riderData.toArray(new PetData[riderData.size()]), true);
                    }
                }
            }
        }
    }
}
 
Example #15
Source Project: EchoPet   Author: DSH105   File: PetMenu.java    License: GNU General Public License v3.0 5 votes vote down vote up
public PetMenu(IPet pet, ArrayList<MenuOption> options, int size) {
    this.pet = pet;
    this.size = size;
    this.inv = Bukkit.createInventory(pet.getOwner(), size, "EchoPet DataMenu");
    this.options = options;
    for (MenuOption o : this.options) {
        if (o.item.getMenuType() == DataMenu.DataMenuType.BOOLEAN) {
            MenuItem mi = o.item;
            if (GeneralUtil.isEnumType(PetData.class, mi.toString())) {
                PetData pd = PetData.valueOf(mi.toString());
                if (pet.getPetData().contains(pd)) {
                    this.inv.setItem(o.position, o.item.getBoolean(false));
                } else {
                    this.inv.setItem(o.position, o.item.getBoolean(true));
                }
            } else {
                if (mi.toString().equals("HAT")) {
                    if (pet.isHat()) {
                        this.inv.setItem(o.position, o.item.getBoolean(false));
                    } else {
                        this.inv.setItem(o.position, o.item.getBoolean(true));
                    }
                }
                if (mi.toString().equals("RIDE")) {
                    if (pet.isOwnerRiding()) {
                        this.inv.setItem(o.position, o.item.getBoolean(false));
                    } else {
                        this.inv.setItem(o.position, o.item.getBoolean(true));
                    }
                }
            }
        } else {
            this.inv.setItem(o.position, o.item.getItem());
        }
    }
    int book = size - 1;
    this.inv.setItem(book, DataMenuItem.CLOSE.getItem());
}
 
Example #16
Source Project: EchoPet   Author: DSH105   File: SelectorLayout.java    License: GNU General Public License v3.0 5 votes vote down vote up
public static void loadLayout() {
    if (selectorMenu != null) {
        HandlerList.unregisterAll(selectorMenu);
    }

    selectorLayout.clear();
    YAMLConfig config = ConfigOptions.instance.getConfig();
    String s = "petSelector.menu";
    int size = config.getInt(s + ".slots");
    for (int i = 1; i <= size; i++) {
        String cmd = config.getString(s + ".slot-" + i + ".command");
        String petType = config.getString(s + ".slot-" + i + ".petType");
        PetType pt = null;
        if (petType != null && GeneralUtil.isEnumType(PetType.class, petType.toUpperCase())) {
            pt = PetType.valueOf(petType.toUpperCase());
        }
        int id = config.getInt(s + ".slot-" + i + ".materialId");
        int data = config.getInt(s + ".slot-" + i + ".materialData");
        String name = config.getString(s + ".slot-" + i + ".name");
        if (name == null) {
            continue;
        }
        List<String> lore = config.config().getStringList(s + ".slot-" + i + ".lore");
        if (lore == null) {
            lore = new ArrayList<String>();
        }
        ArrayList<String> loreList = new ArrayList<String>();
        if (lore.size() > 0) {
            for (String part : lore) {
                loreList.add(ChatColor.translateAlternateColorCodes('&', part));
            }
        }
        selectorLayout.add(new SelectorIcon(i - 1, cmd, pt, id, data, name, loreList.toArray(new String[0])));
    }

    selectorMenu = new SelectorMenu();
}
 
Example #17
Source Project: SonarPet   Author: TechzoneMC   File: PetManager.java    License: GNU General Public License v3.0 4 votes vote down vote up
@Override
public IPet createPetFromFile(String type, Player p) {
    if (EchoPet.getOptions().getConfig().getBoolean("loadSavedPets", true)) {
        String path = type + "." + UUIDMigration.getIdentificationFor(p);
        if (EchoPet.getConfig(EchoPet.ConfigType.DATA).get(path) != null) {
            ArrayList<PetData> data = new ArrayList<>();
            PetType petType = PetType.fromDataString(EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".pet.type"), data);
            String name = EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".pet.name");
            if (Strings.isNullOrEmpty(name)) {
                name = petType.getDefaultName(p.getName());
            }
            if (!EchoPet.getOptions().allowPetType(petType)) {
                return null;
            }
            IPet pi = this.createPet(p, petType, true);
            if (pi == null) {
                return null;
            }
            //Pet pi = petType.getNewPetInstance(p, petType);
            //Pet pi = new Pet(p, petType);

            pi.setPetName(name);

            ConfigurationSection cs = EchoPet.getConfig(EchoPet.ConfigType.DATA).getConfigurationSection(path + ".pet.data");
            if (cs != null) {
                for (String key : cs.getKeys(false)) {
                    if (GeneralUtil.isEnumType(PetData.class, key.toUpperCase())) {
                        PetData pd = PetData.valueOf(key.toUpperCase());
                        data.add(pd);
                    } else {
                        Logger.log(Logger.LogLevel.WARNING, "Error whilst loading data Pet Save Data for " + pi.getNameOfOwner() + ". Unknown enum type: " + key + ".", true);
                    }
                }
            }

            if (!data.isEmpty()) {
                setData(pi, data.toArray(new PetData[data.size()]), true);
            }

            this.loadRiderFromFile(type, pi);

            forceAllValidData(pi);
            return pi;
        }
    }
    return null;
}
 
Example #18
Source Project: HoloAPI   Author: DSH105   File: SimpleHoloManager.java    License: GNU General Public License v3.0 4 votes vote down vote up
public ArrayList<String> loadFileData() {
    ArrayList<String> unprepared = new ArrayList<>();
    ConfigurationSection cs = config.getConfigurationSection("holograms");
    if (cs != null) {
        for (String key : cs.getKeys(false)) {
            String path = "holograms." + key + ".";
            String worldName = config.getString(path + "worldName");
            double x = config.getDouble(path + "x");
            double y = config.getDouble(path + "y");
            double z = config.getDouble(path + "z");
            if (config.get(path + "animatedImage.image") != null) {
                if (config.getBoolean(path + "animatedImage.image")) {
                    unprepared.add(key);
                } else {
                    ArrayList<Frame> frameList = new ArrayList<>();
                    ConfigurationSection frames = config.getConfigurationSection("holograms." + key + ".animatedImage.frames");
                    if (frames != null) {
                        for (String frameKey : frames.getKeys(false)) {
                            ConfigurationSection lines = config.getConfigurationSection("holograms." + key + ".animatedImage.frames." + frameKey);
                            if (lines != null) {
                                ArrayList<String> tagList = new ArrayList<>();
                                int delay = config.getInt("holograms." + key + ".animatedImage.frames." + frameKey + ".delay", 5);
                                for (String tagKey : lines.getKeys(false)) {
                                    if (!tagKey.equalsIgnoreCase("delay")) {
                                        tagList.add(config.getString("holograms." + key + ".animatedImage.frames." + frameKey + "." + tagKey));
                                    }
                                }
                                if (!tagList.isEmpty()) {
                                    frameList.add(new Frame(delay, tagList.toArray(new String[tagList.size()])));
                                }
                            }
                        }
                    }

                    if (!frameList.isEmpty()) {
                        this.loadExtraData(new AnimatedHologramFactory(HoloAPI.getCore())
                                        .withSaveId(key)
                                        .withText(new AnimatedTextGenerator(frameList.toArray(new Frame[frameList.size()])))
                                        .withLocation(new Vector(x, y, z), worldName)
                                        .build(),
                                key);
                    }
                }
            } else {
                ConfigurationSection cs1 = config.getConfigurationSection("holograms." + key + ".lines");
                boolean containsImage = false;
                if (cs1 != null) {
                    //ArrayList<String> lines = new ArrayList<String>();
                    HologramFactory hf = new HologramFactory(HoloAPI.getCore());
                    for (String key1 : cs1.getKeys(false)) {
                        if (GeneralUtil.isInt(key1)) {
                            String type = config.getString(path + "lines." + key1 + ".type");
                            String value = config.getString(path + "lines." + key1 + ".value");
                            if (type.equalsIgnoreCase("image")) {
                                containsImage = true;
                                break;
                            } else {
                                hf.withText(value);
                            }

                        } else {
                            HoloAPI.LOG.warning("Failed to load line section of " + key1 + " for Hologram of ID " + key + ".");
                        }
                    }
                    if (containsImage) {
                        unprepared.add(key);
                        continue;
                    }
                    this.loadExtraData(hf.withSaveId(key).withLocation(new Vector(x, y, z), worldName).build(), key);
                }
            }

        }
    }
    return unprepared;
}
 
Example #19
Source Project: EchoPet   Author: DSH105   File: PetManager.java    License: GNU General Public License v3.0 4 votes vote down vote up
@Override
public IPet createPetFromFile(String type, Player p) {
    if (EchoPet.getOptions().getConfig().getBoolean("loadSavedPets", true)) {
        String path = type + "." + UUIDMigration.getIdentificationFor(p);
        if (EchoPet.getConfig(EchoPet.ConfigType.DATA).get(path) != null) {
            PetType petType = PetType.valueOf(EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".pet.type"));
            String name = EchoPet.getConfig(EchoPet.ConfigType.DATA).getString(path + ".pet.name");
            if (name.equalsIgnoreCase("") || name == null) {
                name = petType.getDefaultName(p.getName());
            }
            if (petType == null) return null;
            if (!EchoPet.getOptions().allowPetType(petType)) {
                return null;
            }
            IPet pi = this.createPet(p, petType, true);
            if (pi == null) {
                return null;
            }
            //Pet pi = petType.getNewPetInstance(p, petType);
            //Pet pi = new Pet(p, petType);

            pi.setPetName(name);

            ArrayList<PetData> data = new ArrayList<PetData>();
            ConfigurationSection cs = EchoPet.getConfig(EchoPet.ConfigType.DATA).getConfigurationSection(path + ".pet.data");
            if (cs != null) {
                for (String key : cs.getKeys(false)) {
                    if (GeneralUtil.isEnumType(PetData.class, key.toUpperCase())) {
                        PetData pd = PetData.valueOf(key.toUpperCase());
                        data.add(pd);
                    } else {
                        Logger.log(Logger.LogLevel.WARNING, "Error whilst loading data Pet Save Data for " + pi.getNameOfOwner() + ". Unknown enum type: " + key + ".", true);
                    }
                }
            }

            if (!data.isEmpty()) {
                setData(pi, data.toArray(new PetData[data.size()]), true);
            }

            this.loadRiderFromFile(type, pi);

            forceAllValidData(pi);
            return pi;
        }
    }
    return null;
}