FabioZumbi12 / UltimateChat

Complete and advanced chat plugin

Ultimate Chat with JSON events and easy tag/rank replacements.

This plugin is a port of Spigot/Bukkit version: https://www.spigotmc.org/resources/uchat.23767/


Images:

Mention a player (with sound notification):

On hover on channel alias:

On Hover on Player Name:


Compatible plugins:

  • Compatible with Nucleus to get the nickname and nucleus chat format;
  • MagiBridge can send messages from Minecraft to Discord (and Discord to Minecraft) per channel;
  • MCClans To show clan info, kdr, rank, tag and more:
    {clan_name}: The name of clan;
    {clan_tag}: Clan tag;
    {clan_tag_color}: Clan tag with colors;
    {clan_kdr}: Clan KDR;
    {clan_player_rank}: Get the player rank on Clan;
    {clan_player_kdr}: Get the player KDR;
    {clan_player_ffprotected}: Get if player is friendly fire protected;
    {clan_player_isowner}: Get if this player os owner of this Clan;

About:

UltimateChat allow you (server owner) to show additional info on player names, chat tag, marry tags and in any tag you choose create, all using minecraft JSON. This info will be show when the player hover the mouse under player tag on chat. Click event are available too like click on player name and send teleport request, or click on Clan tag and see all clan player info.

Features:

  • Hook with PlaceHolderAPI to show all available placeholders on of all suported plugins;(not available on Sponge)
  • Hover and click under player chat tags;
  • Show Clan info, KDR, name, tag, rank, etc;
  • Use channels as command aliases;
  • Hook into permissions plugins and on Sponge API to get prefixes, suffixes, money and group;
  • Channel costs to chat;
  • Mention players. When a player write other player name on chat this player will be notified with a sound;
  • Easy channel creation and personalization, by distance, world or all;
  • Easy TAG creation and 100% customization of a tag;
  • Complete API to add tag, change the messages or cancel chat, all via plugin. With javadocs too;
  • Complete chat protection with all configurable:
  • Anti-Spam;
  • Anti-Flood;
  • Anti URL/IPs;
  • Chat Censor;

Commands and Permissions:

<> = Needed [] = Optional

/ch <channel> or /<channel> - uchat.channel.<channelname>
To focus on channel.

/<channel> <message> - uchat.channel.<channelname>
To send a message to specific channel without focus.

/ubroad <message> [hover:<message>] [click:<cmd>] - uchat.cmd.broadcast
Send broadcast messages with optional hover message and click action. You can change or add more aliases like /all <message> on config file. On click:<cmd> you can use {clicked} to put the player name who clicked on command.

/umsg <player> - uchat.cmd.message
To send a clear message (without tags) with only colors to players. Usefull to use with other plugins to send system messages without broadcast.

/chat clear - uchat.cmd.clear
To clear own chat messages (not for all players);

/chat clear-all - uchat.cmd.clear-all
To clear own chat messages and for all players;

/chat spy - uchat.cmd.spy
To enable/Disable spy chat. This will spy the non global chats and all private messages.

/chat mute <player> [channel] - uchat.cmd.mute
To mute/unmute a player in all channels, or in a specific channel.

/chat ignore channel|player <channel/player> - uchat.cmd.ignore.player or uchat.cmd.ignore.channel
To ignore a channel or player and dont receive the channel/player messages.

/chat reload - uchat.cmd.reload
Reload the config and language files.

Recommended Permissions:

Its recommended to give this permissions by default to your normal players:

uchat.channel.global
uchat.channel.local
uchat.chat.mention
uchat.cmd.ignore.player
uchat.cmd.ignore.channel
uchat.cmd.clear

And this permissions to your server Staffs:

uchat.cmd.spy
uchat.cmd.mute
uchat.channel.admin
uchat.chat.color

If using LuckPerms, give this to your staffs:

uchat.cmd.*
uchat.channel.*
uchat.chat.*

or

uchat.*

Other permissions:

