Search in sources :

Example 31 with Settings

use of com.eintosti.buildsystem.object.settings.Settings in project BuildSystem by einTosti.

the class PlayerJoinListener method onPlayerJoin.

@EventHandler
@SuppressWarnings("deprecation")
public void onPlayerJoin(PlayerJoinEvent event) {
    Player player = event.getPlayer();
    settingsManager.createSettings(player);
    plugin.getSkullCache().cacheSkull(player.getName());
    String worldName = player.getWorld().getName();
    BuildWorld buildWorld = worldManager.getBuildWorld(worldName);
    if (buildWorld != null) {
        if (!buildWorld.isPhysics() && player.hasPermission("buildsystem.physics.message")) {
            player.sendMessage(plugin.getString("physics_deactivated_in_world").replace("%world%", buildWorld.getName()));
        }
        if (configValues.isArchiveVanish() && buildWorld.getStatus() == WorldStatus.ARCHIVE) {
            player.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 0, false, false), false);
            Bukkit.getOnlinePlayers().forEach(pl -> pl.hidePlayer(player));
        }
    }
    Settings settings = settingsManager.getSettings(player);
    if (settings.isNoClip()) {
        plugin.getNoClipManager().startNoClip(player);
    }
    if (settings.isScoreboard()) {
        settingsManager.startScoreboard(player);
        plugin.getPlayerManager().forceUpdateSidebar(player);
    }
    if (settings.isSpawnTeleport()) {
        spawnManager.teleport(player);
    }
    if (settings.isClearInventory()) {
        player.getInventory().clear();
    }
    manageHidePlayer(player);
    addJoinItem(player);
    if (player.hasPermission("buildsystem.updates")) {
        performUpdateCheck(player);
    }
}
Also used : BuildWorld(com.eintosti.buildsystem.object.world.BuildWorld) Player(org.bukkit.entity.Player) PotionEffect(org.bukkit.potion.PotionEffect) Settings(com.eintosti.buildsystem.object.settings.Settings) EventHandler(org.bukkit.event.EventHandler)

Example 32 with Settings

use of com.eintosti.buildsystem.object.settings.Settings in project BuildSystem by einTosti.

the class PlaceholderApiExpansion method parseSettingsPlaceholder.

/**
 * This is the method called when a placeholder with the identifier
 * {@code %buildsystem_settings_<setting>%} is found
 *
 * @param player     A Player.
 * @param identifier A String containing the identifier/value.
 * @return possibly-null String of the requested identifier.
 */
@Nullable
private String parseSettingsPlaceholder(Player player, String identifier) {
    Settings settings = settingsManager.getSettings(player);
    String settingIdentifier = identifier.split("_")[1];
    switch(settingIdentifier.toLowerCase()) {
        case "navigatortype":
            return settings.getNavigatorType().toString();
        case "glasscolor":
            return settings.getGlassColor().toString();
        case "worldsort":
            return settings.getWorldSort().toString();
        case "clearinventory":
            return String.valueOf(settings.isClearInventory());
        case "disableinteract":
            return String.valueOf(settings.isDisableInteract());
        case "hideplayers":
            return String.valueOf(settings.isHidePlayers());
        case "instantplacesigns":
            return String.valueOf(settings.isInstantPlaceSigns());
        case "keepnavigator":
            return String.valueOf(settings.isKeepNavigator());
        case "nightvision":
            return String.valueOf(settings.isNightVision());
        case "noclip":
            return String.valueOf(settings.isNoClip());
        case "placeplants":
            return String.valueOf(settings.isPlacePlants());
        case "scoreboard":
            return String.valueOf(settings.isScoreboard());
        case "slabbreaking":
            return String.valueOf(settings.isSlabBreaking());
        case "spawnteleport":
            return String.valueOf(settings.isSpawnTeleport());
        case "opentrapdoors":
            return String.valueOf(settings.isTrapDoor());
        default:
            return null;
    }
}
Also used : Settings(com.eintosti.buildsystem.object.settings.Settings) Nullable(org.jetbrains.annotations.Nullable)

Example 33 with Settings

use of com.eintosti.buildsystem.object.settings.Settings in project BuildSystem by einTosti.

the class DesignInventory method setItem.

