Search in sources :

Example 6 with BaseComponent

use of net.md_5.bungee.api.chat.BaseComponent in project Denizen-For-Bukkit by DenizenScript.

the class ItemBook method getOutputString.

@Deprecated
public String getOutputString() {
    StringBuilder output = new StringBuilder(128);
    BookMeta bookInfo = (BookMeta) item.getItemMeta();
    if (item.getBukkitMaterial().equals(Material.WRITTEN_BOOK) && bookInfo.hasAuthor() && bookInfo.hasTitle()) {
        output.append("author|").append(EscapeTagBase.escape(bookInfo.getAuthor())).append("|title|").append(EscapeTagBase.escape(bookInfo.getTitle())).append("|");
    }
    output.append("pages|");
    if (bookInfo.hasPages()) {
        for (BaseComponent[] page : bookInfo.spigot().getPages()) {
            output.append(EscapeTagBase.escape(FormattedTextHelper.stringify(page, ChatColor.BLACK))).append("|");
        }
    }
    return output.substring(0, output.length() - 1);
}
Also used : BaseComponent(net.md_5.bungee.api.chat.BaseComponent) BookMeta(org.bukkit.inventory.meta.BookMeta)

Example 7 with BaseComponent

use of net.md_5.bungee.api.chat.BaseComponent in project Denizen-For-Bukkit by DenizenScript.

the class ItemBook method getBookMap.

public MapTag getBookMap() {
    MapTag outMap = new MapTag();
    BookMeta bookInfo = (BookMeta) item.getItemMeta();
    if (item.getBukkitMaterial().equals(Material.WRITTEN_BOOK) && bookInfo.hasAuthor() && bookInfo.hasTitle()) {
        outMap.putObject("author", new ElementTag(bookInfo.getAuthor(), true));
        outMap.putObject("title", new ElementTag(bookInfo.getTitle(), true));
    }
    if (bookInfo.hasPages()) {
        List<BaseComponent[]> pages = bookInfo.spigot().getPages();
        ListTag pageList = new ListTag(pages.size());
        for (BaseComponent[] page : pages) {
            pageList.addObject(new ElementTag(FormattedTextHelper.stringify(page, ChatColor.BLACK), true));
        }
        outMap.putObject("pages", pageList);
    }
    return outMap;
}
Also used : BaseComponent(net.md_5.bungee.api.chat.BaseComponent) ElementTag(com.denizenscript.denizencore.objects.core.ElementTag) BookMeta(org.bukkit.inventory.meta.BookMeta) ListTag(com.denizenscript.denizencore.objects.core.ListTag) MapTag(com.denizenscript.denizencore.objects.core.MapTag)

Example 8 with BaseComponent

use of net.md_5.bungee.api.chat.BaseComponent in project Denizen-For-Bukkit by DenizenScript.

the class NarrateCommand method execute.

@Override
public void execute(ScriptEntry scriptEntry) {
    if (scriptEntry.getResidingQueue().procedural) {
        Debug.echoError("'Narrate' should not be used in a procedure script. Consider the 'debug' command instead.");
    }
    List<PlayerTag> targets = (List<PlayerTag>) scriptEntry.getObject("targets");
    String text = scriptEntry.getElement("text").asString();
    ScriptTag formatObj = scriptEntry.getObjectTag("format");
    ElementTag perPlayerObj = scriptEntry.getElement("per_player");
    ElementTag from = scriptEntry.getElement("from");
    boolean perPlayer = perPlayerObj != null && perPlayerObj.asBoolean();
    BukkitTagContext context = (BukkitTagContext) scriptEntry.getContext();
    if (!perPlayer || targets == null) {
        text = TagManager.tag(text, context);
    }
    if (scriptEntry.dbCallShouldDebug()) {
        Debug.report(scriptEntry, getName(), db("Narrating", text), db("Targets", targets), formatObj, perPlayerObj, from);
    }
    UUID fromId = null;
    if (from != null) {
        if (from.asString().startsWith("p@")) {
            fromId = UUID.fromString(from.asString().substring("p@".length()));
        } else {
            fromId = UUID.fromString(from.asString());
        }
    }
    FormatScriptContainer format = formatObj == null ? null : (FormatScriptContainer) formatObj.getContainer();
    if (targets == null) {
        Bukkit.getServer().getConsoleSender().spigot().sendMessage(FormattedTextHelper.parse(format != null ? format.getFormattedText(text, scriptEntry) : text, ChatColor.WHITE));
        return;
    }
    for (PlayerTag player : targets) {
        if (player != null) {
            if (!player.isOnline()) {
                Debug.echoDebug(scriptEntry, "Player is offline, can't narrate to them. Skipping.");
                continue;
            }
            String personalText = text;
            if (perPlayer) {
                context.player = player;
                personalText = TagManager.tag(personalText, context);
            }
            BaseComponent[] component = FormattedTextHelper.parse(format != null ? format.getFormattedText(personalText, scriptEntry) : personalText, ChatColor.WHITE);
            if (fromId == null) {
                player.getPlayerEntity().spigot().sendMessage(component);
            } else {
                player.getPlayerEntity().spigot().sendMessage(ChatMessageType.CHAT, fromId, component);
            }
        } else {
            Debug.echoError("Narrated to non-existent player!?");
        }
    }
}
Also used : BaseComponent(net.md_5.bungee.api.chat.BaseComponent) BukkitTagContext(com.denizenscript.denizen.tags.BukkitTagContext) PlayerTag(com.denizenscript.denizen.objects.PlayerTag) FormatScriptContainer(com.denizenscript.denizen.scripts.containers.core.FormatScriptContainer) ScriptTag(com.denizenscript.denizencore.objects.core.ScriptTag) List(java.util.List) ElementTag(com.denizenscript.denizencore.objects.core.ElementTag) UUID(java.util.UUID)