uchat.bypass.costs - To bypass cost to chat on channels;
uchat.chat.mention - To allow mention players on chat;
uchat.chat.color - To allow use color codes on chat;
uchat.chat.color.formats - To allow use italic, bold and other formats;
uchat.chat.color.magic - To allow use magic;
uchat.channel.admin - To allow use of channel admin;

To bypass chat protections:

uchat.bypass-spam
uchat.bypass-enhancement
uchat.bypass-anti-ip
uchat.bypass-censor

Channels as Aliases:

You can use channels as aliases with UChat. You can create an channel or use an existent to this.

Go to config folder, channels/ and on a channels-name.conf, edit the options on channelAlias and set enable to true.

On sendAs you set if the command alias will be sent using player name or console; On cmd you set the command alias to use in this channel; After change this use /chat reload.

Now, when a player enter in this channel using /ch <channel-name> or /<channel-alias> the message will be send as command until the player is on that channel.

Example: This config:

channelAlias:
  enable: true
  sendAs: player
  cmd: loteria

When a player send the message “20” in this channel, will be the same as: /loteria 20.


Configuration:

By default (on first run) UChat will get the default prefix and the default suffix. On tags section is already a tag to get the prefix a player is in and replace on chat.

Run, test and see the result before try to configure as you want. The configuration may be appear confusing to you, but its strongly customizable.

The placeholders are on head of configuration. Pay attentio on Vanilla Chat: placeholders, where with this placeholders you can get the default chat tags, sent from other plugins (like Nucleus tags) or from vanilla format.

Default Configuration:

# Uchat configuration file
# Author: FabioZumbi12
# We recommend you to use NotePad++ to edit this file and avoid TAB errors!
# ------------------------------------------------------------------------
# 
# Tags is where you can customize what will show on chat, on hover or on click on tag.
# To add a tag, you can copy an existent and change the name and the texts.
# After add and customize your tag, put the tag name on 'general > default-tag-builder'.
# ------------------------------------------------------------------------
# ###### Do not rename the tags 'playername', 'nickname' and 'message' ########
# ############ or the plugin will not parse the tag correctly! ################
# ------------------------------------------------------------------------
# 
# Available replacers:
# - {world}: Replaced by sender world;
# - {message}: Message sent by player;
# - {playername}: The name of player;
# - {nickname}: The nickname of player. If not set, will show realname;
# - {ch-name}: Channel name;
# - {ch-alias}: Channel alias;
# - {ch-color}: Channel color;
# - {balance}: Get the sender money;
# 
# Permissions:
# - {option_group}: Get the group name;
# - {option_prefix}: Get the prefix of group (if set);
# - {option_suffix}: Get the suffix of group (if set);
# - {option_display_name}: Get the custom name of group (if set);
# - {option_<key option>}: Get some custom key option from your group in permissions like {option_home-count} to get home count from Nucleus;
# Vanilla Chat:
# - {chat_header}: Get the header of chat;
# - {chat_body}: Get the body of chat;
# - {chat_footer}: Get the footer of chat;
# - {chat_all}: Get all default formats;
# 
"_config-version"=1.0
broadcast {
    # Aliases to use for broadcast.
    aliases="broadcast,broad,announce,say,action,all,anunciar,todos"
    # Enable broadcast. Enabling this will unregister any other broadcasts commands using the same aliases.
    enable=true
    # Tag to use on broadcast message to set a click event.
    on-click="click:"
    # Tag to use on broadcast message to set a hover message.
    on-hover="hover:"
    # Tag to use on broadcast message to set a hover event.
    url="url:"
}
debug-messages=false
# General settings.
general {
    # Template to show when players send links or urls.
    URL-template="Click to open &n{url}&r"
    # Command and aliases for /channel command.
    channel-cmd-aliases="channel, ch"
    # Tag to shw when sent messagens from console to channels.
    console-tag="&6 {console}&3"
    # Set the efault channel for new players or when players join on server.
    default-channel=l
    # This is the mains tag builder.
    # Change the order of this tags to change how tag is displayed on chat.
    # This tags represent the names of tag in this configuration.
    default-tag-builder="world,ch-tags,prefix,nickname,suffix,message"
    # Remove this from chat (like empty tags)
    remove-from-chat="[]"
    # Chat spy format.
    spy-format="&c&o[Spy] {output}"
    # Aliases to send commands from system to players (without any format, good to send messages from other plugins direct to players).
    umsg-cmd-aliases=umsg
}
language=EN-US
# Use mentions on chat to change the player name color and play a sound on mention.
mention {
    color-template="&e@{mentioned-player}&r"
    enable=true
    hover-message="&e{playername} mentioned you!"
    playsound="minecraft:block.note.pling"
}
# This is where you will create as many tags you want.
# You can use the tag "custon-tag" to as base to create your own tags.
# When finish, get the name of your tag and put on "general.default-tag-build" 
# or on channel builder on "channels" folder.
tags {
    admin-chat {
        format="&b[&r{playername}&b]&r: &b"
    }
    ch-tags {
        click-cmd="ch {ch-alias}"
        format="{ch-color}[{ch-alias}]&r"
        hover-messages=[
            "&3Channel name: {ch-color}{ch-name}",
            "&bClick to join this channel"
        ]
    }
    custom-tag {
        click-cmd=""
        format="&7[&2MyTag&7]"
        hide-in-worlds=[
            ""
        ]
        hover-messages=[
            ""
        ]
        permission="any-name-perm.custom-tag"
        show-in-worlds=[
            ""
        ]
    }
    message {
        format="{message}"
    }
    nickname {
        format="{nickname}"
        hover-messages=[
            "&3Player: &f{playername}",
            "&3Money: &7{balance}"
        ]
    }
    prefix {
        format="{option_prefix}"
        hover-messages=[
            "&3Rank: &f{option_group}"
        ]
    }
    suffix {
        format="{option_suffix}"
    }
    world {
        format="&7[{world}]&r"
        hover-messages=[
            "&7Sent from world {world}"
        ]
    }
}
tell {
    # Aliases for tell command.
    cmd-aliases="tell,t,w,m,msg,private,priv"
    # Enabling tell wil unregister other plugins tell like nucleus tell, and will use only this tell.
    enable=true
    # Suffix (or message) of tell.
    format="{message}"
    # Hover messages to show on tell messages.
    hover-messages=""
    # Prefix of tell messages.
    prefix="&6[&c{playername} &6-> &c{receivername}&6]: "
}

