Giter Club home page Giter Club logo

mudlet / mudlet Goto Github PK

View Code? Open in Web Editor NEW
698.0 32.0 246.0 151.9 MB

⚔️ A cross-platform, open source, and super fast MUD client with scripting in Lua

Home Page: https://mudlet.org

License: GNU General Public License v2.0

Shell 0.52% CMake 1.05% C++ 83.47% Lua 12.66% QMake 1.30% CSS 0.10% C 0.16% JavaScript 0.04% PowerShell 0.62% Dockerfile 0.05% Objective-C++ 0.03%
mudlet lua cross-platform mud game text-based text-adventure lua-script qt multi-user-dungeon

mudlet's Introduction


Mudlet
Mudlet

Play immersive, multiplayer, pure-text RPGs on Mudlet.

CodeFactor

AboutKey FeaturesDownloadHow To UseRoadmapCreditsLicense

Interfaces players have created with Mudlet

About

Mudlet is a quality MUD client, designed to take mudding to a new level.

It’s a modern breed of a client on the gaming scene – with an intuitive user interface, a specially designed scripting framework, and a very fast text display. That, along with cross-platform capability and an open-source development model result in a very likable game client.

Key Features

  • Simple to use
  • Very, very fast
  • Active development
  • Big, thriving community
  • Powerful trigger engine
  • Rich Lua-based coding functionality (API)
  • Excellent script editor
  • 2D and 3D mapper with autowalk
  • Powerful and simple to use GMCP
  • Discord integration
  • Completely themable
  • Open-source and Free
  • Cross platform: runs on Windows, macOS and Linux
  • Full compatibility: run same scripts on any of the above
Explain?

Easy to use client

We’re big on usability, and as such, creating an easy to use client and interface is one of the defining goals of the project. This applies to both the power users and usual gamers – everyone will feel at home with Mudlet, without having to waste too much time figuring out how to do something.

Designed for speed

Mudlet is designed and built to be very fast and efficient right from the start. Its scripting engine is designed to scale to large systems without bogging down – and the text display is designed to handle thousands of lines in under a second. All in all, we are very serious about Mudlet being quick – and take all measures to make it so.

Powerful Scripting

Mudlet features a scripting framework using Lua – a small, fast and efficient scripting language. This allows Mudlet to leverage the existing community and large ecosystem of existing packages for Lua without the many drawbacks of creating a Mudlet specific scripting language. Best of all, the Lua API is seamlessly integrated in Mudlet and shared by all aliases, triggers, scripts, keybindings, buttons and other Mudlet components.

Cross-Platform love

We believe in making Mudlet available to people on all major platforms, and we work on keeping cross-platform compatibility right from start. Mudlet is available on Linux (both 32bit and 64bit), Windows, and macOS; you may be able to run it on additional platforms as well.

Download

Download for free from mudlet.org.

