Like clockwork, a new Mudlet release is here with a ton of improvements across the board.
Enhancement to multiplaying
A feature that'll come in quite handy where MUDs allow you to play multiple characters at once - you can now have one profile talk to other profiles in your code. A new function raiseGlobalEvent() allows you to raise events from one profile that will be received in all other open profiles.
Mudlet now gained an option to display runtime Lua errors in the main display, previously available in the Errors view only:
This would be an option familiar to MUSHclient users. To enable it, enable "Echo Lua errors to main console" in the "Main display" preferences.
If you defined your function that you used elsewhere in a trigger/alias/etc, and it had an error, you'd be met with a rather unintuitive error message like this:
This has been fixed now, and the error message will include the original script where the error comes from:
A new option "Add timestamps at the beginning of log lines" allows you to log with timestamps:
Additionally, timestamps will also be copied if you have the timestamps view enabled in your main window and use copy or copy to HTML.
You can now ctrl+click on a line to select it entirely.
Ctrl+S (Cmd+S on macOS) has now been enabled as a shortcut in the trigger editor - so you don't have to hit that 'Save Item' button every time.
Similarly, Ctrl+Shift+S will now save your entire profile to disk.
Key folders have now gotten their own colour in the trigger editor: pink.
The mapper now has anti-aliasing, better room, and exit sizes by default so new maps look a lot more like what they should:
Having been thoroughly tested on many MUDs, GMCP is now enabled by default on new profiles - if your game supports it, Mudlet will enable and make use of it.
You can now raise a label or a miniconsole above all others with raiseWindow(), or lower it below all others with lowerWindow(). This can come in pretty handy when creating your Mudlet GUIs. Remember that the default Z-order of elements is the order they are created in, with newer labels/miniconsoles coming on top.
getMousePosition() has been added, allowing you to know the mouse position (within Mudlet only) - this'll help enable make dragging UI elements much easier.
Try it out for yourself on Mudlet 3.1.0.
Useful applications of this include showing a help or a welcome menu as soon as your package is installed or removing your UI and resetting the borders back to default for your GUI package.
In addition to this, more fine-grained events are also available: sysInstallPackage, sysInstallModule, sysSyncInstallModule, sysLuaInstallModule, sysUninstallPackage, sysUninstallModule, sysSyncUninstallModule, and sysLuaUninstallModule.
You can now tell when a particular sound has finished playing with the sysSoundFinished event. In addition to this, the limit on playing maximum 4 sounds simultaneously has been removed.
We've been modernising Mudlet heavily. The Linux continuous integration environment has been updated to Ubuntu 14.04 LTS and we've introduced automated macOS installer creation - this means anyone contributing to Mudlet can get a macOS Mudlet install for done for them automatically! This makes it much easier to code up a feature, submit it for inclusion to Mudlet, and get test versions of it in return for letting your friends test it.
Communi, the IRC library included with Mudlet, has also been upgraded to the latest 3.5.0 release.
We've put a lot of work into modernising Mudlets C++ codebase: the project is now using C++11, Qt 5.6, and clang-format automated code styling. This enables Mudlet to make use of really nice C++11 features like the auto keyword (letting the compiler deduce the type), ranged-based for statements (far more readable than iterators), and lambda functions (using a function inline - especially nice for small Qt slots). All of the code has been upgraded to use auto and range-based foralready, and most of it has been through the automated code styling - so if you're curious about playing with Mudlets code using modern C++, have a look!
We've started on automated testing of Mudlet by robots - they'll help raise the alarms should we break anything by accident. Teaching the robots doesn't require any programming experience, so if you're interested in helping us out, join us on Discord.
We've now moved issue tracking to Github and setup a PR-based workflow. In addition to this, mudlet-lua - the Lua counterpart to C++ in Mudlet - has been merged back with the main repository. All of these changes reduce the overhead of developing Mudlet and make it a more pleasant experience.
A list of all the things changed in Mudlet 3.1.0 since 3.0.1, sans API changes which are detailed down below.
- added a new option "Echo Lua errors to main console" to "Main display" preferences, enabling you to see any runtime errors with your script right in the main window
- enabled MUDLET_VERSION_BUILD environment variable to set to set the build version information
- fixed a crash if you tried to copy a map to a profile that didn't have one before
- fixed a small memory leak that would happen when you edited the regex of a trigger/alias
- fixed hideWindow() & showWindow() to work with userwindows
- fixed logs breaking if you changed from HTML to plain text or back while it was on
- fixed main toolbar buttons getting enabled if you clicked 'Cancel' in the connection dialog
- fixed many 'chose' instead of 'choose' typos
- fixed memory leak when copying maps between profiles
- fixed scrpt packages typo in settings
- fixed userwindows not being openable again after you've closed them with X
- fixed xml import/export getting map room/exit sizes wrong sometimes
- function parameters accepting QStrings have been tightened to QString constant references
- improved a lot of commented-out code and cruft has been cleaned in core code
- improved default mapper room size is now 5, exits 10
- improved errors defined in a script that's called by an alias/trigger/etc will now also report the scipt name
- improved log button now has an X over it when logging is enabled to disable buttons
- improved QString handling to be more efficient with introduction of QLatin1String and QStringLiteral
- 6K All Categories
- 3K Everything Achaea
- 1.5K North of Thera
- 21 Archives of the Terraformer
- 246 The Matsuhama Arena
- 873 The Golden Dais of Creation
- 283 The Scarlattan Theatre
- 145 The Blank Canvas
- 1.9K Getting Help
- 392 General Questions
- 251 Quick Class Questions
- 1.3K Tech Support
- 300 Client Help
- 459 Curing Systems and Scripts
- 829 Off-Topic
- 250 The Wander Inn
- 579 The Universal Membrane
- 286 Class Discussions
- 286 Individual Class Sections
- 20 Alchemist
- 9 Apostate
- 9 Bard
- 29 Blademaster
- 9 Depthswalker
- 12 Druid
- 4 Infernal
- 20 Jester
- 19 Magi
- 31 Monk
- 10 Occultist
- 7 Paladin
- 7 Priest
- 28 Runewarden
- 18 Sentinel
- 26 Serpent
- 19 Shaman
- 9 Sylvan