Default “Global” Channel Configuration:

# ###################################################
# ############## Channel Configuration ##############
# ###################################################
# 
# This is the channel configuration.
# You can change and copy this file to create as many channels you want.
# This is the default options:
# 
# name: Global - The name of channel.
# alias: g - The alias to use the channel
# across-worlds: true - Send messages of this channel to all worlds?
# distance: 0 - If across worlds is false, distance to receive this messages.
# color: &b - The color of channel
# tag-builder: ch-tags,world,clan-tag,marry-tag,group-prefix,nickname,group-suffix,message - Tags of this channel
# need-focus: false - Player can use the alias or need to use '/ch g' to use this channel?
# canLock: true - Change if the player can use /<channel> to lock on channel.receivers-message: true - Send chat messages like if no player near to receive the message?
# cost: 0.0 - Cost to player use this channel.
# use-this-builder: false - Use this tag builder or use the 'config.yml' tag-builder?
# 
# channelAlias - Use this channel as a command alias.
#  enable: true - Enable this execute a command alias?
#  sendAs: player - Send the command alias as 'player' or 'console'?
#  cmd: '' - Command to send on every message send by this channel.
# available-worlds - Worlds and only this world where this chat can be used and messages sent/received.
# 
across-worlds=true
alias=g
available-worlds=[]
bungee=false
canLock=true
channelAlias {
    cmd=""
    enable=false
    sendAs=player
}
color="&2"
cost=0.0
distance=0
name=Global
need-focus=false
receivers-message=true
tag-builder="ch-tags,world,prefix,nickname,suffix,message"
use-this-builder=false

Support:

Chat with us on Discord!

Category: Chat

Published on Mar 05, 2017

1130 views

475 total downloads

Licensed under MIT

Pages

Members