mmoMinecraftDev / TODO

Plans for future plugins under he mmoMinecraft suite
1 stars 0 forks source link

mmoChat #8

Closed Xaymar closed 13 years ago

Xaymar commented 13 years ago

Chat Plugin for mmoCore. Does the following: -Chat in Channels, default Channels: |--Area - Catches public chats that happen nearby ~4 chunks or when shouted ~8 chunks |--Local - Shows chat that happens in the current location/zone, if no zone is avaible will show Area, Party and Guild chat. |--Global - Out Of Person chat -Channels are configured by Flags, similar to IRC: |--p - Private Channel, not listed |--l - Channel is locked, Invite only |--t - Topic is locked |--m - Channel is muted -Channel Users are given rights by Flags, similar to IRC: |--O - This user owns the channel(Can not be banned/kicked) |--o - This user is an Operator to the channel(Ignores channelflags l,t,m) |--b - This user can ban other users from the channel |--k - This user can kick other users from the channel |--B - This user is banned from the channel |--t - This user can change the topic(Ignore channelflag t) |--v - This user has voice(Ignore channelflag m) -Channel User Flag groups: |--$ - Flags: O,o,b,k,t,v - Owner |--§ - Flags: o,b,k,t,v - Operator |--% - Flags: k,t,v - Moderator |--& - Flags: v - Voiced |--= - Flags: / - User |--B - Flags: B - Banned -API for Plugins |--Create / Delete Channels (Can't delete default ones) - Create new Channels for whatever need. |--Add / Remove Channel Users - Useful for mmoParty and mmoGuild, allows for automatic adding to the Channels for mmoParty and mmoGuild |--Change Channel Flags - Change the channel flags... |--Change Channel User Flags - Change what User is what.

Rycochet commented 13 years ago

User created (ie, in-game) channels need to always have their own identifier - changing channels to it would require that id (possibly a name, but preferably a number)

Config-created channels have a name that can be used directly as a channel, such as "/chat", "/party", "/msg", "/reply" etc

Channels need to have a range, default would be "within range & on channel".

Some channels would be heard by default, and need to be turned off, player-created ones would be off by default and need to be turned on.

The API needs to allow automatic channel creation / deletion.

/party would create one for each party (when 2+ members), and limit the viewership to those people.

/tell would create one between the two people, /reply would go back to that channel. If someone else /tells you something then the first auto-channel would need to be deleted.

/ignore would automatically filter out messages by a specific user

Rycochet commented 13 years ago

Range should be extendible via API - default would be LOCAL, AEREA, WORLD, SERVER.

The API would allow the range to then get things like PARTY, GUILD, TOWN etc.

When a msg is being sent out on any channel it will check the range, and then create a List list of people capable of receiving it. The API needs to include the person that it is coming from as well as the range (so the "internal" channels like /tell and /reply work, as well as channels like /party).

After going via the Range methods it would then check to see if anyone in that list is actively ignoring the sender, and remove them from the list... (this could possibly be done at the sending stage)

Rycochet commented 13 years ago

Basic chat now exists, closing this to allow issues on the mmoChat repo...