private void setItem(Player player, Inventory inventory, int position, XMaterial material, String displayName, Color color) {
    SettingsManager settingsManager = plugin.getSettingsManager();
    Settings settings = settingsManager.getSettings(player);
    ItemStack itemStack = inventoryManager.getItemStack(material, settings.getGlassColor() == color ? "§a" + displayName : "§7" + displayName);
    ItemMeta itemMeta = itemStack.getItemMeta();
    if (itemMeta != null) {
        itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
    }
    itemStack.setItemMeta(itemMeta);
    if (settings.getGlassColor() == color) {
        itemStack.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
    }
    inventory.setItem(position, itemStack);
}
Also used : SettingsManager(com.eintosti.buildsystem.manager.SettingsManager) ItemStack(org.bukkit.inventory.ItemStack) Settings(com.eintosti.buildsystem.object.settings.Settings) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Example 34 with Settings

use of com.eintosti.buildsystem.object.settings.Settings in project BuildSystem by einTosti.

the class DesignInventory method onInventoryClick.

@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    if (!inventoryManager.checkIfValidClick(event, "design_title")) {
        return;
    }
    Player player = (Player) event.getWhoClicked();
    Settings settings = plugin.getSettingsManager().getSettings(player);
    ItemStack itemStack = event.getCurrentItem();
    if (itemStack.getType().toString().contains("STAINED_GLASS_PANE")) {
        plugin.getSettingsInventory().openInventory(player);
        return;
    }
    switch(event.getSlot()) {
        case 10:
            settings.setGlassColor(Color.RED);
            break;
        case 11:
            settings.setGlassColor(Color.ORANGE);
            break;
        case 12:
            settings.setGlassColor(Color.YELLOW);
            break;
        case 13:
            settings.setGlassColor(Color.PINK);
            break;
        case 14:
            settings.setGlassColor(Color.MAGENTA);
            break;
        case 15:
            settings.setGlassColor(Color.PURPLE);
            break;
        case 16:
            settings.setGlassColor(Color.BROWN);
            break;
        case 18:
            settings.setGlassColor(Color.LIME);
            break;
        case 19:
            settings.setGlassColor(Color.GREEN);
            break;
        case 20:
            settings.setGlassColor(Color.BLUE);
            break;
        case 21:
            settings.setGlassColor(Color.CYAN);
            break;
        case 22:
            settings.setGlassColor(Color.LIGHT_BLUE);
            break;
        case 23:
            settings.setGlassColor(Color.WHITE);
            break;
        case 24:
            settings.setGlassColor(Color.LIGHT_GRAY);
            break;
        case 25:
            settings.setGlassColor(Color.GRAY);
            break;
        case 26:
            settings.setGlassColor(Color.BLACK);
            break;
    }
    openInventory(player);
}
Also used : Player(org.bukkit.entity.Player) ItemStack(org.bukkit.inventory.ItemStack) Settings(com.eintosti.buildsystem.object.settings.Settings) EventHandler(org.bukkit.event.EventHandler)

Example 35 with Settings

use of com.eintosti.buildsystem.object.settings.Settings in project BuildSystem by einTosti.

the class SettingsInventory method onInventoryClick.