Example 9 with BaseComponent

use of net.md_5.bungee.api.chat.BaseComponent in project Glowstone by GlowstoneMC.

the class TellrawCommand method execute.

@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args, CommandMessages commandMessages) {
    if (!testPermission(sender, commandMessages.getPermissionMessage())) {
        return true;
    }
    if (args.length < 2) {
        sendUsageMessage(sender, commandMessages);
        return false;
    }
    Player player = Bukkit.getPlayerExact(args[0]);
    if (player == null || sender instanceof Player && !((Player) sender).canSee(player)) {
        commandMessages.getGeneric(GenericMessage.NO_SUCH_PLAYER).send(sender, args[0]);
        return false;
    } else {
        StringBuilder message = new StringBuilder();
        for (int i = 1; i < args.length; i++) {
            if (i > 1) {
                message.append(" ");
            }
            message.append(args[i]);
        }
        Object obj = null;
        String json = message.toString();
        try {
            obj = JSONValue.parseWithException(json);
        } catch (ParseException e) {
            commandMessages.getGeneric(GenericMessage.INVALID_JSON).sendInColor(ChatColor.RED, sender, e.getMessage());
            return false;
        }
        if (obj instanceof JSONArray || obj instanceof JSONObject) {
            BaseComponent[] components = ComponentSerializer.parse(json);
            player.sendMessage(components);
            return true;
        } else {
            commandMessages.getGeneric(GenericMessage.INVALID_JSON).sendInColor(ChatColor.RED, sender, json);
            return false;
        }
    }
}
Also used : Player(org.bukkit.entity.Player) BaseComponent(net.md_5.bungee.api.chat.BaseComponent) JSONObject(org.json.simple.JSONObject) JSONArray(org.json.simple.JSONArray) JSONObject(org.json.simple.JSONObject) ParseException(org.json.simple.parser.ParseException)

Example 10 with BaseComponent

use of net.md_5.bungee.api.chat.BaseComponent in project Ublisk by Derkades.

