Added, new branch with this is bzr branch lp:~mudlet-makers/mudlet/gmcp-composer
Do test and report. Also, if someone is fluent with Lua and has some time, a little framework to help with gmcp module bookmeeping would be appreciated.
[available] GMCP in Mudlet
Re: [available] GMCP in Mudlet
What needs to be done?Vadi wrote:Also, if someone is fluent with Lua and has some time, a little framework to help with gmcp module bookmeeping would be appreciated.
Re: [available] GMCP in Mudlet
The problem is that we currently enable some GMCP modules by default and forget about them. It's not all modules, and if a plugin wants to enable another module and then disable at some point, they run the risk of someone else using that module.
So what needs to be done is a sub-system that can be queried for modules that are currently enabled, plus have functions to enable/disable modules - and this subsystem should send the actual command to the server to enable a module if it's not already enabled, and send the actual command to disable a module if nobody else is using it.
Current enabled by default modules are: "Core.Supports.Set [ \"Char 1\", \"Char.Skills 1\", \"Char.Items 1\", \"Char.Items 1\", \"Comm.Channel 1\", \"Room 1\", \"Redirect 1\", \"IRE.Composer 1\" ]" so it starts off in sync at start.
So what needs to be done is a sub-system that can be queried for modules that are currently enabled, plus have functions to enable/disable modules - and this subsystem should send the actual command to the server to enable a module if it's not already enabled, and send the actual command to disable a module if nobody else is using it.
Current enabled by default modules are: "Core.Supports.Set [ \"Char 1\", \"Char.Skills 1\", \"Char.Items 1\", \"Char.Items 1\", \"Comm.Channel 1\", \"Room 1\", \"Redirect 1\", \"IRE.Composer 1\" ]" so it starts off in sync at start.
Re: [available] GMCP in Mudlet
All right, I'll figure out a way to do this.
Re: [available] GMCP in Mudlet
There's a slight bug in your code Vadi:
ctelnet.cpp::atcpComposerSave() Line 110
Should be
Reasoning: With the ! there, it's using the ATCP table if GMCP is enabled, and then using GMCP table if ATCP is enabled. Changing the line to remove the !, the code works as expected.
ctelnet.cpp::atcpComposerSave() Line 110
Code: Select all
if (!enableGMCP) {
Code: Select all
if (enableGMCP) {
Re: [available] GMCP in Mudlet
I'm not seeing the problem.
It doesn't look great, but since both are IRE-specific, it won't be an issue. I tested and it saved new text fine for me that I remember.
Re: [available] GMCP in Mudlet
It wasn't working for me, with the original code. Mudlet was sending 'olesetbuf <text>' . At anyrate, if it's working for everyone else then, that's fine; I'll try and remember to change the code on my end if I recompile.
Re: [available] GMCP in Mudlet
Then you probably had GMCP off? olesetbuf if supposed to be sent for ATCP only.
Re: [available] GMCP in Mudlet
Please don't condescend me, Vadi.
I 100% surely had GMCP turned on. Tested and verified multiple ways that GMCP was properly enabled. All of my GMCP scripts in Mudlet where working fine, GMCP from Mudbot to Mudlet fine, GMCP from Achaea straight to Mudlet, fine.
In all situations, your composer code sent the olesetbuf instead of the GMCP IRE.Composer.SetBuffer as it should, with GMCP enabled.
(Testing code below, with Mudbot as proxy, in order to log a bit more to console)
Original Code from BZR
Image 1 - GMCP Enabled:
Image 2- Used Mudlet composer GUI to write a letter
OleSetBuf, text NOT sent
Changed code (removed !), then recompiled and restarted Mudlet
Image 1- GMCP Enabled (still)
Image 2 - Used Mudlet composer GUI to write a letter
IRE.Composer.SetBuffer, text sent
What else could be changing the outcome of this particular set of code? If you have anything else you'd like me to test, to be sure let me know.
I 100% surely had GMCP turned on. Tested and verified multiple ways that GMCP was properly enabled. All of my GMCP scripts in Mudlet where working fine, GMCP from Mudbot to Mudlet fine, GMCP from Achaea straight to Mudlet, fine.
In all situations, your composer code sent the olesetbuf instead of the GMCP IRE.Composer.SetBuffer as it should, with GMCP enabled.
(Testing code below, with Mudbot as proxy, in order to log a bit more to console)
Original Code from BZR
Image 1 - GMCP Enabled:
Image 2- Used Mudlet composer GUI to write a letter
OleSetBuf, text NOT sent
Changed code (removed !), then recompiled and restarted Mudlet
Image 1- GMCP Enabled (still)
Image 2 - Used Mudlet composer GUI to write a letter
IRE.Composer.SetBuffer, text sent
What else could be changing the outcome of this particular set of code? If you have anything else you'd like me to test, to be sure let me know.