Page 1 of 3

[Mod] Chat plus [2.3] [chatplus] – Now two mods, bug fixes

Posted: Sat Jun 15, 2013 13:47
by rubenwardy
This mod is no longer maintained and shouldn't be used

Recommended: email

Commands
  • /ignore <name> - ignore a player
  • /unignore <name> - unignore a player
To limit by distance, set the chatplus_distance setting in minetest.conf to something higher than 0 (number is meters/nodes)

To disable logging, set chatplus_log to false in minetest.conf.

To block messages with bad words, set chatplus_badwords in minetest.conf to a comma separated list of words.

Download

License: LGPL 2.1 or later.
Dependencies: None

Download latest version
... or view it on GitHub

Warning! This mod may not be compatible with any other mods that intercept chat messages!
Unexpected behaviour may occur. You have been warned.


Coming soon
  • Mention highlighter (you are alerted by a beep when someone uses you name)
  • Swearing filter
  • local chat
  • Suggest something!

Posted: Sun Jun 16, 2013 02:07
by InfinityProject
Nice! If you ignore someone, can they still see what you say?

Posted: Sun Jun 16, 2013 02:33
by tinoesroho
In the chatstream? From my brief poking at the code, yes. Ignoring will block them from mailing you, though. Changing the default privs to not include shout- possibly in conjunction with a distancechat mod - will "fix" that issue somewhat.

Posted: Sun Jun 16, 2013 05:14
by BrandonReese
I had to change

Code: Select all

chatplus._players[key]
to

Code: Select all

chatplus.players[key]
from lines 124-142 to keep it from crashing.

Posted: Sun Jun 16, 2013 14:21
by rubenwardy
Ignoring works like it works in IRC: they can read your messages, but you can not read theirs.



@BrandonReese: That is incorrect, and will cause the mod to stop working properly. I will find out why it does not work.

_players{} contains the player entities (not saved)
players{} contains the player data (saved)
tinoesroho wrote:In the chatstream? From my brief poking at the code, yes. Ignoring will block them from mailing you, though. Changing the default privs to not include shout- possibly in conjunction with a distancechat mod - will "fix" that issue somewhat.
Ignoring will not stop them from mailing you yet, it only works in the chat.
You do not need to revoke "shout". I do not see what the issue is.

(Note: Mail means /mail name msg, chat means talking on "t")

Posted: Sun Jun 16, 2013 14:29
by rubenwardy
Fixed this problem.

It was caused when the mod tries to update a player that is not online.
This error was not caught, because it tried:

Code: Select all

chatplus._players[key].player
not:

Code: Select all

chatplus._players[key]
Commit: Fix bug if player is offline

Posted: Mon Jun 17, 2013 02:28
by BrandonReese
rubenwardy wrote:Ignoring works like it works in IRC: they can read your messages, but you can not read theirs.



@BrandonReese: That is incorrect, and will cause the mod to stop working properly. I will find out why it does not work.

_players{} contains the player entities (not saved)
players{} contains the player data (saved)
tinoesroho wrote:In the chatstream? From my brief poking at the code, yes. Ignoring will block them from mailing you, though. Changing the default privs to not include shout- possibly in conjunction with a distancechat mod - will "fix" that issue somewhat.
Ignoring will not stop them from mailing you yet, it only works in the chat.
You do not need to revoke "shout". I do not see what the issue is.

(Note: Mail means /mail name msg, chat means talking on "t")
Ok thanks, I didn't poke around too much, saw the error and tried my change and it "worked". I'll try the fixed version later tonight.

Edit: Looks like it's working fine!

Posted: Mon Jun 17, 2013 06:24
by ndjdjksisksk
this is cool! suggeston: can you add a bad word filter to this that would realy work on servers sece so many people swear and curse.

Posted: Mon Jun 17, 2013 11:30
by rubenwardy
ndjdjksisksk wrote:this is cool! suggeston: can you add a bad word filter to this that would realy work on servers sece so many people swear and curse.
That is actually on my to list

Posted: Mon Jun 17, 2013 14:52
by Cooper97
rubenwardy wrote:
ndjdjksisksk wrote:this is cool! suggeston: can you add a bad word filter to this that would realy work on servers sece so many people swear and curse.
That is actually on my to list
THANKS.

That is awesome.

Posted: Mon Jun 17, 2013 14:58
by Cooper97
You wrote that the command is /mail <name> <msg>
but if I write /mail Robin this is a text message
it says that no player "this" exists. Is it a bug? (Robin is the account name of my friend)

Posted: Mon Jun 17, 2013 14:59
by rubenwardy
Cooper97 wrote:You wrote that the command is /mail <name> <msg>
but if I write /mail Robin this is a text message
it says that no player "this" exists. Is it a bug? (Robin is the account name of my friend)
Are you sure that is the text exactly?

I might be because "Robin" has an upper case letter in it. I will check.

Posted: Mon Jun 17, 2013 15:06
by Cooper97
Yes I am sure. He has the account "Robin" and I "Cooper97" (also upper case letter).

Posted: Tue Jun 18, 2013 13:01
by rubenwardy
Fixed: The problem is that there is a number in the players name.

Commit: Fix problem with command match pattern

Posted: Tue Jun 18, 2013 17:15
by ndjdjksisksk
rubenwardy wrote:
ndjdjksisksk wrote:this is cool! suggeston: can you add a bad word filter to this that would realy work on servers sece so many people swear and curse.
That is actually on my to list
realy epic i needed a swear word filter

