Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUSHclient
➜ Plugins
➜ Any way to make a 'chat' plugin?
|
Any way to make a 'chat' plugin?
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Pages: 1
2
3
4 5
6
7
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #45 on Sun 06 Apr 2003 04:33 AM (UTC) |
| Message
| And what happens if three players all claiming to be named Magnum join the chat? Does it stop them? And if you type:
/chat Magnum hi there
Do all three get the message? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| NightCrawler
Canada (16 posts) Bio
|
| Date
| Reply #46 on Sun 06 Apr 2003 05:12 AM (UTC) |
| Message
| There's nothing to prevent duplicate names from connecting to a chat session. Likewise, there's nothing to prevent someone from changing their name to the same as another connection's name. MudMaster stores the connections in the order they connect, so if there are two people named "NightCrawler", it just sends the message to the first one it finds. To be honest, tho, this isn't something that you'd run into alot unless people are trying to be comedians. I've heard of someone writing a script to prevent this sort of thing, but it's not built-in to MM.
As a side note, this problem does occasionally occur if someone loses their existing connection for some reason (network problems, etc) and they reconnect. I run a full-time chat server for some folks I play with and one of them has a notoriously unstable dial-up connection. I haven't seen it cause any problems, other than breaking my chat-serving script.
There is a MM native ping command that can be used for checking latency and I've occasionally used it as a "keepalive" for unstable connections. It will drop a connection if it doesn't receive a response after awhile...not sure how long, tho, since I've never really timed it.
NightCrawler |
A computer once beat me at chess, but it was no match for me at kick-boxing... | | Top |
|
| Posted by
| Shadowfyr
USA (1,792 posts) Bio
|
| Date
| Reply #47 on Sun 06 Apr 2003 05:22 AM (UTC) |
| Message
| That is probably one of the reasons why zChat implements a randomly generated ID for each user. There are definitely problems with the implimentation, since it seems to me that neither chat client deals with situtions that are nearly 100% certain to happen on occation or even to properly deal with those that are rare, but can happen. Compatibility is essential, but I wouldn't mind seeing the protocal it extended to handle stuff that the existing one fails on. The improvements might only work between MushChat clients, but I find it odd that it can't do something as relatively simple as TCP/IP like packet handling, so 'everyone' that is not set as private will see all messages. I would hope that it is smart enough to tack a number onto the second, third or fourth Magnum to connect, but the specs say nothing about it and odds are it doesn't have a decent method to handle that either. :p
All in all, I am becoming less and less impressed by the design, but then I tend to consider something as 'working' only after I have found a way to deal with unexpected problems, not just when it performs the basic task. ;) lol | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #48 on Sun 06 Apr 2003 06:07 AM (UTC) |
| Message
| One more question - say you are hosting chats (ie. listening on port 4050 or whatever). Is this done per world (MUD) or per client?
In other words, if you are connected to 10 different MUDs do you potentially host 10 chat sessions, or one chat session? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| NightCrawler
Canada (16 posts) Bio
|
| Date
| Reply #49 on Sun 06 Apr 2003 05:35 PM (UTC) |
| Message
| Shadowfyr: For example, say you have 5 connections in your list and they all think they're funny guys, so they set their names to "NightCrawler". If you use the /chatall command, your message will be sent to everyone. MM doesn't care how many NightCrawlers are in the list. However, if you try to private chat NightCrawler, your message will go to the first NightCrawler in the list, but not the other 4. At least as far as I've tested it. There may very well be some kind of random UID. When some of my friends come online later (lazy slobs), I'll run a few tests and let you know the result. Again, my apologies if I misunderstood your post.
Nick: That's a good question and one that's never occurred to me, so I ran a quick test on both the console version and MM2k. Both versions returned the same result...
On a second workstation, I launched MM and started two sessions (MM's equivalent of Worlds as far as I understand them) and set the both to listen on port 4050 (which they do by default). I then attempted to connect to those sessions from another workstation...only one session accepts the incoming call. So, it looks like the first client to listen on the port will grab the call before the other one even knows it's there. My workaround for this in MM would be to set one session as a "server only" to which everyone connected to, including myself (from all other sessions).
As a note, MM2k will let you open as many sessions as you like (probably limited only by available system memory) in the same instance of MM2k. However, MM Console doesn't have "sessions", so it requires you to open multiple instances for each "session" you wish to use.
In all fairness, I have to agree with Shadowfyr. There are definitely bugs in MM that should be worked out. The application isn't foolproof. However, I have to consider that MM is a "hobby" that the author does in his spare-time. Both MM and MM2k are coded by different individuals and the original console version is no longer in development at all by the original author (hence the release of the source code). |
A computer once beat me at chess, but it was no match for me at kick-boxing... | | Top |
|
| Posted by
| Shadowfyr
USA (1,792 posts) Bio
|
| Date
| Reply #50 on Sun 06 Apr 2003 06:51 PM (UTC) |
| Message
| The random UID is an extension added to zChat. MM does this:
CHAT:<name>\n<ip><port>
while zChat does this when talking to other zChat clients:
ZCHAT:<name><tab><ID>\n<ip><port>
However, from the info I can see in the zChat spec, this <ID> is a randomly generated ID created by the connecting client, so each person being hosted by someone would have their own ID. This means you 'could' tell one user appart from another, but only those people that are connected as zChat users. How exactly this works for displaying the users name in the client or sending private messages, I haven't a clue.
Of course this is based on the specs I got from Nick, so who knows what MM2k may have changed or extended. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #51 on Sun 06 Apr 2003 08:59 PM (UTC) |
| Message
| | I am not really surprised that two instances of MM can't both listen on 4050, but what I mean is, that if you are connected to two MUDs (ie. two sessions) can you host two chat sessions (say using ports 4050 and 4051) or is the chatting session-independent? If so, which session window does it appear in (if that question has any meaning in MM)? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| NightCrawler
Canada (16 posts) Bio
|
| Date
| Reply #52 on Sun 06 Apr 2003 09:10 PM (UTC) |
| Message
| Sorry, I misunderstood the original question. The answer would be yes. You could run multiple sessions and have chat connections in each one, all running on different ports.
So, if I'm connected to MUD A, I can start a chat session on port 4050 and chat with all my MUD A buddies. If I start a second session and connect to MUD B, I can start a second chat session on port 4051 and invite people in. Each chat session would appear in its respective session window, they wouldn't know the other was there unless I chose to serve one session to the other.
You'd just have to be careful to specify the port number for people to call because MM defaults to 4050. If someone from MUD B calls my IP but forgets (or doesn't know) to specify the port, they'll end up in chat session A. |
A computer once beat me at chess, but it was no match for me at kick-boxing... | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #53 on Sun 06 Apr 2003 10:13 PM (UTC) |
| Message
| Another question - apparently zChat supports two styles of chat sessions, MM chat and zChat chat, which are completely different because zChat uses a length field whilst MM uses a special terminator of \xFF.
How does zChat know which one to use? I can imagine how on an incoming connection because it will either receive "CHAT:" or "ZCHAT:" directly after the connection is established, but how about for an outgoing connection? Which one does it send?
Is it user-configurable?
Does it send "CHAT:" and if that is rejected follow up by "ZCHAT:"?
Or, some other technique? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| NightCrawler
Canada (16 posts) Bio
|
| Date
| Reply #54 on Mon 07 Apr 2003 12:52 AM (UTC) |
| Message
| I'm afraid I can't help you too much where Zchat is concerned. I don't use it, so I'm not all that familiar with it. From what I understand, Zchat attempts to establish the connection using the "Zchat Protocol" (whatever that is). If that fails because the client is MM, it immediately attempts to reestablish the connection using the MM protocol. I believe there is a setting in the connection properties in Zchat that allows you to designate a connection as "MudMaster User" if you want to skip the Zchat-based connection attempt.
When this happens, I can see it on my chat server as an attempted connection that fails to fully negotiate. It is immediately followed by a second connection that succeeds.
You'll have to consult the documentation for the Zchat protocol (assuming there is any) for the answers. Sorry. |
A computer once beat me at chess, but it was no match for me at kick-boxing... | | Top |
|
| Posted by
| Shadowfyr
USA (1,792 posts) Bio
|
| Date
| Reply #55 on Mon 07 Apr 2003 02:17 AM (UTC) |
| Message
| | The zChat specs say nothing about how to correctly connect to an MM service, but I think you answered the question anyway. lol The original V1.0 or zChat probably didn't actually support MM, so since no one ever seems to update the original documentation on these things (sort of like Nick and the help file that comes with Mushclient.... lol), the spec for zChat only covers the zChat protocal itself. | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #56 on Thu 10 Apr 2003 01:39 AM (UTC) Amended on Thu 10 Apr 2003 01:41 AM (UTC) by Nick Gammon
|
| Message
| Can anyone who is a MM chat expert comment on this?
I am examining the messages generated by MM GUI - when you do a /chatall, and this is what I see:
MM_Nick chats to everybody, 'hi there'
|
Note the final quote in red. Now in MM, the entire message is in red, because the chat configuration specifies that chats are in red on black. However the generated message is this:
MM_Nick chats to everybody, 'ESC [0mhi there ESC [1m ESC [31m'
Note how MM specifies red for the final quote (ESC [ 31 m) but not for the initial part of the message. Is this not a bit strange? If you are going to colour some of the message shouldn't you colour all of it? Otherwise the first quote is in the receiver's chat colour, and the final quote is in the sender's chat colour, which are not necessarily the same. Am I missing something here? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Nick Gammon
Australia (23,173 posts) Bio
Forum Administrator |
| Date
| Reply #57 on Thu 10 Apr 2003 09:36 AM (UTC) |
| Message
| Another question about chat...
Would you expect that if someone tried to connect to my chat port the client would automatically accept it (as MM 2000 seems to) or that you would be queried, or have the option to do either?
eg. A message box: "Magnum is trying to connect for a chat from 192.3.4.5 - Accept?" Yes/No
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | | Top |
|
| Posted by
| Skarsnik
(11 posts) Bio
|
| Date
| Reply #58 on Thu 10 Apr 2003 12:40 PM (UTC) |
| Message
| > Note the final quote in red. Now in MM, the entire message is in red, because the chat configuration specifies that chats are in red on black.
This is a bug of mud master (and its spec). I can't really see a way around it if your implementing the spec. To get around it my chat alias sends an emote like below.
/EMOTEALL chats to everybody, @AnsiReset()@ForeWhite()'@AnsiBold()@ForeWhite()$ChatText@AnsiReset()@ForeWhite()'
> Would you expect that if someone tried to connect to my chat port the client would automatically accept it (as MM 2000 seems to) or that you would be queried, or have the option to do either? eg. A message box: "Magnum is trying to connect for a chat from 192.3.4.5 - Accept?" Yes/No
State Issues in a telnet application :), thats a new one.
Nick are you adding chat to the next ver of MUSH?
E.G. Can/should I abandon the dll/plugin...
Skars
| | Top |
|
| Posted by
| NightCrawler
Canada (16 posts) Bio
|
| Date
| Reply #59 on Thu 10 Apr 2003 02:33 PM (UTC) Amended on Thu 10 Apr 2003 02:59 PM (UTC) by NightCrawler
|
| Message
| Hello again,
Both MMC and MM2k allow users to define the chat text background and foreground colors (/chatback <0-7> and /chatfore <0-15>) but these changes will only affect the local client. By default, the color scheme is red on black and I suspect that most leave the default scheme as is. If, however, you changed the forecolor to, say, light cyan (/chatfore 11) the change would only be apparent to you. I would still see red on black.
You can change the color of the actual message you send using a script similar to this:
/alias {ch %0} {/chatall @AnsiBold()@ForeCyan()$0@AnsiReset()} {Optional Group Name}
This would still cause your name and the "chats to everybody" parts to appear in the default /chatfore color, but your actual message content would appear in Bright Cyan. The @AnsiReset() at the end of the line returns the color to the default, so the closing quotation mark would again appear in the default color.
This is the most basic example of a colored chat alias, since as I mentioned previously, some people like to be creative and use /emoteall instead.
As for accepting connections, both MMC and MM2k default to autoaccepting incoming calls but this can be toggled off using /autoaccept <on/off>.
Useless tip of the day: If you want to use multiple words in your chat name, simply enclose them in { }. ie /chatn {MM Nick}.
Edit I: I should mention that MM is case-sensitive, so if you attempt to use the sample code above, make sure you type it as I did. @AnsiBold() is not the same as @ansibold() or @ANSIBOLD().
Edit II: If you need a test environment, I can probably set up a temporary chat server here for you to play around on and run a few tests. Might give you an opportunity to concentrate on the client end of things for awhile. Just let me know. I have the luxury of working from my own home, so I'm almost always here (except when I'm not). I don't want to make a public server, tho, so I don't wanna post my IP to the board. But I'm sure Nick can dig up my email address if he needs it :) |
A computer once beat me at chess, but it was no match for me at kick-boxing... | | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
301,397 views.
This is page 4, subject is 7 pages long:
1
2
3
4 5
6
7
It is now over 60 days since the last post. This thread is closed.
Refresh page
top