the class GuildCommand method onCommand.

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (!(sender instanceof Player)) {
        sender.sendMessage(Message.NOT_A_PLAYER.toString());
    }
    UPlayer player = new UPlayer(sender);
    if (args.length == 1) {
        if (args[0].equalsIgnoreCase("accept")) {
            if (Guild.GUILD_INVITES.containsKey(player.getName())) {
                // Player has got an invite
                GuildInvite invite = Guild.GUILD_INVITES.get(player.getName());
                Guild guild = invite.getGuild();
                player.setGuild(guild);
                player.sendPrefixedMessage("Guilds", "You joined " + guild.getName() + "!");
                for (UPlayer guildMember : guild.getMembers()) {
                    if (guildMember.isOnline() && guildMember.getUniqueId() != player.getUniqueId()) {
                        guildMember.sendMessage(ChatColor.DARK_AQUA + "" + ChatColor.BOLD + player.getName() + " has joined your guild!");
                    }
                }
                Guild.GUILD_INVITES.remove(player.getName());
                return true;
            } else {
                // Player does not have an invite
                player.sendPrefixedMessage("Guilds", "You don't have any pending invites.");
                return true;
            }
        } else if (args[0].equalsIgnoreCase("leave")) {
            if (player.getGuild() == null) {
                player.sendPrefixedMessage("Guilds", "You are not in a guild");
                return true;
            }
            Guild guild = player.getGuild();
            if (guild.getMembers().size() <= 1) {
                // If player is last person in guild (player can be owner if they're the only one left)
                player.sendPrefixedMessage("Guilds", "You left " + guild.getName() + ". Because you were the last player in the guild, your guild has been queued for deletion. If you regret leaving this guild, ask a staff member to add you back.");
                player.leaveGuild();
                return true;
            } else if (guild.getOwner().getUniqueId().equals(player.getUniqueId())) {
                // If player is owner - don't allow them to leave
                player.sendMessage("You are owner of this guild. You can only leave this guild if you transfer ownership to another guild member.");
                return true;
            } else {
                // Otherwise it's just a normal player - allow leaving
                player.sendPrefixedMessage("Guilds", "You have left " + guild.getName());
                player.leaveGuild();
                return true;
            }
        } else if (args[0].equalsIgnoreCase("list")) {
            player.sendMessage(ChatColor.AQUA + "----------={" + ChatColor.DARK_AQUA + " Guilds " + ChatColor.AQUA + "}=----------");
            for (Guild guild : Guild.getGuildsList(10)) {
                BaseComponent[] members = new BaseComponent[] {};
                for (UPlayer member : guild.getMembers()) {
                    BaseComponent[] components = member.getDisplayName(ChatColor.BLUE, false);
                    members = ArrayUtils.addAll(members, components);
                }
                player.sendMessage(ArrayUtils.addAll(TextComponent.fromLegacyText(ChatColor.YELLOW + guild.getName() + ChatColor.DARK_GRAY + " | " + ChatColor.RED + guild.getPoints() + " Points" + ChatColor.DARK_GRAY + " | "), members));
            }
            return true;
        } else if (args[0].equalsIgnoreCase("help")) {
            return false;
        } else if (args[0].equalsIgnoreCase("info")) {
            Guild guild = player.getGuild();
            if (guild == null) {
                player.sendPrefixedMessage("Guilds", "You are not in a guild. Use /guild info [guild] to check information about another guild.");
                return true;
            }
            player.executeCommand("guild info " + guild.getName());
            return true;
        } else {
            return false;
        }
    } else if (args.length == 2) {
        if (args[0].equals("create")) {
            Ublisk.runAsync(() -> {
                if (args[1].length() > 20) {
                    Ublisk.runSync(() -> player.sendPrefixedMessage("Guilds", "This guild name is too long."));
                    return;
                }
                if (!StringUtils.validateString(args[1])) {
                    Ublisk.runSync(() -> player.sendPrefixedMessage("Guilds", "Guild names can only contain alphanumerical characters and underscores (a-z, A-Z, 0-9, _)"));
                    return;
                }
                if (player.getGuild() != null) {
                    Ublisk.runSync(() -> player.sendPrefixedMessage("Guilds", "You are already in a guild. Please leave your current guild before creating a new one."));
                    return;
                }
                Guild guild = new Guild(args[1]);
                if (guild.exists()) {
                    Ublisk.runSync(() -> player.sendPrefixedMessage("Guilds", "A guild with this name already exists."));
                    return;
                }
                guild.create(player);
                Ublisk.runSync(() -> player.sendPrefixedMessage("Guilds", "The guild has been created."));
            });
            return true;
        } else if (args[0].equals("info")) {
            Guild guild = new Guild(args[1]);
            if (!guild.exists()) {
                player.sendPrefixedMessage("Guilds", "This guild does not exist.");
                return true;
            }
            player.sendMessage(new ComponentBuilder("Name: ").color(ChatColor.DARK_AQUA).create(), new ComponentBuilder(guild.getName()).color(ChatColor.AQUA).create());
            player.sendMessage(new ComponentBuilder("Points: ").color(ChatColor.DARK_AQUA).create(), new ComponentBuilder(guild.getPoints() + "").color(ChatColor.AQUA).create());
            player.sendMessage(new ComponentBuilder("Description: ").color(ChatColor.DARK_AQUA).create(), new ComponentBuilder(guild.getDescription()).color(ChatColor.AQUA).create());
            player.sendMessage(new ComponentBuilder("Members: ").color(ChatColor.DARK_AQUA).create());
            for (UPlayer member : guild.getMembers()) {
                player.sendMessage(new ComponentBuilder("- ").color(ChatColor.DARK_GRAY).bold(true).create(), member.getDisplayName(ChatColor.AQUA, false));
            }
            return true;
        } else if (args[0].equalsIgnoreCase("invite")) {
            if (player.getGuild() == null) {
                player.sendPrefixedMessage("Guilds", "You are not in a guild.");
                return true;
            }
            UPlayer target = null;
            try {
                target = new UPlayer(args[1]);
            } catch (PlayerNotFoundException e) {
                player.sendMessage(Message.PLAYER_NOT_FOUND);
                return true;
            }
            Guild guild = player.getGuild();
            guild.invitePlayer(player, target);
            player.sendPrefixedMessage("Guilds", "You have invited " + target.getName() + " to your guild.");
            return true;
        } else if (args[0].equalsIgnoreCase("rename")) {
            if (player.getGuild() == null) {
                player.sendPrefixedMessage("Guilds", "You are not in a guild.");
                return true;
            }
            if (!StringUtils.validateString(args[1])) {
                player.sendPrefixedMessage("Guilds", "Guild names can only contain alphanumerical characters and underscores (a-z, A-Z, 0-9, _).");
                return true;
            }
            Guild guild = new Guild(args[1]);
            if (guild.exists()) {
                player.sendPrefixedMessage("Guilds", "A guild with this name already exists.");
                return true;
            }
            player.sendPrefixedMessage("Guilds", "Your guild has been renamed to " + args[1]);
            Ublisk.runAsync(() -> {
                guild.rename(args[1]);
            });
            return true;
        } else if (args[0].equalsIgnoreCase("owner")) {
            if (player.getGuild() == null) {
                player.sendPrefixedMessage("Guilds", "You are not in a guild.");
                return true;
            }
            UPlayer target;
            try {
                target = new UPlayer(args[1]);
            } catch (PlayerNotFoundException e) {
                player.sendPrefixedMessage("Guilds", "This player could not be found.");
                return true;
            }
            Guild guild = player.getGuild();
            if (!player.getGuild().getName().equals(target.getGuild().getName())) {
                player.sendPrefixedMessage("Guilds", "You cannot transfer ownership to a player who is not in your guild.");
                return true;
            }
            player.sendPrefixedMessage("Guilds", target.getName() + " is now the owner of " + guild.getName());
            Ublisk.runAsync(() -> {
                guild.setOwner(target);
            });
            return true;
        } else {
            return false;
        }
    } else if (args[0].equalsIgnoreCase("description") || args[0].equalsIgnoreCase("desc")) {
        String description = String.join(" ", ListUtils.removeFirstStringFromArray(args));
        if (description.length() > 100) {
            player.sendPrefixedMessage("Guilds", "This description is too long.");
            return true;
        }
        if (description.length() < 6) {
            player.sendPrefixedMessage("Guilds", "This description is too short.");
            return true;
        }
        Guild guild = player.getGuild();
        if (guild == null) {
            player.sendPrefixedMessage("Guilds", "You are not in a guild.");
            return true;
        }
        player.sendPrefixedMessage("Guilds", "You have changed your guild's description to " + StringUtils.addDotIfNecessary(description));
        Ublisk.runAsync(() -> {
            guild.setDescription(description);
        });
        return true;
    } else {
        return false;
    }
}
Also used : UPlayer(xyz.derkades.ublisk.utils.UPlayer) Player(org.bukkit.entity.Player) BaseComponent(net.md_5.bungee.api.chat.BaseComponent) UPlayer(xyz.derkades.ublisk.utils.UPlayer) GuildInvite(xyz.derkades.ublisk.utils.Guild.GuildInvite) PlayerNotFoundException(xyz.derkades.ublisk.utils.exception.PlayerNotFoundException) Guild(xyz.derkades.ublisk.utils.Guild) ComponentBuilder(net.md_5.bungee.api.chat.ComponentBuilder)