How To Use

  1. Download and double-click on Mudlet to run
  2. Pick an existing game and hit Connect
  3. ... or play one of your choosing:
    1. Click New
    2. Enter Server address and Port of your game (found on the game's website, e.g. mygame.com and 2003)
    3. Pick a Profile name
    4. Hit Connect

Compiling

If you'd like to compile Mudlet yourself instead of downloading, you can find instructions to do so here.

Vision

Mudlet's vision is to build the best text gaming experience possible to nurture & grow this niche scene.

Roadmap

See the project's roadmap to get an idea of where it's headed, as well as contribute!

Credits

Author: Mudlet Makers. Join in, contributions are welcome!

This software wouldnt've been possible without these open source packages:

Credit to Markdownify for the README inspiration.

License

GPL2+


website  ·  forums  ·  manual

mudlet's People

Contributors

ahmedcharles avatar atari2600tim avatar babelfish avatar beliar83 avatar chris7 avatar delwing avatar demonnic avatar dependabot[bot] avatar dicene avatar druuimai avatar edru2 avatar eewallace avatar eowmob avatar gcms avatar gilmoa avatar github-actions[bot] avatar heikokoehn avatar imgbot[bot] avatar itsthefae avatar jormox avatar kebap avatar keneanung avatar macjabeth avatar mpconley avatar mudlet-machine-account avatar slysven avatar smurfix avatar vadi2 avatar wackywormer avatar zookaongit 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mudlet's Issues

Allow only foreground or only background in color triggers

Color triggers right now enforce a foreground and a background color. If the user changes their default Mudlet background color to a custom one, both triggers that only want the foreground color will fail, and it will be impossible to adjust them to the custom color as well.

Launchpad Details: #LP1143209 Vadim Peretokin - 2013-03-04 01:11:02 +0000

Migrate issues to Github

It's time to seriously consider migrating issues to Github - the Launchpad platform is not that frequently updated, Github has clearly eclipsed it as a development option in recent years, it'll integrate better with issues, and for the sake of staying on modern development practices.

The downside is that original bug reporters will no longer be notified of updates on their issues, so perhaps we could copy all issues across, then keep the ones that were reported by a 3rd party here and delete all those reported by the core team?

We can use https://github.com/johnf/github-issue-importer to import issues.

Launchpad Details: #LP1675989 Vadim Peretokin - 2017-03-25 05:37:29 +0000

3.0 regression: addMapMenu broke

This works on 2.1 and does not on 3.0:

addMapMenu("create exit stub")
addMapEvent("nw", "createExitStub", "create exit stub", "northwest")
addMapEvent("n", "createExitStub", "create exit stub", "north")
addMapEvent("ne", "createExitStub", "create exit stub", "northeast")
addMapEvent("e", "createExitStub", "create exit stub", "east")
addMapEvent("se", "createExitStub", "create exit stub", "southeast")
addMapEvent("s", "createExitStub", "create exit stub", "south")
addMapEvent("sw", "createExitStub", "create exit stub", "southwest")
addMapEvent("w", "createExitStub", "create exit stub", "west")
addMapEvent("u", "createExitStub", "create exit stub", "up")
addMapEvent("d", "createExitStub", "create exit stub", "down")

It should add a right-click menu to the mapper.

Launchpad Details: #LP1675994 Vadim Peretokin - 2017-03-25 06:18:05 +0000

disable icon option has no text

Right-clicking the icon bar will display a checkmark, without any identifying text.

Ubuntu Karmic, Mudlet 1.0.5.1

Launchpad Details: #LP501504 Elias Roa - 2009-12-30 00:44:14 +0000

dlgTriggerEditor has duplicate slots connected to itemClicked with very similar logic (saving, etc)

We have instances with the following pattern:

connect( treeWidget_vars, SIGNAL(itemClicked(QTreeWidgetItem , int)), this, SLOT(slot_item_selected_save(QTreeWidgetItem)) );
connect( treeWidget_vars, SIGNAL( itemClicked( QTreeWidgetItem *, int ) ), this, SLOT( slot_var_selected( QTreeWidgetItem *) ) );

Where both have calls to save the function. This needs to be simplified and in doing so, will probably fix numerous other issues as well.

Add getFontSize

Please add metod to get main window font size so a line wrap can be calculated dynamically.
Also please confirm that setWindowWrap("main", 30) is corrent and "main" window name will stay - else please add setMainWindowWrap()

Mudlet: 2.1

Launchpad Details: #LP1125509 Garagoth - 2013-02-14 20:08:13 +0000

MXP: no <support> tag

In MXP it is required for the Client to respond to a query from the server with a response, listing the actively supported tags.

A server would use this information to only display supported tags to the client. You need to implement this, as you are not implementing some other standard tags as of now (namely the text formatting stuff).

Unfortunately there is no standard way of naming the items in the response, so for comparison ...

this is what Mushclient sends back:
Unterstuetzte Tags (MXP SUPPORT):
+c, +v, +u, +b, +p, +a, +h, +i, +br, +ol, +em, +li, +ul, +hr, +pre, +afk,
+mxp, +img, +var, +html, +head, +send, +user, +samp, +high, +font, +pass,
+bold, +body, +title, +color, +reset, +strong, +option, +c.fore, +italic,
+c.back, +a.href, +version, +mxp.off, +img.src, +support, +password,
+username, +xch_page, +a.xch_cmd, +send.hint, +font.back, +send.href,
+underline, +color.back, +color.fore, +a.xch_hint, +font.color,
+send.prompt, +font.bgcolor, +font.fgcolor, +img.xch_mode, +send.xch_cmd,
+send.xch_hint, +recommend_option

and this is what CMUD3 sends back:
Unterstuetzte Tags (MXP SUPPORT):
+dl, +sbr, +h, +color, +dest, +i, +user, +font, +var, +relocate, +br, +v,
+h4, +em, +bold, +u, +a, +h2, +h3, +style, +high, +nobr, +tt, +ul,
+reported, +h5, +h1, +image, +password, +version, +strong, +dd, +li,
+music, +xch_page, +c, +frame, +s, +username, +ol, +xch_mudtext,
+strikeout, +support, +b, +p, +stat, +sound, +h6, +small, +send, +gauge,
+expire, +underline, +strike, +report, +hr, +dt, +xch_pane, +pre, +pass,
+img, +italic

Launchpad Details: #LP853389 xtian - 2011-09-18 18:05:47 +0000

allow temp*Trigger to auto-remove itself after specified number of matches

Currently to create tempTrigger and then remove it it is necessary to have global variable that stores its id. And then code of temp trigger must use that global variable to killTrigger itself.

Please add parameter that will cause temp*Trigger to auto-remove itself after specified number of matches.

Regards,
Garagoth.

Launchpad Details: #LP1103873 Garagoth - 2013-01-24 08:11:15 +0000

allow temp*Trigger to auto-remove itself after specified number of matches

Currently to create tempTrigger and then remove it it is necessary to have global variable that stores its id. And then code of temp trigger must use that global variable to killTrigger itself.

Please add parameter that will cause temp*Trigger to auto-remove itself after specified number of matches.

Regards,
Garagoth.

Launchpad Details: #LP1103873 Garagoth - 2013-01-24 08:11:15 +0000

Speedwalk doesn't recognize down

OS: Windows7 Version: 3.0-delta

The speedwalk command is not properly recognizing the down direction. It might be a problem with how speedWalkDir is built, rather then how speedwalk interprets it. The below code gives the following results:

echo("Path we need to take: " .. table.concat(speedWalkDir, ", ") .. "\n")
echo("Rooms we'll pass through: " .. table.concat(speedWalkPath, ", ") .. "\n")
speedwalk(table.concat(speedWalkDir, ", "), false)

Path we need to take: down, n, e, s, w
Rooms we'll pass through: 48603, 48602, 48577, 48578, 84203
d
ow
n
n
e
s
w

For now, i'm getting around it by prefixing the call to speedwalk with the following:

for k,v in pairs(speedWalkDir) do
if v == "down" then
speedWalkDir[k] = "d"
end
end

Launchpad Details: #LP1476764 Chris Leacy - 2015-07-21 17:17:03 +0000

Allow Non Ascii PathFile Characters

SlySven/Mudlet/Fix_allowNonAsciiPathFileCharacters

In the above I've been through the TLuaInterpreter Class and tried to identify all the places where filenames may be passed as arguments and fixed them to pass Utf-8 rather than Latin1 encoded data to and from the Lua Subsystem and to check that the information is processed in the Mudlet core properly. This is a small part of rendering Mudlet usable in non EN-us Locales where passed strings could contain non-ASCII characters. This particular bit is causing issues already for non-EN-us Windows users: e.g. bug 1322753. This branch needs testing on that platform but I do not have access to a developer setup that covers it. I have tried to emulate the conditions (setting up a user with an accented user name) for my platform (Debian GNU/Linux) but it is not as easy to bypass the POSIX.1-2008 specifications (IEEE Std 1003.1-2008) on that compared to MS Windows which doesn't even try to use that one. Initial testing once that barrier was overcome shows promise but I'm not certain enough of this to put it as a Pull Request without further testing on other platforms. 🙏

Crash related to sysDisconnectEvent

Sample code:

function autoCrash()
  tempTimer(5,[[echo("This will crash 5 seconds after mudlet profile is closed")]])
--  tempTimer(5,[[send("This will crash 5 seconds after mudlet profile is closed")]]) -- only when send output is set to 'on' in settings
--  tempTimer(5,[[reconnect()]]) -- this will crash mudlet 5 seconds after profile is closed
end
registerAnonymousEventHandler("sysDisconnectionEvent","autoCrash")

Explanation:

Any output to the profile's window after it has been closed will crash mudlet. ANY output at all - Any function that will output anything, including reconnect(), echo() send() [send only when the 'show text sent to MUD'], etc.

The only way this can happen is via the sysDisconnectEvent and a tempTimer or by enableTimer() on a timer that will output something. Otherwise, all timers (temp and permanent) are disabled at profile close.

The culprit appears to be that sysDisconnectEvent is called, whether the profile is connected or disconnected, at the close of the profile. This is probably to terminate any open connections to the MUD. However, it is being called after all timers have been disabled. If you try this same tempTimer in an alias, then close the profile before it fires, you will have no crash.

--Mudlet 3.0.0
--Windows 10

Launchpad Details: #LP1676946 Roland Goldberg - 2017-03-28 16:28:52 +0000

Compile errors on OSX Yosemite

I'm not able to build the project on Yosemite anymore. I was at one point a while back using my current system, and I'm not sure what I've changed (or has changed on the project) that is causing the issues.

here's the total output of the build process, after a git pull moments before.

nate at macbook-air in ~/s/c/m/src  (development)                               
↪  make clean
rm -f qrc_mudlet_alpha.cpp
rm -f moc_ctelnet.cpp moc_dlgAboutDialog.cpp moc_dlgActionMainArea.cpp moc_dlgAliasMainArea.cpp moc_dlgColorTrigger.cpp moc_dlgComposer.cpp moc_dlgConnectionProfiles.cpp moc_dlgIRC.cpp moc_dlgKeysMainArea.cpp moc_dlgMapper.cpp moc_dlgNotepad.cpp moc_dlgOptionsAreaAction.cpp moc_dlgOptionsAreaAlias.cpp moc_dlgOptionsAreaScripts.cpp moc_dlgOptionsAreaTimers.cpp moc_dlgOptionsAreaTriggers.cpp moc_dlgPackageExporter.cpp moc_dlgProfilePreferences.cpp moc_dlgRoomExits.cpp moc_dlgScriptsMainArea.cpp moc_dlgSearchArea.cpp moc_dlgSourceEditorArea.cpp moc_dlgSystemMessageArea.cpp moc_dlgTimersMainArea.cpp moc_dlgTriggerEditor.cpp moc_dlgTriggerPatternEdit.cpp moc_dlgTriggersMainArea.cpp moc_dlgVarsMainArea.cpp moc_EAction.cpp moc_exitstreewidget.cpp moc_glwidget.cpp moc_irc.cpp moc_irccodecplugin.cpp moc_irccommand.cpp moc_ircmessage.cpp moc_ircsession.cpp moc_mudlet.cpp moc_T2DMap.cpp moc_TCommandLine.cpp moc_TConsole.cpp moc_TEasyButtonBar.cpp moc_TForkedProcess.cpp moc_THighlighter.cpp moc_TLabel.cpp moc_TLuaInterpreter.cpp moc_TSplitter.cpp moc_TTextEdit.cpp moc_TToolBar.cpp moc_TTreeWidget.cpp
rm -f ui_about_dialog.h ui_actions_main_area.h ui_aliases_main_area.h ui_color_trigger.h ui_composer.h ui_connection_profiles.h ui_dlgPackageExporter.h ui_extended_search_area.h ui_irc.h ui_keybindings_main_area.h ui_main_window.h ui_mapper.h ui_notes_editor.h ui_options_area_actions.h ui_options_area_aliases.h ui_options_area_scripts.h ui_options_area_timers.h ui_options_area_triggers.h ui_profile_preferences.h ui_room_exits.h ui_scripts_main_area.h ui_source_editor_area.h ui_system_message_area.h ui_timers_main_area.h ui_triggers_main_area.h ui_trigger_editor.h ui_trigger_pattern_edit.h ui_vars_main_area.h
rm -f ActionUnit.o AliasUnit.o ctelnet.o dlgAboutDialog.o dlgActionMainArea.o dlgAliasMainArea.o dlgColorTrigger.o dlgComposer.o dlgConnectionProfiles.o dlgIRC.o dlgKeysMainArea.o dlgMapper.o dlgNotepad.o dlgOptionsAreaAction.o dlgOptionsAreaAlias.o dlgOptionsAreaScripts.o dlgOptionsAreaTimers.o dlgOptionsAreaTriggers.o dlgPackageExporter.o dlgProfilePreferences.o dlgRoomExits.o dlgScriptsMainArea.o dlgSearchArea.o dlgSourceEditorArea.o dlgSystemMessageArea.o dlgTimersMainArea.o dlgTriggerEditor.o dlgTriggerPatternEdit.o dlgTriggersMainArea.o dlgVarsMainArea.o EAction.o exitstreewidget.o FontManager.o glwidget.o Host.o HostManager.o irc.o irccodecplugin.o irccommand.o ircdecoder.o ircmessage.o ircparser.o ircsender.o ircsession.o ircutil.o KeyUnit.o LuaInterface.o main.o mudlet.o ScriptUnit.o T2DMap.o TAction.o TAlias.o TArea.o TBuffer.o TCommandLine.o TConsole.o TDebug.o TEasyButtonBar.o TFlipButton.o TForkedProcess.o THighlighter.o TimerUnit.o TKey.o TLabel.o TLuaInterpreter.o TMap.o TriggerUnit.o TRoom.o TRoomDB.o TScript.o TSplitter.o TSplitterHandle.o TTextEdit.o TTimer.o TToolBar.o TTreeWidget.o TTreeWidgetItem.o TTrigger.o TVar.o VarUnit.o XMLexport.o XMLimport.o lua_yajl.o qrc_mudlet_alpha.o moc_ctelnet.o moc_dlgAboutDialog.o moc_dlgActionMainArea.o moc_dlgAliasMainArea.o moc_dlgColorTrigger.o moc_dlgComposer.o moc_dlgConnectionProfiles.o moc_dlgIRC.o moc_dlgKeysMainArea.o moc_dlgMapper.o moc_dlgNotepad.o moc_dlgOptionsAreaAction.o moc_dlgOptionsAreaAlias.o moc_dlgOptionsAreaScripts.o moc_dlgOptionsAreaTimers.o moc_dlgOptionsAreaTriggers.o moc_dlgPackageExporter.o moc_dlgProfilePreferences.o moc_dlgRoomExits.o moc_dlgScriptsMainArea.o moc_dlgSearchArea.o moc_dlgSourceEditorArea.o moc_dlgSystemMessageArea.o moc_dlgTimersMainArea.o moc_dlgTriggerEditor.o moc_dlgTriggerPatternEdit.o moc_dlgTriggersMainArea.o moc_dlgVarsMainArea.o moc_EAction.o moc_exitstreewidget.o moc_glwidget.o moc_irc.o moc_irccodecplugin.o moc_irccommand.o moc_ircmessage.o moc_mudlet.o moc_T2DMap.o moc_TCommandLine.o moc_TConsole.o moc_TEasyButtonBar.o moc_TForkedProcess.o moc_THighlighter.o moc_TLabel.o moc_TLuaInterpreter.o moc_TSplitter.o moc_TTextEdit.o moc_TToolBar.o moc_TTreeWidget.o
rm -f *~ core *.core
nate at macbook-air in ~/s/c/m/src  (development)                               
↪  /usr/local/Cellar/qt5/5.3.2/bin/qmake
nate at macbook-air in ~/s/c/m/src  (development)                               
↪  make -j 2
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/about_dialog.ui -o ui_about_dialog.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/actions_main_area.ui -o ui_actions_main_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/aliases_main_area.ui -o ui_aliases_main_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/color_trigger.ui -o ui_color_trigger.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/composer.ui -o ui_composer.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/connection_profiles.ui -o ui_connection_profiles.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/dlgPackageExporter.ui -o ui_dlgPackageExporter.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/extended_search_area.ui -o ui_extended_search_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/irc.ui -o ui_irc.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/keybindings_main_area.ui -o ui_keybindings_main_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/main_window.ui -o ui_main_window.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/mapper.ui -o ui_mapper.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/notes_editor.ui -o ui_notes_editor.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/options_area_actions.ui -o ui_options_area_actions.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/options_area_aliases.ui -o ui_options_area_aliases.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/options_area_scripts.ui -o ui_options_area_scripts.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/options_area_timers.ui -o ui_options_area_timers.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/options_area_triggers.ui -o ui_options_area_triggers.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/profile_preferences.ui -o ui_profile_preferences.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/room_exits.ui -o ui_room_exits.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/scripts_main_area.ui -o ui_scripts_main_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/source_editor_area.ui -o ui_source_editor_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/system_message_area.ui -o ui_system_message_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/timers_main_area.ui -o ui_timers_main_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/triggers_main_area.ui -o ui_triggers_main_area.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/trigger_editor.ui -o ui_trigger_editor.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/trigger_pattern_edit.ui -o ui_trigger_pattern_edit.h
/usr/local/Cellar/qt5/5.3.2/bin/uic ui/vars_main_area.ui -o ui_vars_main_area.h
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -Wall -Wno-deprecated -Wno-unused-local-typedefs -Wno-unused-parameter -O2 -O3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7 -w -fPIE -DAPP_VERSION=\"3.0.1\" -DAPP_BUILD=\"-dev\" -DAPP_TARGET=\"Mudlet\" -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_MULTIMEDIA_LIB -DQT_WIDGETS_LIB -DQT_UITOOLS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/local/Cellar/qt5/5.3.2/mkspecs/macx-clang -I. -I/usr/local/include -Iirc/include -I/usr/local/Cellar/hunspell/1.3.3/include/hunspell -I/usr/local/Cellar/lua51/5.1.5/include/lua-5.1 -I/usr/local/Cellar/yajl/2.1.0/include/yajl -I/usr/local/Cellar/pcre/8.36/include -I/usr/local/Cellar/libzip/0.11.2/include -I/usr/local/Cellar/libzip/0.11.2/lib/libzip/include -I/usr/local/Cellar/qt5/5.3.2/lib/QtOpenGL.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtMultimedia.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/include -I/usr/local/Cellar/qt5/5.3.2/include/QtUiTools -I/usr/local/Cellar/qt5/5.3.2/lib/QtNetwork.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -F/usr/local/Cellar/qt5/5.3.2/lib -o ActionUnit.o ActionUnit.cpp
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -Wall -Wno-deprecated -Wno-unused-local-typedefs -Wno-unused-parameter -O2 -O3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7 -w -fPIE -DAPP_VERSION=\"3.0.1\" -DAPP_BUILD=\"-dev\" -DAPP_TARGET=\"Mudlet\" -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_MULTIMEDIA_LIB -DQT_WIDGETS_LIB -DQT_UITOOLS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/local/Cellar/qt5/5.3.2/mkspecs/macx-clang -I. -I/usr/local/include -Iirc/include -I/usr/local/Cellar/hunspell/1.3.3/include/hunspell -I/usr/local/Cellar/lua51/5.1.5/include/lua-5.1 -I/usr/local/Cellar/yajl/2.1.0/include/yajl -I/usr/local/Cellar/pcre/8.36/include -I/usr/local/Cellar/libzip/0.11.2/include -I/usr/local/Cellar/libzip/0.11.2/lib/libzip/include -I/usr/local/Cellar/qt5/5.3.2/lib/QtOpenGL.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtMultimedia.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/include -I/usr/local/Cellar/qt5/5.3.2/include/QtUiTools -I/usr/local/Cellar/qt5/5.3.2/lib/QtNetwork.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/Headers -I/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -F/usr/local/Cellar/qt5/5.3.2/lib -o AliasUnit.o AliasUnit.cpp
In file included from AliasUnit.cpp:22:
In file included from ./AliasUnit.h:26:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QMutex:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:70:25: error: 
      expected ';' at end of declaration list
    inline void unlock() Q_DECL_NOTHROW {
                        ^
                        ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:83:30: error: 
      expected ';' at end of declaration list
    inline bool fastTryLock() Q_DECL_NOTHROW {
                             ^
                             ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:98:26: error: 
      expected ';' at end of declaration list
    void unlockInternal() Q_DECL_NOTHROW;
                         ^
                         ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:67:26: error: 
      too few arguments to function call, single argument 'timeout' was not
      specified
            lockInternal();
            ~~~~~~~~~~~~ ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:97:5: note: 
      'lockInternal' declared here
    bool lockInternal(int timeout) QT_MUTEX_LOCK_NOEXCEPT;
    ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:117:18: error: 
      expected ';' at end of declaration list
    void unlock() Q_DECL_NOTHROW;
                 ^
                 ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:119:24: error: 
      no member named 'isRecursive' in 'QBasicMutex'
    using QBasicMutex::isRecursive;
          ~~~~~~~~~~~~~^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:142:25: error: 
      expected ';' at end of declaration list
    inline void unlock() Q_DECL_NOTHROW
                        ^
                        ;
In file included from ActionUnit.cpp:22:
In file included from ./ActionUnit.h:26:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QMap:1:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmap.h:47:
/usr/local/Cellar/qt5/5.3.2/include/QtCore/qrefcount.h:56:22: error: expected
      ';' at end of declaration list
    inline bool ref() Q_DECL_NOTHROW {
                     ^
                     ;
In file included from AliasUnit.cpp:22:
In file included from ./AliasUnit.h:27:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QMultiMap:1:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmap.h:47:
/usr/local/Cellar/qt5/5.3.2/include/QtCore/qrefcount.h:56:22: error: expected
      ';' at end of declaration list
    inline bool ref() Q_DECL_NOTHROW {
                     ^
                     ;
In file included from ActionUnit.cpp:22:
In file included from ./ActionUnit.h:26:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QMap:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmap.h:80:5: error: 
      use of undeclared identifier 'Q_STATIC_ASSERT'
    Q_STATIC_ASSERT(sizeof(quintptr) == sizeof(const Ptr *));
    ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmap.h:129:15: error: 
      expected ';' at end of declaration list
    QMapNode() Q_DECL_EQ_DELETE;
              ^
              ;
In file included from AliasUnit.cpp:22:
In file included from ./AliasUnit.h:27:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QMultiMap:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmap.h:80:5: error: 
      use of undeclared identifier 'Q_STATIC_ASSERT'
    Q_STATIC_ASSERT(sizeof(quintptr) == sizeof(const Ptr *));
    ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmap.h:129:15: error: 
      expected ';' at end of declaration list
    QMapNode() Q_DECL_EQ_DELETE;
              ^
              ;
In file included from ActionUnit.cpp:22:
In file included from ./ActionUnit.h:27:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QMutex:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:70:25: error: 
      expected ';' at end of declaration list
    inline void unlock() Q_DECL_NOTHROW {
                        ^
                        ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:83:30: error: 
      expected ';' at end of declaration list
    inline bool fastTryLock() Q_DECL_NOTHROW {
                             ^
                             ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:98:26: error: 
      expected ';' at end of declaration list
    void unlockInternal() Q_DECL_NOTHROW;
                         ^
                         ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:67:26: error: 
      too few arguments to function call, single argument 'timeout' was not
      specified
            lockInternal();
            ~~~~~~~~~~~~ ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:97:5: note: 
      'lockInternal' declared here
    bool lockInternal(int timeout) QT_MUTEX_LOCK_NOEXCEPT;
    ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:117:18: error: 
      expected ';' at end of declaration list
    void unlock() Q_DECL_NOTHROW;
                 ^
                 ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:119:24: error: 
      no member named 'isRecursive' in 'QBasicMutex'
    using QBasicMutex::isRecursive;
          ~~~~~~~~~~~~~^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qmutex.h:142:25: error: 
      expected ';' at end of declaration list
    inline void unlock() Q_DECL_NOTHROW
                        ^
                        ;
In file included from AliasUnit.cpp:22:
In file included from ./AliasUnit.h:28:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QPointer:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qpointer.h:138:58: error: 
      no member named 'weakPointerFromVariant_internal' in namespace
      'QtSharedPointer'
    return QPointer<T>(qobject_cast<T*>(QtSharedPointer::weakPointerFrom...
                                        ~~~~~~~~~~~~~~~~~^
In file included from ActionUnit.cpp:22:
In file included from ./ActionUnit.h:28:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QPointer:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qpointer.h:138:58: error: 
      no member named 'weakPointerFromVariant_internal' in namespace
      'QtSharedPointer'
    return QPointer<T>(qobject_cast<T*>(QtSharedPointer::weakPointerFrom...
                                        ~~~~~~~~~~~~~~~~~^
In file included from AliasUnit.cpp:24:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:88:24: error: 
      token is not a valid binary operator in a preprocessor subexpression
#if QT_DEPRECATED_SINCE(5,0)
    ~~~~~~~~~~~~~~~~~~~^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:279:24: error: 
      token is not a valid binary operator in a preprocessor subexpression
#if QT_DEPRECATED_SINCE(5, 2)
    ~~~~~~~~~~~~~~~~~~~^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:304:43: error: 
      expected ';' at end of declaration list
    static qint64 currentMSecsSinceEpoch() Q_DECL_NOTHROW;
                                          ^
                                          ;
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.hIn file included from ActionUnit.cpp:25:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:88:24: error: 
      token is not a valid binary operator in a preprocessor subexpression
#if QT_DEPRECATED_SINCE(5,0)
    ~~~~~~~~~~~~~~~~~~~^
:324:1: error: 
      no/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:279:24: error: 
      token is not a valid binary operator in a preprocessor subexpression
 member#if QT_DEPRECATED_SINCE(5, 2)
    ~~~~~~~~~~~~~~~~~~~^
 named 'isDetached' in 'QDateTime'
Q_DECLARE_SHARED(QDateTime)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:304:43: error: 
      expected ';' at end of declaration list
    static qint64 currentMSecsSinceEpoch() Q_DECL_NOTHROW;
                                          ^
                                          ;
/usr/local/include/QtCore/qglobal.h:2215:63: note: expanded from macro
      'Q_DECLARE_SHARED'
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.htemplate <> inline bool qIsDetached<TYPE>(TYPE &t) { return t.isDetached(); } \:324:1: error: 
      no member named 'isDetached' in 'QDateTime'
Q_DECLARE_SHARED(QDateTime)
^~~~~~~~~~~~~~~~~~~~~~~~~~~

                                                            ~ ^
/usr/local/include/QtCore/qglobal.h:2215:63: note: expanded from macro
      'Q_DECLARE_SHARED'
template <> inline bool qIsDetached<TYPE>(TYPE &t) { return t.isDetached(); } \
                                                            ~ ^
In file included from AliasUnit.cppIn file included from ActionUnit.cpp:25:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:324:1: error: 
      no member named 'data_ptr' in 'QDateTime'
:Q_DECLARE_SHARED(QDateTime)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/QtCore/qglobal.h:2217:16: note: expanded from macro
      'Q_DECLARE_SHARED'
24:
{ qSwap(value1.data_ptr(), value2.data_ptr()); } \
        ~~~~~~ ^
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:324:1: error: 
      no member named 'data_ptr' in 'QDateTime'
Q_DECLARE_SHARED(QDateTime)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/QtCore/qglobal.h:2217:16: note: expanded from macro
      'Q_DECLARE_SHARED'
{ qSwap(value1.data_ptr(), value2.data_ptr()); } \
        ~~~~~~ ^
In file included from ActionUnit.cpp:25:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:324:1: error: 
      no member named 'data_ptr' in 'QDateTime'
Q_DECLARE_SHARED(QDateTime)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/QtCore/qglobal.h:2217:50: note: expanded from macro
      'Q_DECLARE_SHARED'
{ qSwap(value1.data_ptr(), value2.data_ptr()); } \
                                                 ^In file included from AliasUnit.cpp:24:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:324:1: error: 
      no member named 'data_ptr' in 'QDateTime'

Q_DECLARE_SHARED(QDateTime)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/QtCore/qglobal.h:2217:50: note: expanded from macro
      'Q_DECLARE_SHARED'
/usr/local/include/QtCore/qglobal.h{ qSwap(value1.data_ptr(), value2.data_ptr()); } \
                                                 ^
/usr/local/include/QtCore/qglobal.h:2209:19: note: expanded from macro '\
Q_DECLARE_SHARED_STL'
:2209    { swap(value1.data_ptr(), value2.data_ptr()); } \
:           ~~~~~~ ^
19: note: expanded from macro '\
Q_DECLARE_SHARED_STL'
    { swap(value1.data_ptr(), value2.data_ptr()); } \
           ~~~~~~ ^
In file included from AliasUnit.cpp:24:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:344:59: error: 
      expected function body after function declarator
Q_CORE_EXPORT uint qHash(const QDate &key, uint seed = 0) Q_DECL_NOTHROW;
                                                          ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:345:59: error: 
      expected function body after function declarator
Q_CORE_EXPORT uint qHash(const QTime &key, uint seed = 0) Q_DECL_NOTHROW;
                                                          ^
In file included from ActionUnit.cpp:25:
In file included from ./Host.h:27:
In file included from ./ctelnet.h:31:
In file included from /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/QTime:1:
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:344:59: error: 
      expected function body after function declarator
Q_CORE_EXPORT uint qHash(const QDate &key, uint seed = 0) Q_DECL_NOTHROW;
                                                          ^
/usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/Headers/qdatetime.h:345:59: error: 
      expected function body after function declarator
Q_CORE_EXPORT uint qHash(const QTime &key, uint seed = 0) Q_DECL_NOTHROW;
                                                          ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
20 errors generated.
make: *** [AliasUnit.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [ActionUnit.o] Error 1
nate at macbook-air in ~/s/c/m/src  (development)                               
↪  

Unless I'm reading this wrong, it seems to be complaining about missing semicolons, but I don't see how it would pass travis if that were the case.

allow temp*Trigger to auto-remove itself after specified number of matches

Currently to create tempTrigger and then remove it it is necessary to have global variable that stores its id. And then code of temp trigger must use that global variable to killTrigger itself.

Please add parameter that will cause temp*Trigger to auto-remove itself after specified number of matches.

Regards,
Garagoth.

Launchpad Details: #LP1103873 Garagoth - 2013-01-24 08:11:15 +0000

Mudlet freezes while loading a profile, providing no user feedback or progress

Mudlet can freeze while loading a real-world profile, providing no user feedback or progress - which is quite bad because the user is stuck wondering if it's working at all or not.

GNOME HIG (https://developer.gnome.org/hig-book/3.0/hig-book.html#controls-progress-bars), Apple HIG (https://developer.apple.com/library/mac/documentation/userexperience/conceptual/applehiguidelines/Controls/Controls.html) Windows HIG (http://msdn.microsoft.com/en-us/library/windows/desktop/bb760816(v=vs.85).aspx) all recommend showing some kind of a progress bar when the task is taking more than a few seconds in general.

Attached a video where Mudlet freezes and provides no experience to the user while the profile is loading - first freeze is from 0:13 to 0:24 (11 seconds!), second is from 1:07 to 1:17 (10 seconds!).

Launchpad Details: #LP1254364 Vadim Peretokin - 2013-11-24 01:01:02 +0000

MXP: no <b> (bold) tag and other text formatting

in addition it would be nice if you would implement some rudimentary text formatting tags. Otherwise servers (i.e. I) will have to implement checks and workarounds for Mudlet, as all other MXP clients I know to date, all parse the standard text formatting tags: <b>, <i>, <color> to name a few.

So, while the standard provides a way to check if a client implements some of these tags via the <SUPPORT> (which you dont implement as of now, see other bug report), it also would be easier if you added them either way, so that servers that didn't check for valid implementation of these tags wont have to retro-fit.

Launchpad Details: #LP853392 xtian - 2011-09-18 18:13:31 +0000

Updated 2017-04-08 21:22:23 to show original text misread as mark-up on GitHub - SlySven

scandinavian letters and some special characters are not supported

There seems to be some issues in character encoding for mudlet. Using aliases to reply to tells with scandinavian letters results in and unsupported character error. Below is the example:

The original message was: "tell Ilmari smöö"

Mudlet output:
tell Ilmari sm��
Unsupported character following "...ri sm".

The alias in mudlet is pretty simple:

Pattern: ^lt (.*)$

Code:
reply_msg = matches[2]
send("tell " .. reply_to .. " " .. reply_msg)

mudlet version: 3.0.0-iota
os: windows 10 (10.0.14393 Build 14393)

Launchpad Details: #LP1653226 Tomi Lindroos - 2016-12-30 11:04:34 +0000

\ gets stripped out by GMCP composer

The \ character gets stripped out by the GMCP composer.

A workaround is to use \ that gets transformed into .

A patch to apply to Mudlet is on ctelnet.cpp, line 1106, replace it with:

_h += txt.replace(QString("\"), QString("\\")).toLatin1().data();

Launchpad Details: #LP815499 Vadim Peretokin - 2011-07-24 17:23:44 +0000

Crash on using the search box

See http://forums.mudlet.org/viewtopic.php?f=9&t=4598&p=21696#p21693 and http://forums.mudlet.org/viewtopic.php?f=9&t=4598&start=40#p21611 for two reports of this happening.

Just clicking on the search box can cause a crash: http://forums.mudlet.org/viewtopic.php?f=5&t=4695&start=30#p22489

Different stacktraces, just clicking on the search bar does it: https://bugs.launchpad.net/mudlet/+bug/1416757
http://pastebin.com/fTnNqeQD
http://pastebin.com/njWHEEvK
http://pastebin.com/sqMsbVKq
http://pastebin.com/wtSegBRW

Haven't gotten a detailed and a reproducible test case yet, though.

Qt bugreport: https://bugreports.qt.io/browse/QTBUG-44244

Launchpad Details: #LP1374684 Vadim Peretokin - 2014-09-27 04:23:21 +0000

Using the stopStopWatch( watchId ) does not stop the stop watch

This has been an issue for a long time e.g. as mentioned in http://forums.mudlet.org/viewtopic.php?f=5&t=92&p=21102#p21102 - in fact the existing code does not behave as the Wiki http://wiki.mudlet.org/w/Manual:Mudlet_Object_Functions#stopStopWatch describes it {I recently added a warning about this}.

The stopStopWatch(...) code is actually the same as the getStopWatch(...) code in the Host class and this breakage comes about because a QTime is used to record the "time" the stopwatch is "started" and it cannot be "stopped" - indeed there does not seem to be an existing Qt element that can be used "as a physical stopwatch as a user might understand it".

I have assigned a "medium" importance to this as it ought to be fixed at some stage and it is broken as per the API described in the Wiki.

Launchpad Details: #LP1639722 Stephen Lyons - 2016-11-07 07:46:08 +0000

MXP: no <support> tag

In MXP it is required for the Client to respond to a query from the server with a response, listing the actively supported tags.

A server would use this information to only display supported tags to the client. You need to implement this, as you are not implementing some other standard tags as of now (namely the text formatting stuff).

Unfortunately there is no standard way of naming the items in the response, so for comparison ...

this is what Mushclient sends back:
Unterstuetzte Tags (MXP SUPPORT):
+c, +v, +u, +b, +p, +a, +h, +i, +br, +ol, +em, +li, +ul, +hr, +pre, +afk,
+mxp, +img, +var, +html, +head, +send, +user, +samp, +high, +font, +pass,
+bold, +body, +title, +color, +reset, +strong, +option, +c.fore, +italic,
+c.back, +a.href, +version, +mxp.off, +img.src, +support, +password,
+username, +xch_page, +a.xch_cmd, +send.hint, +font.back, +send.href,
+underline, +color.back, +color.fore, +a.xch_hint, +font.color,
+send.prompt, +font.bgcolor, +font.fgcolor, +img.xch_mode, +send.xch_cmd,
+send.xch_hint, +recommend_option

and this is what CMUD3 sends back:
Unterstuetzte Tags (MXP SUPPORT):
+dl, +sbr, +h, +color, +dest, +i, +user, +font, +var, +relocate, +br, +v,
+h4, +em, +bold, +u, +a, +h2, +h3, +style, +high, +nobr, +tt, +ul,
+reported, +h5, +h1, +image, +password, +version, +strong, +dd, +li,
+music, +xch_page, +c, +frame, +s, +username, +ol, +xch_mudtext,
+strikeout, +support, +b, +p, +stat, +sound, +h6, +small, +send, +gauge,
+expire, +underline, +strike, +report, +hr, +dt, +xch_pane, +pre, +pass,
+img, +italic

Launchpad Details: #LP853389 xtian - 2011-09-18 18:05:47 +0000

t2tmud.org MXP support doesn't work

t2tmud.org Port: 9999 - The Command to enable mxp is "set mxp on". Whatever Mudlet responds with the MUD does not like - see attached replay.

Launchpad Details: #LP1676125 Vadim Peretokin - 2017-03-26 06:26:46 +0000

Mapper changes font when changing between docked and undocked state

Applies to 2.1 and current 3.0 previews.

When the mapper is used as a dock-able widget it inherits the font it uses from the Mudlet application when it is docked but because it becomes a free floating window when undocked it then takes on the defaults that have been set for the Qt system. If these two are not the same then there will be an obvious change when the widget is docked/undocked - this is particularly noticeable if one font is a Serif type and the other a San-Serif one. The fix that the attached patch does is to actually set the default font for the widget in the constructor which, as it is now explicitly set, overrides the changes that would otherwise be inherited from the parent which changes between the docking states.

I reckon that this cosmetic bug does not rate a setting higher than medium but another bug reviewer is free to revise that assessment when they confirm this.

Launchpad Details: #LP1432841 Stephen Lyons - 2015-03-16 21:11:44 +0000

MXP: no <support> tag

In MXP it is required for the Client to respond to a query from the server with a response, listing the actively supported tags.

A server would use this information to only display supported tags to the client. You need to implement this, as you are not implementing some other standard tags as of now (namely the text formatting stuff).

Unfortunately there is no standard way of naming the items in the response, so for comparison ...

this is what Mushclient sends back:
Unterstuetzte Tags (MXP SUPPORT):
+c, +v, +u, +b, +p, +a, +h, +i, +br, +ol, +em, +li, +ul, +hr, +pre, +afk,
+mxp, +img, +var, +html, +head, +send, +user, +samp, +high, +font, +pass,
+bold, +body, +title, +color, +reset, +strong, +option, +c.fore, +italic,
+c.back, +a.href, +version, +mxp.off, +img.src, +support, +password,
+username, +xch_page, +a.xch_cmd, +send.hint, +font.back, +send.href,
+underline, +color.back, +color.fore, +a.xch_hint, +font.color,
+send.prompt, +font.bgcolor, +font.fgcolor, +img.xch_mode, +send.xch_cmd,
+send.xch_hint, +recommend_option

and this is what CMUD3 sends back:
Unterstuetzte Tags (MXP SUPPORT):
+dl, +sbr, +h, +color, +dest, +i, +user, +font, +var, +relocate, +br, +v,
+h4, +em, +bold, +u, +a, +h2, +h3, +style, +high, +nobr, +tt, +ul,
+reported, +h5, +h1, +image, +password, +version, +strong, +dd, +li,
+music, +xch_page, +c, +frame, +s, +username, +ol, +xch_mudtext,
+strikeout, +support, +b, +p, +stat, +sound, +h6, +small, +send, +gauge,
+expire, +underline, +strike, +report, +hr, +dt, +xch_pane, +pre, +pass,
+img, +italic

Launchpad Details: #LP853389 xtian - 2011-09-18 18:05:47 +0000

No-payload GMCP events aren't raised

If the server sends a GMCP event with just the name and no payload, json_to_value is given "" as data and it errors out. This affects GMCP.Ping on IREs.

It worked in 2.1 previously, broken in 3.0. First reported at http://forums.mudlet.org/viewtopic.php?f=5&t=4610&start=70#p22035.

This in particular breaks gmcp.Core.Ping functionality on IRE servers (https://github.com/keneanung/GMCPAdditions#coreping)... however as Mudlet has http://wiki.mudlet.org/w/Manual:Networking_Functions#getNetworkLatency which imho is better, I don't think it's a big one for IRE games.

Nonetheless, some other servers could be using this for more important data and it could be a serious issue for them.

Launchpad Details: #LP1670263 Vadim Peretokin - 2017-03-06 06:17:54 +0000

Migration to Lua-5.2 ?

Hi!

I've started looking at updating Mudlet to use Lua-5.2. I use FreeBSD and they're only supporting Lua-5.2 + packages as the Lua upstreams apparently aren't going to support lua-5.1 for much longer.

So - how much interest is there in migrating Mudlet to use lua-5.2 ? There's some changes that need to happen - I'm wrapping my head around the global iterator changes that have occured.

Thanks!

-adrian

Need a getGridMode() function

For some inexplicable reason getGridMode() was never made, and so now we have no obvious way of calculating from a script how many grid areas has a map got.

Launchpad Details: #LP1256592 Vadim Peretokin - 2013-12-01 02:01:06 +0000

Unable to clear south-east exit from 2D map "Room Exits" dialog

I've found a typo in the dlgRoomExits::save() code which manifests as being not able to clear a south east exit, looking at the code for 3.0.0 I can see that in commit-f2fa6f4e51381e06beb0ac20509e03031060a71d (from 2015-02-07 10:57:12) I had copy/paste/modified but left one entry with the value DIR_SOUTHWEST when it should have been DIR_SOUTHEAST, the following is something patch-ish that shows the repair to be done:
@@ -513,21 +513,21 @@ void dlgRoomExits::save()
         if( originalExits.value( DIR_SOUTHEAST )->destination != se->text().toInt() ) {
             pR->setExit( se->text().toInt(), DIR_SOUTHEAST );
         }
         if (pR->hasExitStub(DIR_SOUTHEAST))
             pR->setExitStub(DIR_SOUTHEAST, false);
         if (weight_se->value())
             pR->setExitWeight( QStringLiteral("se"), weight_se->value());
         else
             pR->setExitWeight( QStringLiteral("se"), 0);
     } else {

  •    if( originalExits.value( DIR_SOUTHWEST )->destination > 0 ) {
    
  •    if( originalExits.value( DIR_SOUTHEAST )->destination > 0 ) {
    

             pR->setExit( -1, DIR_SOUTHEAST );
         }
         if (stub_se->isChecked() != pR->hasExitStub(DIR_SOUTHEAST))
             pR->setExitStub(DIR_SOUTHEAST, stub_se->isChecked());
         pR->setExitWeight( QStringLiteral("se"), 0);
         pR->customLinesArrow.remove( QStringLiteral("SE") );
         pR->customLinesColor.remove( QStringLiteral("SE") );
         pR->customLinesStyle.remove( QStringLiteral("SE") );
         pR->customLines.remove( QStringLiteral("SE") );
     }

This error is also present in the development branch when a whole series of commits were ported across in commit-11b9331133208ea70097dc805ebae8e1397dc58e (from 2015-08-15 22:15:39).

Given that this bug has been present for 1.5 to 2 years I guess it hasn't hit too many people, and it can be worked around by setting/clearing a room's south-east exit with a lua command. OTOH it is straightforward to correct with a low danger of unwanted side effects so could be done quickly when possible IMHO.

Launchpad Details: #LP1676086 Stephen Lyons - 2017-03-25 20:33:58 +0000

Getting Seg. Faults from dangling TEvent pointer

#105 Has introduced a problem with TLabels assigned a setLabelClickCallback() from lua scripts when only two arguments are provided. The higher number arguments are used to construct a TEvent in that Lua method but the empty one that gets made when there is nothing to put into it goes out of scope leaving the pointer to it's address to be called when the associated label is clicked upon.

Windows Installer

This is for any comments/enhancements/things breaking on the windows installer.

Need a getGridMode() function

For some inexplicable reason getGridMode() was never made, and so now we have no obvious way of calculating from a script how many grid areas has a map got.

Launchpad Details: #LP1256592 Vadim Peretokin - 2013-12-01 02:01:06 +0000

OSX Yosemite major graphical bugs.

I just installed mudlet on OSX Yosemite and I'm having a few visual issues:

  • After loading the main window the first attempt at text entry (e.g., hitting any key while the text field is highlighted) results in the entire window repositioning itself, generally towards the center of the screen. This jump is drastic.
  • All of the buttons on the bottom right will disappear after the position jump. They will still exist, and you can still click on them, but they are entirely invisible.
  • After the initial jump it doesn't tend to happen again, except for when you wrap the text field (which resizes the text field). When this happens the text field successfully resizes, but the entire window will alternate between jumping up or down on the screen by about 100-200 pixels.
  • When full screen is engaged, any of these jumps will maintain the full desktop state for the window, but resize the visual interface to be much smaller. The result of this is simply a black screen around the interface.

Script errors are causing blank lines in the main console

If your scripts have errors there will be lots of blank spaces inserted in the main console when using the development branch.

Responsible commit for this is e5b832b. It seems like it's not checking if errors should be echoed to the main screen before dropping a blank line in - I'll submit a PR.

Launchpad Details: #LP1678195 Vadim Peretokin - 2017-03-31 15:07:13 +0000

Tab completion focus bug (OSX Mudlet 2.1)

It seems as if my build of mudlet often gets into a state where the tab key both issues a tab completion call AND changes the focus away from the command line text field. This is not always the case, but it is more often than not.

Steps to reproduce:

  1. ensure that vialXXXXX or somesuch is in the buffer
  2. Place cursor in command line
  3. type 'drop v '
    Actual results:
    Only one tab completion appears and typing cannot resume until the command line is clicked on
    Expected results:
    another tab completion is suggested and typing can resume

MXP: no <support> tag

In MXP it is required for the Client to respond to a query from the server with a response, listing the actively supported tags.

A server would use this information to only display supported tags to the client. You need to implement this, as you are not implementing some other standard tags as of now (namely the text formatting stuff).

Unfortunately there is no standard way of naming the items in the response, so for comparison ...

this is what Mushclient sends back:
Unterstuetzte Tags (MXP SUPPORT):
+c, +v, +u, +b, +p, +a, +h, +i, +br, +ol, +em, +li, +ul, +hr, +pre, +afk,
+mxp, +img, +var, +html, +head, +send, +user, +samp, +high, +font, +pass,
+bold, +body, +title, +color, +reset, +strong, +option, +c.fore, +italic,
+c.back, +a.href, +version, +mxp.off, +img.src, +support, +password,
+username, +xch_page, +a.xch_cmd, +send.hint, +font.back, +send.href,
+underline, +color.back, +color.fore, +a.xch_hint, +font.color,
+send.prompt, +font.bgcolor, +font.fgcolor, +img.xch_mode, +send.xch_cmd,
+send.xch_hint, +recommend_option

and this is what CMUD3 sends back:
Unterstuetzte Tags (MXP SUPPORT):
+dl, +sbr, +h, +color, +dest, +i, +user, +font, +var, +relocate, +br, +v,
+h4, +em, +bold, +u, +a, +h2, +h3, +style, +high, +nobr, +tt, +ul,
+reported, +h5, +h1, +image, +password, +version, +strong, +dd, +li,
+music, +xch_page, +c, +frame, +s, +username, +ol, +xch_mudtext,
+strikeout, +support, +b, +p, +stat, +sound, +h6, +small, +send, +gauge,
+expire, +underline, +strike, +report, +hr, +dt, +xch_pane, +pre, +pass,
+img, +italic

Launchpad Details: #LP853389 xtian - 2011-09-18 18:05:47 +0000

XML importer stops importing on the escape character

The XML importer (for importing packages or loading profiles) chokes on the escape character (0x1B) and does not load anything after, thus corrupting scripts that include it.

Attached is a test alias that demonstrates the problem.

Launchpad Details: #LP1397594 Vadim Peretokin - 2014-11-29 20:35:01 +0000

Allow only foreground or only background in color triggers

Color triggers right now enforce a foreground and a background color. If the user changes their default Mudlet background color to a custom one, both triggers that only want the foreground color will fail, and it will be impossible to adjust them to the custom color as well.

Launchpad Details: #LP1143209 Vadim Peretokin - 2013-03-04 01:11:02 +0000

Linux AppImage version has no sound

The current Linux AppImage-based Mudlet can't play sound on Ubuntu - gstreamer isn't bundled by it nor are any of the gstreamer audio plugins.

linuxdeployqt doesn't care about non-qt libraries (probonopd/linuxdeployqt#96) so we'll need to patch the build script up ourselves.

Trouble is figuring out which GStreamer .so's are needed for sound support and also patching GStreamer to load them from a different location.

Launchpad Details: #LP1676372 Vadim Peretokin - 2017-03-27 10:45:51 +0000

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.