Releases: icewolfz/jiMUD
Releases · icewolfz/jiMUD
0.19.0
- Fixed:
- Code editor: Virtual area editor:
- Fixed infinite loop when building terrain and state data
- Code editor: Virtual area editor:
- Changed:
- Linux 32bit is no longer supported
- Update electron 17.3.1 to 19.0.7
- Update electron-updater 4.6.5 to 5.0.5
- Update better-sqlite3 7.5.0 to 7.5.3
- Update moment 2.29.2 to 2.29.3
- Update mathjs 10.4.2 to 10.6.4
- Update markdown-it 12.3.2 to 13.0.1
- Update fs-extra 10.0.1 to 10.1.0
Note: Linux 32bit no longer supported
0.18.1
- Fixed:
- Character manager: Fix name list not scrolling
- Changed:
- Update electron 17.0.1 to 17.3.1
- Update @electron/remote 2.0.4 to 2.0.8
- Update fs-extra 10.0.0 to 10.0.1
- Update yargs-parser 21.0.0 to 21.0.1
- Update mathjs 10.1.1 to 10.4.2
- Update monaco-editor 0.32.1 to 0.33.0
- Update moment 2.29.1 to 2.29.2
0.18.0
- New:
- New speed path system, adds option to group by amount of commands, and the delay between each group
- Preferences:
- Delay between path commands The amount of milliseconds between sending of path commands for speed paths.
- Amount of path commands to send the # of commands to send between speed path delay
- Speedpaths:
- Echo echo each command to the screen as they are sent
- Parsing of speed paths now allows you to use ( ) or { } to group a command, eg !2(n;w) would send n;w twice
- Character manager: Notes field has been added to allow you to add notes that can be edited, they are saved directly to a file in character folder named character.notes, by saving directly to file it avoids keeping large amounts of text loaded into memory
- Add %charcomment(text) to allow appending comments to character notes or getting notes field
- Add %charnotes to allow setting notes or getting notes field
- Profile manager: double clicking an item in treeview will now toggle expand or collapse state
- Fixed:
- Try to make sure window size is sent to the mud more accurately
- Optimize debounce systems so it is cleaner and runs less
- Mapper: Default to 1 if Directions to send is ever less then 1 so auto walk path sent always
- Remove extra
Enable Double Parameter Escaping
from preferences dialog. - Immortal tools: fix minor bug in remote drag and drop download
- Profile manager: Fixed issue when sub item group was selected and profile option changed that would cause treeview to replace sub item with profile
- Changed:
- Profile manager: sort profiles by priority sort if set, then alpha always, ignore index as profiles are stored by name
- Update electron 16.0.8 to 17.0.1
- Update monaco-editor 0.31.1 to 0.32.1
- Update fswin 2.21.1015 to 3.22.106
- Update electron-updater 4.6.1 to 4.6.5
0.17.7
- New:
- Add #COMMENT does nothing, used to create quick comments in scripts
- Add #NOOP does nothing, will expand arguments and execute any functions but return nothing to the screen
- Add #UNACTION same as #UNTRIGGER
- Add #TEMP create a temporary trigger
- Add %clip(string) return or set text on clipboard
- Preferences:
- Add Ignore Eval Undefined Will cause undefined results to be ignored if enabled, else it will be converted to a string and the word undefined displayed
- Add Allow Comments From Command Allow inline and block comments from the command input
- Add Inline Comment String The 1 or 2 character string for inline comments
- Add Enable Inline Comment disable inline comment support
- Add Block Comment String The 1 or 2 character string for block comments, ending block comment is string reversed
- Add Block Inline Comment disable block comment support
- Add Save Trigger State Changes Add option to control if state changes are saved every time they change
- New Advanced sub page for all profile related preferences.
- Add Group profile saves and Group profile save delay to allow grouping of profile saves
- Add Return newline on empty value Return new line if processed item value is empty
- Triggers
- Add
Loop Expression
trigger type - Add
ReParse
andReParse Pattern
sub type triggers - Add
Manual
sub type, can only be fired using #SET command - Add
Wait
sub type trigger - Add
Duration
sub type trigger - Add
Skip
sub type trigger - Add
Loop Lines
sub type trigger - Add
Loop Pattern
sub type trigger - Add
Within Lines
sub type trigger
- Add
- Add #TRIGGER and #CONDITION short options for type=value
- Fixed:
- Added type checks to #ADD and #MATH to ensure the resulting value is a number
- Added type check to #CASE and #REPEAT to ensure the value is a number
- Fixed bug in multi state triggers when sub trigger is disabled
- Fixed issue where temp triggers or re-parse type triggers would be double executed if the pattern was in trigger value
- Fixed issue with temp alarms and re-parse issues with #SET fire state setting
- Fixed Disable trigger on error when a sub trigger errors
- Only update button bar is buttons have been changed
- Only update context menus when menus have been changed
- Fixed bugs in #GAG
- When context menu item, button from bar, or url is clicked focus on command input if Focus to command input on click enabled
- Profile manager: Add new functions and commands to editor highlight and documents
- Changed:
- Triggers, Buttons, Macros, Context, and Aliases values will now be ignored if empty, thus not creating blank lines, you can use a value of ${cr} to send a blank line
- #ADD will default to 0 if variable is not defined and define variable
- Update electron 16.0.7 to 16.0.8
- Update @electron/remote 2.0.1 to 2.0.4
- Update mathjs 10.1.0 to 10.1.1
0.17.6
- New:
- Add %alarm("name|pattern", setTime, "profile") return or set the time for alarm with name or matching pattern
- Add #FIRE text Send text to trigger system as if received from the mud, triggering matching triggers with out displaying to screen and effecting current last line
- Add #STATE name|pattern state profile Set the state of a trigger
- Add #SET name|pattern state value profile Set the fired state of a trigger
- Add #CONDITION name|pattern {pattern} {commands} options profile create a new trigger sub state, if name or pattern is omitted state will be added to last created trigger
- Add #CR Send a blank line to the mud
- Add #SEND Send file to mud line by line pre-pending and appending supplied prefix and suffix to each line as if sent from command input, if not a valid file sent as text if from command input
- Add #SENDRAW Send raw text or file directly to mud with out parsing or echoing to the screen appending a newline if needed
- Add #SENDPROMPT Send raw text directly to mud with out parsing or echoing to the screen with no appended newline
- Add #UNVAR name Delete variable
- Add #ACTION same as #TRIGGER
- Add #CHARACTER send current character to the mud, without echoing to the screen
- Add #SPEAK text speak text using text to speech systems
- Add #SPEAKSTOP stop speak and clear all queued
- Add #SPEAKPAUSE pause speaking
- Add #SPEAKRESUME resume speaking
- Add %state("name|pattern", "profile") Returns the current trigger state of the trigger given by the name or pattern, if no profile it will search all enabled profiles until match found
- Add %defined(name,type) is item defined, similar to isdefined
- Add %isnull(value) return if value is null or not if value omitted returns null
- Add %stripansi(string) Strip all ansi codes from strip
- Mapper: Add
Edit > Reset map
to allow users to delete and create a fresh map file - Profile Manager: Parse style now has basic code folding
- Multi State triggers - Allows you to create multi line or conditional triggers
- Full profile manger support to add, edit, reorder, delete each state
- Fixed:
- Profile manager:
- Profiles are now sorted according to the Profile manager sort order and Profile manager sort direction settings like items
- Fixed context menu editor icon sample width
- Fixed #TRIGGER name syntax not working
- Fixed #UNTRIGGER failing when trying to remove when only 1 profile exist
- Fixed extra new lines being added when parsing text in the middle of triggers
- Fixed temporary triggers and #UNTRIGGER some times removing trigger from wrong profile
- Fixed issue with client.echo, client.sendCommand, and client.sendBackground when used in script type and passing non string values
- Fixed Trigger alarms to be more accurate and not double fire some times
- Fixed Trigger alarms always being stuck in wildcard mode, should require * explicit to execute wildcards
- Fixed auto connect when loading same character again
- Fix profile loading issues for #TRIGGER, #UNTRIGGER, #EVENT, #UNEVENT, #BUTTON, #UNBUTTON, #ALARM, #ALIAS, #UNALIAS
- Fix parsing of some arguments for #TRIGGER, #UNTRIGGER, #EVENT, #BUTTON
- Fixed %ansi(style,fore,back) for bold,color making it backgroound instead of bold fore color
- Fixed %time(format) not being parsed
- Profile manager:
- Changed:
- Display: split bar highlights when mouse over and when being moved
- #TRIGGER add/update message no longer contains name or pattern to prevent trigger from accidentally triggering
- Reformat functions doc layout
- Update electron 16.0.6 to 16.0.7
- Update font-list 1.4.3 to 1.4.5
- Update mathjs 10.0.2 to 10.1.0
- Update better-sqlite3 7.4.6 to 7.5.0
- Update chokidar 3.5.2 to 3.5.3
0.17.5
- New:
- Add %escape(string) escape all characters in string if escaping is allowed and if those characters need escaping
- Add %unescape(string) strip escape characters from string if escaping is allowed and those characters are enabled
- Add $selectedword, $selword, $selectedurl, $selurl, $selectedline, $selline, $selected, $character, $copied for direct access in expressions
- Add versions of most predefined functions to the expression system to allow for inline usage using %eval or in math, note this is not always the same as full expanded form of ${function(args)} as that will process in the command parsing system while when used with eval or math expressions it will be parsed with the expression engine instead
- Preferences:
- Add Profile to select on load pick which profile is auto selected when profile manager opened
- Add Expand selected profile on load auto expand selected profile when profile manager opened
- Fixed:
- Input parser:
- Correctly escape function arguments when quoting arguments with respect to scripting quote settings
- Use custom escape character when splitting function arguments with quotes
- Fix escaping of command stack when used in a path, after a function, or alias
- Fix issue when parsing command arguments ending with a newline
- Fix dice when using fudge dice
- Fix dice when using #d% returning 1d100 instead of a % of 0 to 1
- Fix parsing of sub context menus
- Fix $selectedword, $selword, $selectedurl, $selurl, $selectedline, $selline, when used from command line to use mouse position to correctly get the selected word,line, or url
- Fix #CW, #COLOR, #HIGHLIGHT trigger creation syntax to use set command character instead of hard coded #
- All #command error messages now correctly use the set command character when displaying syntax
- Make #VARIABLE respect strip quote settings when storing value
- Display: issues with overlays and Unicode background selection sizes
- Fixed code editor not being correctly restored if already open
- Help: Fixed command page links
- Input parser:
- Changed:
- Error messages for commands and functions will add name to better understand where the error is
- Update markdown-it 12.3.1 to 12.3.2
0.17.4
-
New:
- Add #FREEZE Scroll lock the display, if state is omitted it will toggle the scroll lock, if state is 0 or false it will disable scroll lock, if state is anything else it will lock the scroll back
- Add #CLR Add blank lines to clear the screen ignoring any current trailing blank lines
- Add %begins(string1,string2 return true if string 1 starts with string 2
- Add %ends(string1, string2) returns true if string 1 ends with string 2
- Add %len(string) returns the length of string
- Add %pos(pattern,string) returns the position of pattern in string on 1 index scale, 0 if not found
- Add %ipos(pattern,string) returns the position of pattern in string on 1 index scale, 0 if not found ignoring case
- Add %regex(string,regex,var1,...,varN,varN+1) test if string matches the regex pattern, if found returns the position of the match, starting at 1 else returns 0, var1 ... varN are optional variable names to store any sub pattern matches, varN+1 is the length of matched string]
- Add %trim(string) Returns the string without any spaces at the beginning or end
- Add %trimleft(string)` Returns the string without any spaces at the beginning
- Add %trimright(string) Returns the string without any spaces at the end
- Add %bitand(number1,number2) returns the bitwise AND of the two numbers.
- Add %bitnot(number) returns the bitwise inverse of the given number.
- Add %bitor(number1,number2) returns the bitwise OR of the two numbers.
- Add %bitset(i,bitnum,value) Set or reset a bit within a numeric value and return the new numeric value. If value is omitted, 1 (true) is used to set the bit. To reset a bit, the value must be zero.
- Add %bitshift(value,number) shifts the value the num bits to the left. If num is negative, then the value is shifted to the right.
- Add %bittest(i,bitnum) Test a bit within a numeric value and return true if it is set, false if it is not set. bitnum starts at 1.
- Add %bitxor(number1,number2) returns the bitwise XOR of the two numbers.
- Add %number(s)) convert a numeric string to a number.
- Add %isfloat(value)) Returns true if value is a valid floating point number
- Add %isnumber(s)) true if s represents a valid number.
- Add %string(value)) converts value to a string. Quotes are added around the value.
- Add %float(value)) Returns value as a floating point number.
- Add %isdefined(name) Returns 1 if a variable is defined, 0 if undefined
- Add noEcho argument for client.sendBackground and client.sendCommand to allow hiding from display
- Add $character to return current name from GMCP status info if possible and falls back to character manager login name or empty string
-
Triggers:
- Add support for regex name capture that work similar to alias named params
- Add
Pattern
andCommand Input Pattern
types to support zMUD/TinTin type pattern matching
- Help: Add more known issue for advanced editor
- Add save image as, copy image, copy image link to MXP image context menu
- Input parser: Add $var user variable style support
- Profile Manager:
- Alias params are now highlighted with an error if invalid
- Parse style is now syntax highlighted using special characters defined from options
-
Preferences:
- Add Enable Double Parameter Escaping to enable/disable doubling up of the parameter character
%
to escape as well as using escape character, default to off as there is an escape system - Parameters character allows you to change the % character for parameters
- Enable Parameters disable parameter system
- N Parameters character allows you to change the $ character for named parameters
- Enable N Parameters disable N parameter system
- Show lag in title Display lag in title bar
- Add Enable Double Parameter Escaping to enable/disable doubling up of the parameter character
- Add Parse caption to parse context menu captions using the command parser to allow predefined variables or expressions
-
Fixed:
- Updated README to update build requirements
- Display:
- Fixed bug with scroll lock auto scrolling when at bottom of display
- Fixed bug with scroll lock being lost when screen is empty
- Fixed bug with scroll lock being lost when split view is enabled
- Advanced editor:
- Fixed
Formatted as commands (No echo)
andText as commands (No echo)
echoing to the display - Fixed context menu
- Fixed background color codes being wrapped in extra %^
- Clean up extra codes between 2 resets blocks
- Fixed Bold white background color to use RGB555 color code correctly
- Fixed
- Profile Manager:
- Trigger tester still did not correctly apply Prepend triggered line preference
- Fix trigger type select width
- Focus on value editor on select
- Fix out of sync closing when asking to save/apply over changed file
- Fix erroring when trying to delete a profile that did not exist
- Fixed alias named arguments not being directly accessible in scripting type
- Fixed full screen not always being restored on load
- Fixed maximized state not being correctly restored on load if window was closed minimized
- Input parser:
- Detect newlines when using {} block formatting for multi line blocks when possible
- Skip alias invalid named params
- Fixed number parsing in places not accepting +#, as +# is a valid positive number and converted to simple #
- Fixed ignore spaces around number arguments for functions and commands
- Fixed escape characters following parameters, eg $\ or %\ where not correctly parsing escape characters
- Fixed not escaping command special character
- Fixed do not escape disabled special characters
- Fixed command character not being correctly replaced with custom character in some places
- Fixed saving nested loop variables as user variables
- Fixed bug when splitting quoted strings
- Fixed %dice(xdy+n) not correctly parsings argument format
- Fixed %if(expression,true,false) not erroring if missing false argument
- Fixed #variable should not evaluate the value to allow use of raw strings as needed, eg #va test {3+5} should store 3+5 not 8, if you want the evaluated value use #var test ${3+5} or #va test {${3+5}}
- Fixed #variable throws an error now when invalid variable names are used
- Fixed Select control selected color text
- Fixed Watch for profile changes not always being cleared when client closed
- Docs: Fixed i..z description
-
Changed:
- Revert 0.17.1 hack for child windows as electron seems to have fixed the bug
- Update tinymce 4.8.3 to 5.10.1
- Update electron 16.0.4 to 16.0.6
- Update font-list 1.4.2 to 1.4.3
- Update mathjs 10.0.0 to 10.0.2
- Update better-sqlite3 7.4.5 to 7.4.6
- Rearrange General to reduce scrolling
- Increase character manager dialog height to remove scrolling when possible
- Update markdown-it 12.3.0 to 12.3.1
0.17.3
- New:
- Add #cw colors all words matching current trigger pattern
- Add #pcol color text based on start and end positions
- Add #highlight make text bold or brighter color if already bold
- Add #color {pattern} fore,back,bold profile pattern and profile arguments to allow for quick trigger creation
- Add %x1..%x99 predefined variable support, this variable will be replaced the matching groups start and end indexes, use this.indices or client.indices in script type to access
- Add %ansi(style,fore,back) function to return ansi formatted string
- Add %i predefined variable
- Add %j..%z predefined variables for nested looping support
- Add %random predefined variable and function
- Add %char(i) return ASCII character for i
- Add %ascii(string) return the ascii value for first letter in string
- Add %case(n,value1,value2,value3...) return the nth value of arguments, from 1 to last argument
- Add %switch(expression1,value1,...expressionN,valueN) return value of the first expression that evaluates to true
- Add %if(expression,true-value,false-value) evaluate expression and return true or false value
- Add #break break loop
- Add #continue skips to the next loop iteration
- Add {} grouping support to #nnn argument
- Add #-nnn repeat commands NNN number of times but with a reverse counter
- Add #if if expression is true execute true command, if false and false commands supplied execute them
- Add #case return command from list based on the value of index
- Add #switch execute each expression until one returns true, if none are true and an else command supplied it is executed instead
- Add #loop Execute the commands a number of times given by the range
- Add #repeat repeat commands number of times returned by expression
- Add #be short version of #beep
- Add #add Add value to variable named name, if current value is non numeric an error will be displayed
- Add #math Set value to variable named name
- Add #variable Set, get, or display all user set variables
- Add #until Execute commands until the expression evaluates to TRUE
- Add #while Execute commands as long as expression evaluates to TRUE
- Add [#forall](docs/commands.md#repeating-and-loops loop stringlist, in the format of a | delimited string and set %i as each word)
- Add #evaluate Evaluate expression and display to screen like show
- Add #print Display text to the screen and append newline, and the display text will not fire triggers
- Add #printprompt Display text to the screen, and the display text will not fire triggers
- Input parser:
- Add support to expression system for string comparison
- Add support to expression system for string concat using + not just concat function
- Add user variable support to expression system, can access in scripting using client.variables['NAME'] or client.variables.NAME
- Add proper loop nesting using %i..%z variables for nested loops
- Preferences
- Add Watch for profile changes when enabled will watch for profile changes
- Add On profile change do what to do when a profile is changed when
Watch for profile changes
enabled - Add On profile deleted do what to do when a profile is deleted when
Watch for profile changes
enabled - Add Open ShadowMUD help in web browser to open ShadowMUD in child window or web browser
- Help: Add left navigation tree to allow easier navigation besides the top navigation drop down, due to new command help pages to prevent large scroll when wanted
- Fixed:
- #nnn
- Fixed being double parsed
- Fixed issues with trailing newlines with nested loops
- Fixed format error checking to accept only numbers
- Fixed window size being sent to the mud when status display is hidden/shown
- Fixed bug in #trigger command and adding to profile not correctly finding if one exist already
- Fixed bug in #event command and adding to profile not correctly finding if one exist already
- Fixed bug in #wait to allow parsing of argument to allow for %i and expressions
- Profile Manager: trigger tester did not correctly apply Prepend triggered line preference
- Fixed bug with File > Exit when profile manager open and should not close
- Fixed bug in #color and #cw not correctly parsing profile argument
- Input parser:
- Fixed - being lost after %
- Fixed # being lose if %# had a -, * or % following it
- Fixed corrupted stack after trigger errors
- Fixed issue with $named argument format
- Fixed named arguments not working
- Fixed bugs in repeatnum not having correct name in all places
- Fixed how alias unused arguments are appended
- Fixed alias arguments values not correctly parsing before being used
- No longer parse #commands if in a command/function argument as it would break inline parsing in most cases
- Fixed execution of buttons and context items with broken parsing stacks
- Fixed buttons and context not having error trapping code that broke cleanup
- Status Display: Fixed resize bar conflicting with profile manger resize bar due to theming
- Help:
- Fixed crashing issue when opening external links
- Fixed changelog links not working
- Fixed issue with modal child windows not being set to correct parent window
- #nnn
- Changed:
- Remove %named argument support from docs as it never was supported and easier to just remove it
- #nnn counter is now 1 based when using %i..%z instead of 0 based
- Allow group by ( and ) in command argument parsing
- Update markdown-it 12.2.0 to 12.3.0
- Update monaco-editor 0.30.1 to 0.31.1
- Update bootstrap 3.3.7 to 3.4.1
- Update datatables from 1.10.18 to 1.11.3
- Update bootstrap select 1.13.17 to 1.13.18
- Help: Command help has been redesigned and commands will slowly have individual help pages
0.17.2
- New:
- Add #color color last added line
- Add #window to open/show supported windows
- Add #testunicodeemoji to display unicode emoji symbols
- Preferences
- Add Who is on? tp open who in child window
- Add Disable trigger on error to disable a trigger if an error happens, either from pattern or scripting, enabled by default to prevent spamming of broken trigger
- Add Prepend triggered line disable the fix to prepend the triggered line as %0,$0, or %{0} to return to previous usage
- Add %{color(fore,back,bold)} function to return color codes
- Add %{zcolor(fore,back,effect)} function to convert zmud/cmud style color codes into supported jiMUD codes
- Status Display: Add ability to resize
- Triggers: Add Trigger on raw option to match on raw line including any ansi escape codes
- Themes: Add two new themes, updated preference docs to mention custom theme folders and customizing docs to explain themes
- Clean-large: scaled version of clean theme, 150% larger
- Clean-extra-large: scaled version of clean theme, 200% larger
- Fixed:
- Mac: Fix window menu item on main bar
- Display:
- Fixed unicode combining character selection issues
- Fixed unicode selection width when font style is italic
- Fixed mouse cursor to use standard text cursor
- Fixed more unicode surrogate/variant pair selection issues
- Fixed bug in MXP expire not clearing send/link end tag
- Fixed split view resize when horizontal scroll bar visible
- Ansi Parser: Fixed bug in MXP expire tag not correctly expiring links on same line that come before the tag
- Fixed bug with #gag not working from command line
- Fixed bug with #gag and number argument not correctly working
- Triggers:
- Fixed bug with regex trigger caching
- Fixed bug with %0, ${0}, $0 not always return full raw line of text Warning: this may break some triggers
- Fixed bug with verbatim not error catching
- Fixed bug when client was maximized then minimized and not correctly sending the new size to the mud
- Focus on main window when profile manager, advanced editor, or child windows closed
- Fixed bug that would not correctly clean up when window closed by close button
- Fixed bug where window would not correctly save open state when main window closed
- Advanced Editor: Fixed bug with context menu and colorizing selected text
- Status Display: Fixed some monster icon positions
- Backup: Fixed importing of Show Script Errors setting
- Changed:
- Expand #testmxpexpire to test same line expiring
- Use resize cursors instead of column resize cursors for resizable areas
- Update electron 16.0.1 to 16.0.4