@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
    if (!inventoryManager.checkIfValidClick(event, "settings_title")) {
        return;
    }
    Player player = (Player) event.getWhoClicked();
    Settings settings = settingsManager.getSettings(player);
    switch(event.getSlot()) {
        case 11:
            plugin.getDesignInventory().openInventory(player);
            XSound.ENTITY_ITEM_PICKUP.play(player);
            return;
        case 12:
            settings.setClearInventory(!settings.isClearInventory());
            break;
        case 13:
            settings.setDisableInteract(!settings.isDisableInteract());
            break;
        case 14:
            settings.setHidePlayers(!settings.isHidePlayers());
            toggleHidePlayers(player, settings);
            break;
        case 15:
            settings.setInstantPlaceSigns(!settings.isInstantPlaceSigns());
            break;
        case 20:
            settings.setKeepNavigator(!settings.isKeepNavigator());
            break;
        case 21:
            if (settings.getNavigatorType().equals(NavigatorType.OLD)) {
                settings.setNavigatorType(NavigatorType.NEW);
            } else {
                settings.setNavigatorType(NavigatorType.OLD);
                plugin.getArmorStandManager().removeArmorStands(player);
                if (player.hasPotionEffect(PotionEffectType.BLINDNESS)) {
                    player.removePotionEffect(PotionEffectType.BLINDNESS);
                }
            }
            break;
        case 22:
            if (!settings.isNightVision()) {
                settings.setNightVision(true);
                player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, false, false));
            } else {
                settings.setNightVision(false);
                if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION)) {
                    player.removePotionEffect(PotionEffectType.NIGHT_VISION);
                }
            }
            break;
        case 23:
            NoClipManager noClipManager = plugin.getNoClipManager();
            if (!settings.isNoClip()) {
                settings.setNoClip(true);
                noClipManager.startNoClip(player);
            } else {
                settings.setNoClip(false);
                noClipManager.stopNoClip(player.getUniqueId());
            }
            break;
        case 24:
            settings.setTrapDoor(!settings.isTrapDoor());
            break;
        case 29:
            settings.setPlacePlants(!settings.isPlacePlants());
            break;
        case 30:
            if (!configValues.isScoreboard()) {
                XSound.ENTITY_ITEM_BREAK.play(player);
                return;
            }
            if (settings.isScoreboard()) {
                settings.setScoreboard(false);
                settingsManager.stopScoreboard(player);
            } else {
                settings.setScoreboard(true);
                settingsManager.startScoreboard(player);
                plugin.getPlayerManager().forceUpdateSidebar(player);
            }
            break;
        case 31:
            settings.setSlabBreaking(!settings.isSlabBreaking());
            break;
        case 32:
            settings.setSpawnTeleport(!settings.isSpawnTeleport());
            break;
        case 33:
            switch(settings.getWorldSort()) {
                case NAME_A_TO_Z:
                    settings.setWorldSort(WorldSort.NAME_Z_TO_A);
                    break;
                case NAME_Z_TO_A:
                    settings.setWorldSort(WorldSort.PROJECT_A_TO_Z);
                    break;
                case PROJECT_A_TO_Z:
                    settings.setWorldSort(WorldSort.PROJECT_Z_TO_A);
                    break;
                case PROJECT_Z_TO_A:
                    settings.setWorldSort(WorldSort.NEWEST_FIRST);
                    break;
                case NEWEST_FIRST:
                    settings.setWorldSort(WorldSort.OLDEST_FIRST);
                    break;
                case OLDEST_FIRST:
                    settings.setWorldSort(WorldSort.NAME_A_TO_Z);
                    break;
            }
            break;
        default:
            return;
    }
    XSound.ENTITY_ITEM_PICKUP.play(player);
    plugin.getSettingsInventory().openInventory(player);
}
Also used : Player(org.bukkit.entity.Player) PotionEffect(org.bukkit.potion.PotionEffect) NoClipManager(com.eintosti.buildsystem.manager.NoClipManager) Settings(com.eintosti.buildsystem.object.settings.Settings) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Settings (com.eintosti.buildsystem.object.settings.Settings)48 Player (org.bukkit.entity.Player)24 EventHandler (org.bukkit.event.EventHandler)24 ItemStack (org.bukkit.inventory.ItemStack)16 XMaterial (com.cryptomorin.xseries.XMaterial)14 XBlock (com.cryptomorin.xseries.XBlock)6 Material (org.bukkit.Material)6 Block (org.bukkit.block.Block)6 Action (org.bukkit.event.block.Action)4 ItemMeta (org.bukkit.inventory.meta.ItemMeta)4 PotionEffect (org.bukkit.potion.PotionEffect)4 NoClipManager (com.eintosti.buildsystem.manager.NoClipManager)2 SettingsManager (com.eintosti.buildsystem.manager.SettingsManager)2 NavigatorType (com.eintosti.buildsystem.object.navigator.NavigatorType)2 Color (com.eintosti.buildsystem.object.settings.Color)2 WorldSort (com.eintosti.buildsystem.object.settings.WorldSort)2 BuildWorld (com.eintosti.buildsystem.object.world.BuildWorld)2 FastBoard (fr.mrmicky.fastboard.FastBoard)2 Location (org.bukkit.Location)2 BlockFace (org.bukkit.block.BlockFace)2