Giter VIP home page Giter VIP logo

mushclient's People

Contributors

akbra avatar areiaaard avatar fiendish avatar nickgammon avatar nodens- avatar suxiaojack avatar trenly avatar twisol avatar worstje avatar zinmirai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mushclient's Issues

Wrong role in telnet CHARSET negotiation

MUSHClient sends IAC WILL CHARSET and expects the MUD to start the IAC SB CHARSET subnegotiation. But according to RFC 2066 (https://tools.ietf.org/html/rfc2066) about the IAC SB CHARSET REQUEST message:

This message initiates a new CHARSET subnegotiation. It can only be sent by a side that has received a DO CHARSET message and sent a WILL CHARSET message (in either order).

So either MUSHClient should send a IAC DO CHARSET and wait for the server to send the SB or send the IAC WILL CHARSET and start itself the SB.

Best Regards,
Alex

unable to find specific event triggers in script

When using a script file instead of a plugin and you're telling MUSHclient via the world configuration how the script callbacks are called, it does seem to have trouble finding those events.
I can confirm that script callbacks World Opened, World Disconnected and World Closed do work fine, but world gets focus and world loses focus don't.
In fact, I simply create two functions like this:

Focused = true

function OnWorldGetFocus()
  Focused = true
end

function OnWorldLoseFocus()
  Focused = false
end

Then I go to Scripting and tell him that OnWorldGetFocus is the event handler for getting the focus and OnWorldLoseFocus is the event handler for losing it.
When starting MUSHclient for the next time (after saving the world configuration), I get the following errors:

Cannot find the function 'OnWorldLoseFocus' - item
'OnWorldLoseFocus' is nil

Cannot find the function 'OnWorldGetFocus' - item
'OnWorldGetFocus' is nil

Its just like its trying to call OnWorldGetFocus and OnWorldLoseFocus before the actual script is even loaded.

Can you check and fix this please?

some files referenced in MUSHclient.sln missing

I've just done a fresh conversion of MUSHclient.sln in Visual Studio Community 2015 (free), and it's complaining about missing files:

zlib/minigzip.c
scripting/lpeg.c
pcre/pcre_info.c
pcre/pcre_try_flipped.c

Interpretation of Chat flag letters

I've been running a comparison of MUD clients that implement the MMCP chat protocol (as part of adding it to Mudlet).

One oddity that caught my eye was a difference in the meaning of the 'F' character. According to the MudMaster documentation, 'F' means something about a Firewall (maybe the detected incoming connection is on a different IP address to the one it advertises) whereas 'T' is used to show that this client instance will accept file transfers from that peer:
image

However, I noted that MUSHClient uses 'F' to indicate file transfers will be accepted instead of the 'T' that MM uses - is this intentional or accidental?
image

BTW Is there a method to set the IP address that MUSHClient advertises when it tries to make a connection to another peer? I could not see a way to set this but it'll be needed if it is behind a ISP's NATing modem/router and a central server is not being used...

NAWS is using value from "Wrap output at column number"

The anticipated result would be that NAWS would send the number of characters that would fit in the client's viewport.

Instead, it is using the value from Output > Output buffer size > Wrap output at column number even when that option is unchecked. I could appreciate if that were checked to send that value, but when unchecked, it should ideally be sending the above calculated value.

Support for Ubuntu?

This is my favourite client, is there ever going to be plans to make ubuntu releases?

movewindow.lua commit breaking Learning_Mapper.lua plugin installation (and possibly others).

Commit baec90b is breaking fresh installations of Learning_Mapper.lua and derivatives, causing the windows to save without window_flags=2 and if user tries to move them they get auto-positioned top left and stuck there with no way to fix it apart from manually editing the state file and adding the missing window flag (something most users have no idea how to do).

This has probably flown under the radar because either most users have not updated their movewindow.lua from git, or they're updating with existing working installations of Learning_Mapper and derivatives, so the flag is already present in the state file.
I have no idea if this breaks other plugin installations with movewindow.lua dependencies but it's most likely it does.

NAWS reports strange values when tabbing back to an open world

When tabbing back to an open world, NAWS sends several messages to the mud, some with incorrect values. I have uploaded a video to YouTube demonstrating this.

I start with a clean output, switch to another world, come back to the world with NAWS enabled and you can see that the MUD is receiving several NAWS dimensions (width,height).

I have my game reporting every time it receives NAWS information.

https://www.youtube.com/watch?v=1K1UdF8PcCg

UTF-8 input & ANSI positioning support?

Hi, Thanks for making mushclient open source!

I'm current working on a chinese lpmud mudlib that outputs UTF-8 output, which is working fine after select UTF-8 , but when I want to type something in UTF-8 , it only send garbagled input.

Also, is there plan to support ANSI positioning codes? like clear screen, set position etc.

Cheers.

Can I change the default font color?

Just move that 'T' up there, I want to change it to green.

If you change white and gray, the original white will also turn green.

I hope the next version has this feature, thank you.

Changing global font causes changes to world file XML

This is an enhancement request around the world (MCL) file XML.

I've set up MUSHClient on two computers with different fonts as the global input/output fonts. I have my MCL file in a git repository so I can record and sync changes to the world and its related scripts between my computers.

It works, but every time the MCL file is saved, it updates the world XML input/output font info with the values of the defaults from that computer. This of course doesn't do anything since the "override with default" option is checked, but it does cause constant changes in the repository I have to ignore.

Ideally (for me) when saving a world with the "override with default" option set for one of the fonts, it would either leave the existing font information alone or perhaps just delete it from the XML. Either way would keep the MCL file constant.

Heap corruption

print(utils.utf8convert(utils.fromhex("FFFAC9636F6D6D2E6368616E6E656C207B20226368616E223A20226774656C6C222C20226D7367223A2022405928405747726F757040592920405931333337204834783072204669656E646973683A2027686D274077222C2022706C61796572223A20224669656E6469736822207DFFF01B5B303B33376D5B1B5B313B33316D61796C6F722D301B5B303B33376D20546865204772616E642043697479206F662041796C6F72201B5B313B33326D45786974733A4E45535755441B5B303B33376D5D205B1B5B313B33366D57697A693A1B5B313B33356D201B5B313B33366D496E636F673A1B5B313B33356D1B5B303B33376D5D201B5B313B33316D54656C6C733A30201B5B6D1B5B303B33376D1B5B303B33376D0A0D")))

in a debug build of MUSHclient raises

image

The hex is obviously invalid utf8.

wait.make problem? or trigger problem?

If I write a wait.make code block in the trigger and send to script, sometimes it will be activated again and again. Main process would be deadlocked,I have to end the program by taskmgr.exe. It seems that the trigger is repeatedly activated. So I have to write some code to stop this, like:

   if busy_mark~=true then
      busy_mark=true
      wait.make(
       function()
           Note("function code") 
           wait.time(0.1)
           busy_mark = nil
      end)
  end

Most of time it can be prevent the deadlock ,however, it's not possible to completely stop the master process be deadlock because of forgot wrote these code or other reasons.But we can't find out the bug code line in script,because the main process is deadlock too.
Could we make a guard thread to check the lua code be executed too long time?Like IE ,we can choose to stop the script executing.So we can find out the bug code and trigger.

Here is a little bug in trigger process

If a trigger's sendto text is simple script sentences,the process is working right.

But if used complex 'WAIT.REGEXP' function in script text and be on KeepEvaluating ,the trigger would be fired endless in looping.

I think here is some bug in CMUSHclientDoc::ProcessPreviousLine , because the WAIT.REGEXP function dynamically created some new triggers,and the SortTriggers function be called , this would be broken .

// main triggers
    for (iItem = 0; !bFoundIt && iItem < GetTriggerArray ().GetSize (); iItem++)

void  CMUSHclientDoc::SortTriggers (void)
  {

int iCount = GetTriggerMap ().GetCount ();
int i;
CString strTriggerName;
CTrigger * pTrigger;
POSITION pos;

  GetTriggerArray ().SetSize (iCount);
  GetTriggerRevMap ().clear ();

  // extract pointers into a simple array
  for (i = 0, pos = GetTriggerMap ().GetStartPosition(); pos; i++)
    {
     GetTriggerMap ().GetNextAssoc (pos, strTriggerName, pTrigger);
     GetTriggerArray ().SetAt (i, pTrigger);
     GetTriggerRevMap () [pTrigger] = strTriggerName;
    }


  // sort the array
  qsort (GetTriggerArray ().GetData (), 
         iCount,
         sizeof (CTrigger *),
         CompareTrigger);

  } // end of CMUSHclientDoc::SortTriggers

Maybe the iItem++ point to same trigger repeatly?

Add support for arm32/arm64 versions of Windows.

I am not sure how portable Mushclient is but it would be nice to have an arm32 and arm64 version as well as x86 now that ARM based Windows tablets/laptops are available. It would also make it possible to run on Android and other devices like the Raspberry Pi since wine doesn't do CPU emulation (but works just fine with win32/arm software) and Hangover appears dead.

Move to LuaJIT

Honestly not sure if this has been mentioned before but you should switch to luajit. It's much faster than normal Lua and can be used as a drop in replacement to the Lua API-- no code changes needed. Main reason I want this is to be able to use ffi; I'm sure many others would agree

Support for SGR 10 - 19 m codes

I code/develop for a different MUD Client which is also a GUI one and I was looking to include support for the 10 - 19 SGR ("Set Graphics Rendition") codes (<ESC> + [ ... m, primary + up to 9 Alternate ones).

However there does not appear to be an obvious way to specify what those fonts are. I was considering an <OSC> "Operating System Command" (<ESC> + ] ... <ESC> + \, where the last two bytes are the "String Terminator") approach but I was wondering whether any other clients - such as yours already support those <SGR> sequences and have a means for the Game Server to specify what they are/mean? If not - is it something that you'd want to consider and collaborate on?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.