Aggregations

BaseComponent (net.md_5.bungee.api.chat.BaseComponent)23 TextComponent (net.md_5.bungee.api.chat.TextComponent)8 ClickEvent (net.md_5.bungee.api.chat.ClickEvent)7 ComponentBuilder (net.md_5.bungee.api.chat.ComponentBuilder)6 HoverEvent (net.md_5.bungee.api.chat.HoverEvent)5 Player (org.bukkit.entity.Player)4 BookMeta (org.bukkit.inventory.meta.BookMeta)4 UPlayer (xyz.derkades.ublisk.utils.UPlayer)4 ElementTag (com.denizenscript.denizencore.objects.core.ElementTag)3 ListTag (com.denizenscript.denizencore.objects.core.ListTag)3 ChatColor (net.md_5.bungee.api.ChatColor)3 MapTag (com.denizenscript.denizencore.objects.core.MapTag)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 ListTag (net.minecraft.nbt.ListTag)2 EventHandler (org.bukkit.event.EventHandler)2 PlayerNotFoundException (xyz.derkades.ublisk.utils.exception.PlayerNotFoundException)2 MinigamesBroadcastEvent (au.com.mineauz.minigames.events.MinigamesBroadcastEvent)1 EntityTag (com.denizenscript.denizen.objects.EntityTag)1 ItemTag (com.denizenscript.denizen.objects.ItemTag)1