[baeSuite] » baeChat | Advanced Chat System

Script [baeSuite] » baeChat | Advanced Chat System 1.2

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

Contributors
Rezz
Supported Minecraft Versions
  1. 1.7
  2. 1.8
  3. 1.9
  4. 1.10
  5. 1.11
  6. 1.12
baechat_logo.png


Welcome to baeChat
An advanced chat system crafted by BaeFell
aboutbaechat.png


baeChat is the first script in what I'm called, baeSuite. A collection of scripts, addons and tools designed to provide the greatest level of functionality to your server. baeSuite is designed around the idea of being extremely versatile and feature rich while relying on as few addons as possible for continued stability and being straightforward to use in-game.

With baeChat, your server can have following conversation with user-creatable chat channels, private messaging, group chats, blocking and chat settings. A built in API for baeChat also allows developers to extend upon baeChat's core functionality.

channelmanagement.png


Channels are the central part of any chat script. What I've seen in my research of other chat scripts is that the channels are pre-set. This means users must try and create more channels by editing the script itself and the script usually lacks features of channel management.

baeChat lets you create, update or delete channels via in-game commands. Creating a channel is as easy as doing:
/chat channel create <channel name>
» Follow the chat prompts to then set the layout and permission for the channel.

Need to change something? Easy!
/chat channel update <channel name>
» Then again, follow the chat prompts. You can use "same" to retain the existing value.

Channel served its purpose? Just delete it...
/chat channel delete <channel name>
» This will delete the channel, remove it from everyone's in-channels and move anyone who is active in it

You're also able to grant permission to clear the chat (send the specified amount of blank messages. Default: 30)
/chat clear [<channel>]
» If a channel is provided, that specific channel will be cleared. Otherwise, everyone's chat will be cleared.

Done changes to the default channels and need them resetting? Simply doing
/chat channels refresh
» Will reset these channels back to the hardcoded baeChat values

Fed up with every channel you're in and just want general chat? baeChat has you sorted.
/chat leave [channel/all]
» If no channel/all is provided, you'll leave the active channel
» If a channel is provided, you'll leave that channel
» If all is provided, you'll leave every channel and be put back in general

groupchats.png


Any player can create a group chat. Group chats let players communicate in large groups together without having to swap between private messages. Group chats act as a private area. They aren't open to be joined by other users and won't show up on the planned channel listing. The chat creator will get leader permissions. This means they can kick players. If the leader leaves, baeChat will auto-assign a new leader.

Creating a group chat is easy with just
/group create <invited players...>
» This will create the group and invite the provided players.

Now accepting the invite is simple...
/group join <inviting players name>
» Group chats run on player names which is an easy way for players to join each others groups.

The leader can invite other players by doing
/group invite <invited players...>
» They'll then receive an invite to join.

Someone being disruptive? Kick them by doing
/group kick <offending player>
» Only the leader can do this command

Wanna leave your group?
/group leave
» This will take you from your current group

And not sure what group you're in? Just doing
/group
» will get info on the current group you're in

privatemessaging.png


A distinct feature of baeChat is its extensive private messaging system. Users can do commands or an exclusive feature to baeChat called, @Chat. I originally saw this feature on a Minecraft server and created a basic script back in 2015. I've now implemented a hugely improved version to baeChat. Here's how to private message using commands:

/pm [player] [message]
» If no player is provided, you'll leave your current conversation
» If a player is provided, but no message, you'll enter a conversation where all messages are sent to that player
» If a player and message is provided, baeChat will send a single time message to that player

And using @Chat...
@<player> [message]
» If no message is provided, this will create a conversation with the player
» If a message is provided, a single-time message will be sent
@@[message]
» If no message is provided, a conversation will be created with the player of the last received message
» If a message is provided, a single-time reply will be sent

builtinapi.png


@Rezz has taught me the beauty of functions (I'm a console command person...). I've tried to create useful functions in baeChat to not only cut down on reused code within baeChat, but for developers to extend upon baeChat. You're currently only able to override events, not modify any values. Each event sends different values and the API operates on a code system to share data.

Basic example of overriding the chat-send event for players who don't have permission player.level.1:
Code:
on script load:
    baeChat_registerEventListener("chat-send", "example-console <<code>>")

command /example-console <text>:
    executable by: console
    trigger:
        set {_data::*} to {bchat::temp::%arg 1%::*}
        if {_data::player} doesn't have permission "player.level.1":
            set {bchat::temp::%{_data::code}%::cancel} to true

whatsinthebox.png


baeChat features a full-block system. Once a user blocks another user, they're hidden from each other across the entire baeChat system. A user can block another user by doing:

/ignore [player]
/block [player]
» Once blocked, those players can't start a conversation with each other, see each others chat messages in groups or in any channel
» If no player is provided, a list of blocked players will be given

To unblock it's as simple as
/unignore <player>
/unblock <player>
» Everything will then go back to normal

The block feature is currently being extended into more features across baeChat. This will remove the chance of the players even seeing each others usernames even more.

Players can also disable or enable chat by simply doing:
/chat <enable/disable/toggle>
» Once disabled, no messages will come through to that player, including group invites.

opensourceproject.png


baeChat is open-source and on Github. It comes under the baeSuite but I'm looking at creating more content for the baeSuite collection. While I'm extremely happy with baeChat, I'm aware some feature need polishing, some features need adding. You can contribute here:
https://github.com/nfell2009/baeSuite and view baeChat: https://github.com/nfell2009/baeSuite/blob/master/chat/baeChat.sk

Please feel free to discuss baeChat with me on Discord and submit a PR to the baeSuite repo.

xVXP49q.png


» Channel locking
» Chat locking
» More blocking extenstivity
» More requirements for entering channels (prices, passwords, time-locks, x players etc)
» Better way to add parseable keywords
» Message hooks
» Colour control within chat
» Admin/mod features (chat logging, reporting, social-spy)

Got something to suggest? Please say! I'm really pumped for baeChat and really want to add more to it.

KhAb54Z.png


I've been working on this script for some time. It's my first release in sometime and my first dedicated piece of work in an even longer time. baeChat is over 1000 lines and contains a lot of time. Please feedback to me what you do and don't like, and what you'd like to see added.

Thanks,
BaeFell
  • aboutbaechat.png
    aboutbaechat.png
    9 KB · Views: 273
  • baechat_logo.png
    baechat_logo.png
    29.2 KB · Views: 313
  • Like
Reactions: Ayham Alali
Author
BaeFell
Downloads
1,468
Views
1,468
First release
Last update
Rating
5.00 star(s) 2 ratings

More resources from BaeFell

Latest updates

  1. Fixes and new commands

    baeChat 1.2 Bug fixes DEBUG CODE GONE! I have removed some leftover debug code from baeChat...
  2. Minor changes as wrong version uploaded

    Minor changes as wrong version uploaded

Latest reviews

pretty well made and has good execution and good graphics
A wonderful piece of work from the delightful BaeFell and Rezz!