Posted: Tue Jun 18, 2013 18:03
by kaeza
ndjdjksisksk wrote:
rubenwardy wrote:
ndjdjksisksk wrote:this is cool! suggeston: can you add a bad word filter to this that would realy work on servers sece so many people swear and curse.
That is actually on my to list
realy epic i needed a swear word filter
Swear word filters (which I think are useless anyway, because you can always find a workaround) would be better client-side, so players that don't care about swearing can leave that open if they want. Anyway, if someone is swearing on a server, you can /ignore them with this mod.

Posted: Wed Jun 19, 2013 11:36
by rubenwardy
kaeza wrote:
ndjdjksisksk wrote:
rubenwardy wrote:
That is actually on my to list
realy epic i needed a swear word filter
Swear word filters (which I think are useless anyway, because you can always find a workaround) would be better client-side, so players that don't care about swearing can leave that open if they want. Anyway, if someone is swearing on a server, you can /ignore them with this mod.
i can make it so that players can choose their level of filtering.

Posted: Mon Jul 01, 2013 15:03
by BrandonReese
I submitted a pull request for some minor improvements to this mod.
This pull request adds a chat message when a user uses /inbox clear so the player receives feedback that the command was successful.

The pull request adds a chat message when the player uses /inbox and they do not have any messages, so they receive feedback that the command was successful.

It delays the onjoin mail notification chat message, it seems sending chat messages or formspecs in the registered onjoin function aren't received by the client, but delaying those actions using minetest.after seems to make things work as expected.

Added chatplus._players[key].lastcount variable, this keeps track of the message count from the last time the hud was redrawn, and only redraws the hud if the message count changes. At times the hud would flicker, only redrawing the hud when the message count changes fixes that, and this will reduce any network traffic (as little as it may be) caused by redrawing the hud every 5 seconds.
I'm also thinking about adding "local chat" to this mod. So when you chat only players within X number of nodes from the chatting player would receive the chat message. You would have to start your chat message with a certain character (e.g. !,*,&) to send a "global" chat message. I wonder how the community would feel about that. Obviously I like it, it helps keep conversations separate. It would take some getting used to.

Posted: Sun Jul 07, 2013 11:12
by rubenwardy
Thank you very much.

Merged.

Posted: Wed Aug 14, 2013 16:06
by rubenwardy

0.2 released

These changes were made in preparation for my new game, capture the flag.
  • Added limiting by distance filter
  • Added an api
Spoiler
-- Registers a handler to determine if the chat msg is sent
--FROM: the name of the player it is from
--TO: the name of the player it is to
--MSG: the text of the msg
--return NIL: no action
--return TRUE: send msg
--return FALSE: cancel msg
chatplus.register_handler( func( from, to, msg) )

Posted: Wed Aug 14, 2013 19:19
by tinoesroho
I'm absolutely chuffed with what you've done. Finally, my LAN survival server is complete. Distance limited-viewing? Check. Limited chat? Check.

Simply fantastic.

Posted: Thu Aug 15, 2013 16:28
by Cooper97
rubenwardy wrote:

Coming soon

Swearing filter
A swearing filter would be very useful on some servers.

Posted: Thu Aug 15, 2013 16:44
by Evergreen
I think all I want you to add is what is on your todo list. Amazing job so far.

Posted: Sat Aug 31, 2013 14:37
by BrunoMine
There is a problem. flooding is possible to inbox.
I suppose you have 15 posts (1 and 2 are important) (3-15 are useless, annoying)
send: /mail
? 1 - Hello, I left the items in bau
? 2 - tidy the house wall
? 3 - bla bla bla
? 4 - bla bla bla
? 5 - bla bla bla
? 6 - bla bla bla
? 7 - bla bla bla
? 8 - bla bla bla
? 9 - bla bla bla
_________________________________________________________
10 - bla bla bla
11 - bla bla bla
13 - bla bla bla
14 - bla bla bla
15 - bla bla bla

1 - 9 were not visualized
It is horrible that, even ignoring the player, simply enter it in server under another name.

solution:
It would be nice if the inbox was displayed in a very large box. It was possible to scroll up and down
I also think it would be good if the email was accessed whenever a computer! So'd have more to put an object at home.

Posted: Sat Aug 31, 2013 14:54
by BrandonReese
brunob.santos wrote:There is a problem. flooding is possible to inbox.
I suppose you have 15 posts (1 and 2 are important) (3-15 are useless, annoying)
send: /mail
? 1 - Hello, I left the items in bau
? 2 - tidy the house wall
? 3 - bla bla bla
? 4 - bla bla bla
? 5 - bla bla bla
? 6 - bla bla bla
? 7 - bla bla bla
? 8 - bla bla bla
? 9 - bla bla bla
_________________________________________________________
10 - bla bla bla
11 - bla bla bla
13 - bla bla bla
14 - bla bla bla
15 - bla bla bla

1 - 9 were not visualized
It is horrible that, even ignoring the player, simply enter it in server under another name.

solution:
It would be nice if the inbox was displayed in a very large box. It was possible to scroll up and down
I also think it would be good if the email was accessed whenever a computer! So'd have more to put an object at home.
You can press F10 and scroll up in the console window to see the rest of the mail items.