CyniChat

CyniChat

CyniChat is a chat channel plugin, very similar to HeroChat. It is completely open source and has a number of features that make it useful to any server. However, this plugin will offer a much smoother experience during use. By using alternative storage methods, this plugin will be much faster to load, and much more efficient than the current champion.

Instructions For Use

Have a look.

Key Features

  • Chat channel capabilities
  • Customisable channels
  • The ability to kick, ban and mute people in any one channel
  • The ability for individual players to ignore people they choose to (unless otherwise specified)
  • The ability to promote and demote individuals inside a channel
  • A dialogue system (two people chatting)

Players and Channels

As I mentioned previously, people in your server will be able to ignore other people whom they might not get along with. But since some people might try to ignore the moderators and the operators on your server, you can set them to unignorable in their config files. This option means that no-one will be able to ignore them when they speak unto the masses.

Additional options in the config file for the players include whether they are globally muted or not, what channel they're currently in, that they're banned in, muted in and who they're ignoring. These should only be altered outside of the game if you know know what you are doing with JSON/SQL.

The channel configuration file, on the other hand, contains a lot of customisable content. On creation, each channel is given a few bits and pieces for their details. These include:

KeywordDescription
IDThis refers to the order of creation and the order that channels will appear in the list view
NameThis is the full, verbose name that will appear in the list view
NickThis is the shortcut that you can use to quickly join the channel, as opposed to typing the full channel name
ircChannelThis is the channel name in the IRC server that you'd like the plugin to join
ircPasswordThis is the corresponding password to the field above. Any channels without passwords can be left blank
DescThis is the description that is shown to players in the channel information view
PassThis is a settable password that you can use to restrict who joins your channel
ColourThis controls the colour of the channel fairly obviously enough. Please use the correct names when editing
ProtectIf this is set to true, the channel will require an additional permission to leave, join and talk

Commands

CommandDescription
/ch <channel> [password]alias of /ch join
/ch join <channel> [password]Changes the current channel or joins a new one
/ch leave [channel]Leaves the current channel, or the defined channel
/ch qm <channel> <message>Sends one message to the defined channel
/ch ignore <player>Ignores a named player
/ch hear <player>Unignores a named player
/msg <player> <message>Sends a message to one player
/r [message]Sends a reply to one player if one message has been sent before
/ch list [page#]Lists all the channels
/ch who [channel]Shows all the players inside a channel
/afk [message]Sets a user as afk (cannot receive private messages)
/me [message]Transmits an action in the context of the user
/ch create <name> [nick]Creates a channel with the defined name and optional nickname
/ch remove <channel>Removes a named channel
/ch info [channel]Prints the info about one channel
/ch gmute <player>Globally mutes one player across all channels
/ch gunmute <player>Globally unmutes one player across all channels
/ch mute <player> [channel]Mutes one player in either the current channel, or the defined channel
/ch unmute <player> [channel]Unmutes one player in either the current, or the defined channel
/ch kick <player> [channel]Kicks the player in either the current or the defined channel
/ch ban <player> [channel]Bans the player in the current, or the defined channel
/ch unban <player> [channel]Unbans the player in the current, or the defined channel
/ch promote <player> [channel]Promotes the player to mod in the current, or the defined channel
/ch demote <player> [channel]Demotes the Player from mod in the current, or the defined channel
/ch set <channel> <field> <value>Changes either the <colour>, <password>, <description>, <ircChannel> or <ircPassword> of a channel as you see fit
/ch saveSaves the information about all the players and channels
/ch reloadSaves the information about all the players and channels, then reloads them
/ch help [page#]Lists help pages [1 - #]

Permissions

  • cynichat.*
    • cynichat.basic.*
      • cynichat.basic.join.all
      • cynichat.basic.join.<channel>
      • cynichat.basic.leave.all
      • cynichat.basic.leave.<channel>
      • cynichat.basic.talk.all
      • cynichat.basic.talk.<channel>
    • cynichat.mod.*
      • cynichat.mod.kick.all
      • cynichat.mod.kick.<channel>
      • cynichat.mod.ban.all
      • cynichat.mod.ban.<channel>
      • cynichat.mod.mute.all
      • cynichat.mod.mute.<channel>
      • cynichat.mod.promote.all
      • cynichat.mod.promote.<channel>
      • cynichat.mod.demote.all
      • cynichat.mod.demote.<channel>
    • cynichat.admin.*
      • cynichat.admin.create
      • cynichat.admin.remove
      • cynichat.admin.save
      • cynichat.admin.reload

Caveats

  • This plugin stores files in either JSON files, or in an SQL database
  • This plugin currently has a hard dependency on Vault (So if you're not running Vault, you won't be able to run this. Sorry)
  • Vault will need a permissions plugin for this plugin to run properly
  • Be aware that, since this plugin is still in alpha, there will be some bugs lying around

Future Features

All of the above are definite guarantees for when the plugin reaches released status and make up the basic parts of the plugin. What follows are some features that are likely to be added into the plugin at a later date:

  • IRC integration via Pircbotx Confirmed Feature & Implemented
  • An event that other plugins can listen in to Confirmed Feature & Implemented
  • A web interface to alter the data in the files/database Confirmed Feature
  • Compatibility for cross-server chatting with Bungee Confirmed Feature

(This list is liable to be added to at any point in time)

Got An Idea?

Great, share it with me on either the comments or over a message. If I like it, I'll probably add it into the alpha build. The same goes for any concerns, if you have worries that this is going to break catastrophically with all of the things, then please, speak up. I'd like to be able to rid any potential threats from this so that it is as stable as it needs to be.

Note

Since this is still in the alpha phase of creation, details on this page are likely to change in accordance with the necessary alterations in the code. I will put a link to this code here once I have hit a beta creation. For now, it can be found by interpreting the information in the Repository tab above. From there, people are free to do as they please with my source as long as it follows the GNU GPLv3 licence given above.

Current Progress

I have good news! I'm not dead... That's probably not what you might call very good news, but it's good news for me in any case. What is probably better news is that I finally hashed through the bungeecord compatibility for sending messages because that thing is a pain in the behind to sort out. As of now, I'm going through the code and fixing it up, simply because I am now more competent than when I started coding this plugin and I want it to actually be vaguely usable and recognizable for anyone who wants to use/alter the source code.

The slight problem with this is that there is a lot of code in this plugin... it might take a little while to completely fix up and comment all the code. I'm probably going to offer this plugin in two ways... there will be an option for those that just want to use it on a single server (without bungee) where everything is included in the single jar. This will include the IRC bot that is focused within a single server.

The other option will be a model for anyone who is using BungeeCord. As of currently, this version is still under construction and does not have all the features of the other model. Actually... the only feature in which I have properly added in is the ability to send messages between the central IRC server and the bungee servers (it does work independently of the IRC server too). This means that the BungeeCord model will need an additional component for use on the BungeeCord server.

I will include instructions about how you can go about setting this up at some point or another... but as of now, I must get back to commenting through a lot of code.

Oh... then there's the small part of how Bukkit hasn't actually updated yet so making it compatible with 1.7.* should be interesting...

Thanks for your patience.


Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes

About This Project

Categories

Members

Recent Files