Updates

From MINR.ORG WIKI
Revision as of 10:35, 4 May 2022 by Rickyboy320 (talk | contribs) (11.0 - Events & Social)

A log of changes since the 10.0.0 Minr Scripts 2 + 1.13 update.

Contents

Upcoming

12.0 - Commands Overhaul

11.0 - Events & Social

11.0.39 (2022/05/04)

Scripts

Added new methods to the Entity type:
Boolean addPassenger(Entity passenger)​
Void ejectPassengers()​

Maps

Speedrun score is now no longer awarded for nullified times (--:--,--).

Commands

Updated hide commands:
Added "/hide nonparty" to hide everyone but your party.​
Added "/unhide party" to unhide your party.​
The hidden status of party members will automatically update with your party. If the party is unhidden, and someone newly joins the party, they will be visible.​
Conversely, if someone leaves the party, they may be hidden when "/hide all" or "/hide nonparty" has previously been used.​
Hidden status of individual party members can still be overridden with /hide <player>.​

Bugfixes

Fixed /unhide <player> not working when /hide all was used.
Fixed clicking signs sometimes triggering twice.


11.0.38 (2022/03/31)

Bugfixes

Fixed Speedrun Score not live-updating.


11.0.37 (2022/03/31)

Commands

Renamed "comparing" to "sortby" in /checkpoint completed, /checkpoint uncompleted, /challenge completed and /challenge uncompleted.
Added "comparing" modifier to /checkpoint completed, /checkpoint uncompleted, /challenge completed and /challenge uncompleted to compare your completion status with another player, or your party.
Example:
"/checkpoint completed comparing rickyboy320" will show the overlapping completions of you and rickyboy320.​
"/checkpoint uncompleted comparing party" will show the overlapping un-completed status of you and your party.​

Maps

Speedrun score is now also awarded for hidden FFA maps that have a non-zero point value. (For example, ANHUR 2 and 3, the later installments of DOOM-ED).

Challenges

Challenge signs now also show completion status upon left click.

Bugfixes

Fixed backup lag at xx:23 by saving relative variables with a different strategy.
Fixed /play (and equivalent) commands not resetting player state when used outside of spawn.


11.0.36 (2022/03/23)

Misc

Added a "Quick warp" spawn compass. It'll show up in your inventory while in spawn.
On right click, it will open a menu that allows you to warp to the given areas in spawn.
Menu can also be opened through /quickwarp or /play.
Updated Cosmetic GUI:
Changed Cosmetic GUI to only show cosmetics you own.
Active cosmetics now have enchanted icons.
When you activate/deactivate a cosmetic the window is now closed.
Cosmetic windows now resize automatically.


11.0.35 (2022/03/08)

Bugfixes

Fixed time & weather being reset to default upon joining a map, incorrectly erasing any time-locks or weather-locks for certain maps.

Scripts

Disabled the following Player methods:
Void setPlayerWeather(String weather)​
Void resetPlayerWeather()
Long getPlayerTime()​
Long getPlayerTimeOffset()​
Void setPlayerTime(Long time, Boolean serverRelative)​


11.0.34 (2022/03/08)

Bugfixes

Fixed knockback being broken due to the 1.18.2 update.


11.0.33 (2022/03/08)

Update

Updated to 1.18.2
Updated all plugins to their latest 1.18.2 versions.

Misc

Checkpoint join signs now show your completion info for the map on left click.

Scripts

The Player type has received a number of new methods:
String getClickedBlockFace()​
String getTargetBlockFace(Int distance)​
Block getTargetBlock(Int distance)​
Entity getTargetEntity(Int distance)​
Boolean hasGravity()​
Void setGravity(Boolean gravity)​
Boolean isGliding()​
String getPlayerWeather()​
Void setPlayerWeather(String weather)​
Void resetPlayerWeather()
Long getPlayerTime()​
Long getPlayerTimeOffset()​
Void setPlayerTime(Long time, Boolean serverRelative)​
Void resetPlayerTime()​
Boolean dropItem(Boolean dropAll)​


11.0.32 (2022/02/23)

Leaderboards

Added completion leaderboard (/checkpoint ranks completion)
Speedrun leaderboard now uses the updated formula as proposed in https://forums.minr.org/threads/speedrun-score-formula-survey.6213/

Commands

Moved speedrun leaderboard to /checkpoint ranks speedrun
/checkpoint uncompleted now no longer shows unassessed maps (like FFA hub, etc).


11.0.31 (2022/01/23)

Update

Updated to 1.18


Commands

/challenge current now shows total number of stages.


Bugfixes

Dots in homes now no longer corrupt the PlayerData.
Dots in challenge names/tags now no longer corrupt the challenge.
Fixed titles not showing up on login for mods/ops.
Fixed another case where titles *could* sometimes detach and lay around.
Script exports now no longer indent the script every time (proper indents).
Fixed checkpoint being set to current stage when unsuspending a challenge, instead of checkpoint being reset to the original checkpoint.
Hexa no longer considers 'UNASSESSED' maps, which causes hub maps to be excluded from hexa.
Nether -> overworld portals no longer scale the coordinates by 64, now back to the vanilla 8.


11.0.30 (2022/01/17)

Bugfixes

Fixed completion messages showing the wrong rank.


11.0.29 (2022/01/12)

Bugfixes

Fixed rotating challenges not expiring upon rotation.


11.0.28 (2022/01/10)

Bugfixes

Fixed repeating challenges not saving and loading properly.
Fixed HC throwing an exception while printing the progress message.
Fixed party serializing, potentially causing PlayerData corruption.
Fixed 'isFirstCompletion' being inverted, causing completion messages to be sent when they shouldn't, and to not be sent when they should.
Fixed hexa not regenerating the map list.


11.0.27 (2022/01/09)

Commands

Chat is now cleared when entering streamermode.


Storage

Database migration to JSON.


Bugfix

/c points Speedrun Score uses Challenge rank instead.


11.0.26 (2021/10/03)

Hardcore

Added HC support for 11.1
Added HC conversion for 11.0 -> 11.1

Bugfixes

Fix PlayerData cache not working.


11.0.25 (2021/08/27)

Events

Added purple comet mode.


11.0.24 (2021/08/14)

Commands

Added /motd command.


Bugfixes

Reset more attributes when resetting (due to clicking checkpoint, etc).


11.0.23 (2021/07/28)

Challenges

Hexa is no longer listed in /challenge uncompleted.


Bugfixes

/return no longer teleports you to basically the same position.


11.0.22 (2021/07/18)

Hardcore

Updated HC to version 11.0.
Updated automatic conversion of HC checkpoints.


11.0.21 (2021/07/10)

Server configuration

Update to 1.17


Bugfixes

/checkpoint restart is now disabled on challenges to prevent exploits.


11.0.20 (2021/07/06)

Bugfixes

Fixed cooldowns in scripts not working.


11.0.19 (2021/07/02)

Discord

Extended verification code lifetime.
Verification codes are now case-insensitive.
Similar-looking characters have been removed (0, O, l, i).


Scripts

Added some commands to the blacklist.
Fixed walk/area/ground scripts triggering before a teleport has taken effect; the target-location script would trigger on the old coordinates.
All world scripts now have an implicit 1-tick cooldown, fixing infinite recursion when teleporting into scripts.


Cosmetics

Increased inventory size.


11.0.18 (2021/05/11)

Server

Upgraded to Java 16


Maps

Added [Quit] signs.
These replace the return to FFA/FFA+/Valley signs ([Join ffa], [Join ffa+] and [Join valley]).


Extra

/spawn now shows a message.
/spawn will now warn you if you use it during a challenge that your challenge is still active.


Bugfixes

Players are now kicked earlier during the shutdown process.


11.0.17 (2021/06/01)

Bugfixes

Fixed mail not being supressed by /block.


11.0.16 (2021/05/12)

Scripts

Added sum() and avg() to Int[], Long[], Float[], Double[].


11.0.15 (2021/05/11)

Maps

New map type system. Now the map types are split into 'Primary', 'Secondary' and 'Tertiary'.
Only one Primary map type can be assigned.
/c maptype primary set <map> <type>
Multiple secondary types can be assigned, but not the primary type.
/c maptype secondary add <map> <type>
/c maptype secondary remove <map> <type>
Multiple tertiary types can be assigned.
/c maptype tertiary add <map> <type>
/c maptype tertiary remove <map> <type>
Some effort of conversion has been applied, but some of the map types may need to be reset.


Bugfixes

Fixed -s showing instead of - in kick messages.
/c cp and /listwarps no longer show empty lists but show a helpful message instead.
Fixed certain ways of exiting maps not clearing your 'current map' and thus preventing you from commands like /call.


11.0.14 (2021/04/25)

Bugfixes

Fixed cosmetics no longer showing their challenge requirement.
Attempted a fix on renamed join messages.
Fix legacy text conversion on signs (use of ampersands for colours).
Fixed Material#getTranslationKey() not working since the previous update.


11.0.13 (2021/04/24)

Chat

Now uses the 'Adventure' chat framework.
Affects all messages sent by Minr, but should not result in noticeable differences.
Some messages now use translatable components, so they show up in the language that is set by the client.
Display names are no longer used in bans / mutes.


Scripts

Scripts now trigger when teleporting into them.


Bugfixes

Fixed 1-day durations being shown as 0 seconds instead of 24 hours.
Prevent server deadlock when shutting down.
Mutes and unmutes did not use the message queue.
Commands now show the error if failing due to an unexpected error, rather than showing the help message.


11.0.12 (2021/03/14)

Cosmetics

Fixed challenge reward titles not saving properly.


11.0.11 (2021/03/10)

Scripts

Commands /c setplayercp, /c setplayersub are deprecated (should not be used) in scripts.


11.0.10 (2021/03/03)

Backups

Backups now trigger once an hour, instead of once every 30 minutes.


Commands

/c info now shows the gamemode for the map for ops.


Bugfixes

Fixed non-adventure gamemode maps invalidating times upon joining it.
Fixed getting healed by timing /c join just right on death.
Fixed backup trying to save already saved items, thus improving performance by reducing the number of items that need to be processed.


11.0.9 (2021/03/01)

Bugfixes

Fixed being able to join the same map with items / effects from the map.


11.0.8 (2021/02/28)

Bugfixes

Fixed being able to join maps with items / effects from other maps.


11.0.7 (2021/02/20)

Bugfixes

Fixed player.getTimePlayed() not returning a sane value: it could go back in time.


11.0.6 (2021/02/18)

Bugfixes

Fixed infinite recursion of expiring prefixes during login.


11.0.5 (2021/02/17)

Bugfixes

A final fix relating to ancient-player conversion resulting in invalid times.


11.0.4 (2021/02/15)

Bugfixes

/training command was not registered, causing it to fail.
Couple of fixes related to old-player conversion resulting in invalid times.
Fixed players not having a valid timer when respawning at a cp0 in a no-cp stretch.
Fixed timers not being started in soullink challenges.


11.0.3 (2021/02/14)

Bugfixes

Actually fix colour-stripping from chat.


11.0.2 (2021/02/14)

Bugfixes

Changing only the main ending of a map would not be saved.
Improve performance of srscore calculations.
Fix 'joined for the first time' showing up multiple times.
Fix setSubCheckpoint using the active subcheckpoint, instead of the one that was passed. This caused issues clicking end-signs in HC maps.


11.0.1 (2021/02/14)

Bugfixes

Fix hastebin links not working when clicked in chat.
Fix /whois not working on players that haven't logged out yet.
Attempt to fix colour-stripping from chat.


11.0.0 (2021/02/13)

Maps

Better map and challenge complete messages
now shows the time's rank always
shows whether it was a PB or Server Record
If the player is white, it shows how many points they have to go 'til blue
If blue and in HC, it shows how many maps left
If you beat HC, it shows a nice new message
If you get a cosmetic for beating a challenge, it now tells you that.
Mid checkpoints can now give food.
Maps can now be assigned a resource pack.
Player health, max health, food, saturation, fire status and status effects are now reset on player reset.
Player reset occurs when you join a map or do /spawn.
Players are no longer considered to be in a map when doing /spawn. Respawning at a checkpoint will cause a player to be considered in that map.
Players' completion percentage in /checkpoint points and the chat messages that show up when crossing a threshold are now consistent with the rarity tiers.
/checkpoint ffa and /checkpoint hc have changed functions. These now kill you and warp you to your corresponding checkpoint.
Reworked /checkpoint completed & merged old /checkpoint ffa into /checkpoint completed.


Challenges

You can now suspend challenges with /challenge suspend.
Added /challenge restart.
Added a new challenge modifier: No Damage
Hexa progress is now announced on every x66th stage, not just 66, 166 and 266.
Added /challenge completed [player <player>] [page <page>] [comparing <compare-mode>]
Added /challenge completed [player <player>] map <map-name>
Added /challenge uncompleted [player <player>] [page <page>] [comparing <compare-mode>]


Timers

Timers have been completely rewritten.
There are now multiple types of timers: Map, Challenge, Custom, and Special.
Map and Challenge timers are per-map/challenge. They only work on the map/challenge they were created for.
Custom timers are created and managed by scripts with the 'timer' namespace..
The time format has been modified:
It is mm:ss.mmm when the time is less than an hour.
It is HHh mm:ss.mmm when the time is less than a day.
It is DDd HHh mm:ss.mmm otherwise.


Chat

Chat channels have been added.
/chat say <channel> <message> to send a message in a particular channel.
Shorthands are /xchat <message> (e.g. /gchat = global chat, /pchat = party chat, /tchat = team chat).
/chat setchannel <channel> to have your messages go to a particular channel by default.
/chatpling was renamed to /chat ping enable|disable and is now no longer a toggle.
You can now hide chat:
The server now respects your chat options.
/chat hide (inverse: /chat show)


Parties

/party create to create a party.
The creator of the party becomes the party leader.
The party leader can invite others players to join with /party invite <player>.
You can see the death messages of your fellow party members.
When a party leader joins a map or challenge, all the party members will be warped to that map.
Can be turned off with /party warp false
The party leader can summon all party members to their current map or challenge at any time with /party summon.


Green commands

/call-ing into a map will reset your gamemode, health etc.
Blues and whities can now /bring.
You can only /call a player in a pure parkour map.


Scripts

Player#canSee(Player) returns if the player can see the target player (i.e., /hide and /block cause it to fail).
Player constructors will now return null instead of throwing an exception if they do not find a player.
Added a new constructor for Player: Player(String name, Player visibleTo). It will return null if a player was found but is not visible to visibleTo.
Player#invalidate() and Player#invalidateTime() have been removed.
Replaced by getting a timer directly and invalidating / nullifying them.
You can obtain timers:
timer::getMapTimer(Player player, String mapcode)
timer::getChallengeTimer(Player player, String challengecode)
timer::getCustomTimer(Player player, String tag)
timer::getSpecialTimer(Player player, String tag)
You can construct custom timers by instantiating the timer::Timer type.
Never store a Timer instance in a namespace variable. It will break on you silently. ALWAYS use timer::getCustomTimer().
You can remove custom timers with timer::removeCustomTimer(Player player, String tag)
You can format a time into a string using String timer::formatTime(Long time).
Added namespace minr. It has a Map and a Challenge type, that allows you to get the ranks and times of players.
/namespace functions and /type methods now have added colour for parsability.
Added filtering in /namespace variables, /namespace functions, /type methods, /type fields.
You can now filter the results of the above commands by adding additional search terms after the command. For example, /type methods Vector3[] value int will only return methods that cantain "value" and "int".


Misc

You can edit signs with a feather.
Fixed /unhide not working.
/hide all hides all players.
/unhide all unhides all players.
/block blocks a player permanently (until /unblock-ed).
Cannot hide staff.
Mute and ban messages now show the time remaining.
Chat announcment for mutes.
Cleaned up chat announcements for kick and ban.


Bugfixes

/reply now no longer silently fails if the target (who is a player) has relogged without messaging you after the fact. This bug has been present since 2015.
Fixed a discrepancy between chat and Discord for first-time join messages.
The default prompt expiration message is now correctly coloured and the extra space was removed.

10.7 - Scripts 2.3

10.7.6 (2020/12/02)

Chat & Tab

Added op-only /nick command to set nicknames. Works the same as /prefix.
Nicknames will show up with a prefixed ~.
Hovering over the nickname will show the original name.


10.7.5 (2020/11/30)

Scripts

Op messages containing {{}} will now only send the result to the executing op.


Chat & Tab

Tab display name now matches the chat name (including prefixes).


10.7.4 (2020/11/24)

Bugfixes

Fixed interact scripts triggering multiple times ib rapid succession.


10.7.3 (2020/11/22)

Bugfixes

Fixed interact scripts on cauldrons or waterloggable blocks not triggering on right click.


10.7.2 (2020/11/21)

Hardcore

Bumped Hardcore version to 10.2.
Add 10.1 -> 10.2 Hardcore checkpoint conversion.


10.7.1 (2020/11/21)

Maps, Challenges and Scripts

Map, checkpoint, and finish signs, and interact scripts, are now interactable with MOUSE1 (left mouse button), while in adventure mode.


Scripts

Added boxing/unboxing (on the backend) to make maintaining builtin functions easier. Should not affect any of the behaviour.


Server Configuration

Added some mod filtering.


10.7.0 (2020/11/12)

Scripts

Added new generic functions on List. Generic means that they can take any Type within constraints. In the following T will be the base type of your list (i.e., String[] -> T = String).
Void append(T value) appends a value to the List.
Void add(T value, Int index) places a value at an index, shifting the elements at that index and higher one index up.
T pop() removes the last element of the list and returns it.
T remove(Int index) removes the element at index from the list and returns it.
Boolean contains(T value) returns whether the list contains an element that equals value.
Int find(T value) returns the first index that matches the value. Throws a ElementNotFoundException if the value is not in the list. (Tip: always use contains before find)
Two functions have been added specifically for String[]:
String concat() concatenates a list of Strings together: String["hello", "world"].concat() yields "helloworld".
String join(String delimiter) joins a list of string, inserting delimiter between each string: String["hello", "world"].join(" ") yields "hello world".


10.6 - Scripts 2.2

10.6.11 (2020/11/03)

Server Configuration

Update to 1.16.4


10.6.10 (2020/10/28)

Scripts

Added traces to help find the cause of an exception in a Script. Only works for opped players.


Bugfixes

Fix NullPointerException on Materials that are Null.
Optimize script execution to reduce the chance of a StackOverflowError.


10.6.9 (2020/10/26)

Bugfixes

Actually store and load Material to/from file.


10.6.8 (2020/10/24)

Bugfixes

DiscordBot is now independent of discord server name, previously causing discord requests to fail due to the server name changing.
Any issues with deverification are now properly logged.
Fixed serialization of Position


10.6.7 (2020/10/13)

Bugfixes

Allow deverification even if Discord user can no longer be found.


10.6.6 (2020/10/11)

Bugfixes

Fixed /scripts copy and /scripts paste not working when pasting in a different world.


10.6.5 (2020/10/09)

Scripts

Added Material type


10.6.4 (2020/10/01)

Bugfixes

Re-calculate player display names on rank change.
Fix crash when calling toString() on a default Position variable (one without a value).
Fix calling toString() on a default Location variable returning 'null null null null' instead of 'null'.
Fix obj == null where obj is set to null or uninitialized not functioning properly.


10.6.3 (2020/09/23)

Bugfixes

Fix portal scaling when going from an overworld to a nether being 64:1 instead of 8:1.


10.6.2 (2020/09/12)

Worlds

Added Delta 2.


10.6.1 (2020/08/29)

Hardcore

Bumped Hardcore version to 10.1.
Add 10.0 -> 10.1 Hardcore checkpoint conversion.
Add support for forcing a player to respawn at their Hardcore checkpoint upon conversion, even if it hasn't moved.


10.6.0 (2020/08/18)

Scripts

Added new built-in spatial types:
Position(Double x, Double y, Double z, Float yaw, Float pitch, String world)
Location(Double x, Double y, Double z, String world)
Vector3(Double x, Double y, Double z)
Vector2(Double x, Double z)
BlockLocation(Int x, Int y, Int z, String world)
BlockVector3(Int x, Int y, Int z)
BlockVector2(Int x, Int z)
Region(String id, String world, String type, X points, Boolean transient)
These all have methods, too innumerable to mention here.
See this forum post for a short overview.
Added Location player.getLocation(), Position player.getPosition() and BlockLocation block.getLocation().
Added Player.teleport(Position destination) and Entity.teleport(Position destination).
Added BlockLocation.set(String block)
Overhauled scripts loading and internal structure.
Added String player.getName()
Added String player.getDisplayName()


Commands

/prefix now shows <colour> when setting a prefix consisting of only a colour, i.e. /prefix set rickyboy320 10m &6


Chat

Player names are now stored in proper text components.
As a consequence, keeping the colon colour of player names in chat consistent with the name colour was disproportionately difficult, so it is now white. (i.e. rickyboy320: hello world).

10.5 - The Bakery

10.5.5 (2020/07/30)

Commands

Added /challenge modifier set <player> <modifier> <value> to set a player's modifier value mid-challenge.
Added /challenge modifier add <player> <modifier> <value> to add a value to a player's modifier (i.e. life challenge).


Bugfixes

Fixed @chatscript timeout resetting newer instances of the same group (even when the timeout shouldn't trigger).
Fixed an issue where sometimes a value would be rejected due to 'self-cycle', even though there was none.


10.5.4 (2020/07/24)

Scripts

Added Int player.countItem(String id).
Added Boolean util::executeAndQuerySuccess(String command) and Int util::executeAndQueryResult(String command).
Added String util::randomUUID() to randomly generate an UUID.
format::formatDate now uses a timezone of UTC, so you can use more formats.

10.5.3 (2020/07/24)

Server Configuration

Updated to 1.16.1.


10.5.2 (2020/07/06)

Privacy

Messages are now sent to the (private) #zero_archive channel as well, allowing for periodic wipes of the public #zero channel.


Bugfixes

Fixed a bug where certain player settings would not be saved if modifed while the player was offline (e.g. from discord).
Fix potential data loss if an error occurred during start up.


10.5.1 (2020/06/16)

Bugfixes

Fixed a bug where logout messages would show even when they were supposed to be hidden.


10.5.0 (2020/06/15)

Scripts

Scripts are no longer triggered while the player is in spectator mode.


Commands

/players now sorts by rank, and player names are now coloured by their rank.
Disabled certain functionality on the test server, for privacy and secrecy reasons. Greens will be unaffected by this.


Hardcore

Players now retain their Hardcore checkpoint at Hall of Fame (HC-END) on conversion, rather than being removed.
Players now are blocked from entering Hardcore if their Hardcore checkpoint is at Hall of Fame, or if they have no Hardcore checkpoint but have completed Jiga's Claymaze.


Chat

The format of player join and quit messages has been changed to match Vanilla (the exclamation point has been replaced with a full stop).
The player's rank is now displayed during first-time join messages.
First-time join messages will no longer be shown if they are not of default rank, even if they have no existing player data.


10.4 - Scripts 2.1

10.4.13 (2020/06/14)

Bugfixes

Fixed players being set to Blue on map complete if they satisified the blue requirements, regardless of their rank.


10.4.12 (2020/06/14)

Ranks

Blue now requires 100 points (up from 35).
Blue now requires at least 5 or more maps completed of Moderate or greater difficulty.


Hardcore

Incremented Hardcore version from 9.0 -> 10.0.
Implemented Hardcore checkpoint conversion for 9.0 -> 10.0.
Improved conversion of checkpoints from 7.0, 8.0 and 8.1.


Commands

Added /checkpoint remplayercp <player> <mode>, to remove a player's checkpoint.
Updated /help ranks to reflect the new blue requirements and better convery rank-up requirements.


10.4.11 (2020/06/05)

Bugfixes

Fixed array initializers of 2 or more elements failing to parse inline (as an argument for a function calls or within a subexpression).
Fixed 'silent' error when a script line containing a '%' contains an error.
Fixed pi being accepted as a variable name: it should have been a keyword.
Fixed error message saying 'missing right-side operator', while actually the left side was missing.


10.4.10 (2020/05/19)

Commands

/creative is now accessible by moderators.
/tps is now available for greens+.


Bugfixes

Fixed an issue where variables in a namespace A using a type from namespace B sometimes fail to load their fields. (If namespace A was loaded before namespace B).


10.4.9 (2020/05/14)

Maps

Global Points have been renamed to Speedrun Score in an effort to make the name more intuitive.
You may also call it Minr Clout. You know who you are.


Scripts

Added @fast and @slow script operators.
By default, the @command, @bypass or @console script operators have a one-tick delay (like @delay 1).
@fast will remove that delay for all subsequent command operators.
@slow will re-add it.
Having either one multiple times in a row without the other is legal.
Note that this effect only applies to the local execution context - other functions called will be unaffected.
Added player.getSpeedrunScore(). player.getGlobalPoints() is now deprecated.


10.4.8 (2020/05/02)

Challenges

Added the Monthly challenge, containing from 8 to 25 maps, to cycle every month. The reward calculation is done the same as dailies and weeklies.


Commands

Added /checkpoint uncompleted which shows the maps the player yet has to complete (excluding valley/HC/board maps).


Scripts

Added String Player.getBedLocationWorld(), which returns a String containing the world where the player has set their bed.
Added String[] String.split(String separator), which splits the string based on the separator into a list of pieces around the separator. For example: "hi world".split(" ") would yield: ["hi", "world"].
Added Double[] system::getTPS() which returns a list of size 3, containing the average TPS over the last 1 minute, 5 minutes and 15 minutes.


Bugfixes

Fixed nested @for loops erroneously failing to compile.
Fixed setting max health using player.setMaxHealth() resulting in errors when joining a map, setting a checkpoint and in other arbitrary scenarios.
Fixed the left-hand sides of a @var assignment incorrectly parsing if the target expression was a field of an array.


10.4.7 (2020/04/19)

Bugfixes

Fixed an issue where removal of food was not saved, if this was the only action on a map.
Fixed an issue where having multiple constructors for one type would result in only one of the constructors remaining after server restart.


10.4.6 (2020/04/12)

Bugfixes

Fixed an issue where Player variables were not loaded correctly (resulting in null).


Cosmetics

Hats
Added "Bunny" hat, which requires finding 10% of the eggs in the open world of Egghunt 2.0.
Added "Compeggitor" hat, which requires participating in the Egghunt 2.0 Compeggition.
Added "Golden Egg" hat, which requires finding 50% of the eggs in the open world of Egghunt 2.0.
Titles
Rebranded the title "The Eggman" to "The Egglord", now requiring the victory of any Egghunt Compeggition.
Added "Eggspert" title, which requires finding all the eggs in the open world of Egghunt 2.0.


10.4.5 (2020/04/04)

Challenges

/spawn is now allowed during challenges.
Players can no longer use the Hardcore start sign whilst in a challenge.


Commands

Removed /sethome <player>. Note other variations of this command are unaffected.
/listhomes <page> now has priority over /listhomes <player>.


Scripts

Added the exponentiation operator ^.
Added literals pi and π (both equal to 3.14159265358979323846)
Added the following functions to the math namespace:
sin(), cos(), tan()
arcsin(), arccos(), arctan()
radsin(), radcos(), radtan()
radarcsin(), radarctan(), radarctan()
rad()
deg()
Functions with the rad prefix take radians, all others take degrees.


Discord

Minr Bot will no longer use markdown in messages.


Bugfixes

Visiting another player's home would set the target player's checkpoint mode to home, instead of the executor's.
Fixed /checkpoint times <page> checking for map codes before map names.
Fixed Float/Double values with the literal xxxE-xxx failing to parse.
Fixed various commands that take namespaces requiring the same namespace specifier. (/variable define casino_lb DBtable db would fail even though DBtable is a type in casino_lb)
Fixed an issue where in some cases Int(someList[0]) (or similar) would fail to compile.
Fixed @for loops within a @if statement failing to execute in special cases.
Fixed @done not showing a parse-error when it was put on the wrong depth level.


10.4.4 (2020/02/21)

Bugfixes

Fixed paged commands' paging arrows failing to work.


10.4.3 (2020/02/11)

Commands

/home
Homes are now listed alphabetically and shown in pages.
Mods can now set homes using coordinates.
Ops can now set and remove others' homes.


/whois
whois <player> is now usable by everyone.
whois <player> is now usable on Discord.


10.4.2 (2020/01/10)

Bugfixes

Fixed 100% not being attainable, due to aliased maps counting twice to total points.


10.4.1 (2020/01/06)

Bugfixes

Fixed default values of relative variables not being loaded (and therefore being lost after a restart).


10.4.0 (2019/12/20) - Scripts 2.1

Scripts

Lists
Added lists types.
They are automatically created for every non-list type.
Lists are defined using X[], where X[] is a list of type X (e.g. Int[]).
Lists can be initialised with X[a, b, ..., z]. (Where a, b, ..., z are zero, one, or more instances of X)
Values can be retrieved using X[index]; to set a value simply assign to this (e.g. X[0] = 1).
List indicies are zero-based.
To append to a list, simply assign a value to an index one greater than the last item in the list.
e.g., if @define Int[] x = Int[1, 2, 3], append to x with @var x[x.length()] = 4.
Accessing an out of bound index will yield an IndexOutOfBoundsException (which will terminate the script).
Lists have the following methods:
List.length(), which reports the number of items in the list.
List.remove(Int index), which removes the item at the specified index from the list.
List.clear(), which removes all items from the list.
List.reverse(), which reveres the order of the items in the list.
List.shuffle(), which will randomise the order of the items in the list.


List Namespace
A range() function was added to a new list namespace as a convenience.
Int[] range(Int start, Int end) will generate a list of numbers from start (inclusive) to end (exclusive).
This allows you to iterate through every index in a list with @for Int i in range(0, list.length())


Loops
Added for-in loops, to iterate over any iterable.
Lists are the only iterable at this time.
Loops are defined with @for X item in X[], and terminated with @done
This example loop will print 1, 2, 3, 4 and 5 to the player (on separate lines).
@for Int i in Int[1, 2, 3, 4, 5]
@player {{i}}
@done
To loop through a range of numbers (like for (int i = 0; i < 10; i++)), use list::range().
@for Int i in range(0, 10)


Relative Variables
It is now possible to retrieve the value of a relative variable for specific players.
Simply use relativeVar[Player]. (Where Player is an instance of a Player type: e.g., Player("rickyboy320"))
Note that as this requires a Player instance, UUIDs will be required for retrieving values when players are offline. (Will fail otherwise)
Like lists, assigning to relativeVar[Player] will set their value.


Formatting
Whitespace will now be preserved when importing from Hastebin, and will be exported as well.


Script Creation
When creating a script, the co-ordinates of the script will be displayed. If you accidentally misplace a script this will allow you to easily remove the script.


Math Namespace
Added Int floor(Double x) and Int ceil(Double x), which floor and ceiling a number respectively.


Player Type
Added sendMessage(String message) to send a raw message directly to a player.


Commands

Added /challenge join <challenge> <player> and /challenge finish <challenge> <player> for administrators.
Fixed /checkpoint removealltimes not working on maps.


Discord

/discord verify now correctly instructs the player to post their verification code in #verify_here, instead of #general_discussion.


Server Configuration

Updated to 1.15.1 (Paper #15)


Bugfixes

Fixed c_dric's bug, where setting a field would spawn multiple script runners (causing delays to be skipped).
Fixed tab-completion of namespaces only showing namespaces that begin with lowercase letters.


10.3 - Cosmetics Part 2

10.3.6 (2019/10/30)

Bugfixes

Fixed a player's map timer being saved as invalid if their challenge timer was invalid.


10.3.5 (2019/09/01)

Hardcore

Updated checkpoints to Hardcore 9.0.
Old checkpoints will automatically be converted.


Scripts

Display names of items are now accessible.
Use Boolean Item.hasDisplayName() and String Item.getDisplayName().


Commands

Self-targetting /rocket is now restricted to mods and ops due to abuse.
Using /rocket as a non-operator no longer invalidates runs.


10.3.4 (2019/08/23)

Team Chat

Added /teamchat (aliases are /teammsg, /tchat, /tm and /t).
Overrides the vanilla command for better Minr-specific support.
/teamchat <message> will send a message to everyone on your team.
Players must be on a team that isn't a rank team to send or receive a message.
Subscribing
Alternatively, one can subscribe to a team channel for a team they aren't on.
Subscribers can send and receive messages in any channel they are subscribed to, regardless of the team.
The syntax is: /teamchat <team> <message>.
Subscribers are not preserved between restarts.
Subscribers can be added with /teamchat subscribe <team> <player>.
Subscribers can be removed with /teamchat unsubscribe <team> <player>.
Subscribers can be listed with /teamchat subscribe <team>.


Cosmetics

Hats now support player heads with custom skins.
Cosmetic GUI items now also support player heads with skins.


10.3.3 (2019/07/22)

Features

Addition of the /spectator command for Moderators.
Player names in many places (notably in the in-game player list and nameplates above other players) are now coloured by the player's rank.
The in-game player list is now sorted by rank.


Server Configuration

Updated to 1.14.4 (Paper #137)


Bugfixes

Command Block Minecarts no longer break when trying to execute Minr commands.


10.3.2 (2019/06/21)

Maps

Added announcements and special effects when obtaining 10%, 25%, 50%, 75% and 100% of all points.


Hardcore

Updated HC checkpoint converter to HC 8.1.
HC checkpoint converter is now more verbose and informs the player of the change.


Commands

Added expiration feedback to the call request.


Scripts

Added support for coloured player and objective names in the MSC Scoreboard API.


Server Configuration

All schematics have been converted to the 1.13 schematic format (.schem), which should fix irregularities in blocks and crashes (such as in Inaros).
Updated to Paper 1.13.2 #632


Bugfixes

Fixed issue with the command '/prefix reset' not taking arguments as intended.
Fixed command usage of the /type constructor define command: removed <returnType>.
Fixed 'This person has not requested a teleport to you within the last 5 minutes' message in /call: it now reflects the actual 1 minute expiration time.
Fixed adding of maps to a Challenge failing, but the message saying it succeeded: added more checks on the command to inform of failure.
Fixed removal of empty namespaces displaying a failing message, while the action succeeded.
Fixed attempts of removing a built-in namespace throwing a console exception.


10.3.1 (2019/05/24)

Bugfixes

Players can no longer see their own titles on occasion, which prevented interaction with the environment.


10.3.0 (2019/05/18)

Particle Trails

Adjusted the vertical offset for particle spawns (0.8 -> 1.2).
Adjusted the vertical offset for particle spawns when swimming or gliding (0 -> 0.2).
The period for particle spawns can now be customised.
Particle trails now have rarities.
Fixed particle trails now being applied on join.


Hats

Added hats, cause why not?
Hats are cosmetic items, where various blocks appear on the player's head.
They can be deactivated easily by clicking on them while inside the inventory screen.


Prefixes

Prefixes are now time-based. They will be automatically removed are the period expires.
Removing prefixes has been simplified significantly (no longer requires magic word).
Commands are now: /prefix set <player>


Cosmetics GUI

Expanded the GUI to 27 slots.
Rearranged item positions slightly.
The item icons can now be customised.
Items now have a coloured name derived from their rarity.
Item lore has been significantly reformatted, and now displays requirements, rarity and multi-line descriptions.
Items can now be properly unobtainable.
Items are now sorted, first by rarity then alphabetically.
Items are now enchanted in the shop when active.


Rarity

Split rarities from Titles, so they can now be used by anything.
Renamed RARE to UNCOMMON.
Swapped the colours of UNCOMMON and HEROIC.
Rarity names are now displayed in game.


Commands

Cosmetic commands now have unified syntax, and are now ops-only.
They also all now support targetting other players, and all have "current" subcommands.
Additionally, cosmetic names within said commands are now displayed in colour.
Cosmetics can now be reloaded without a server restart, though this is not guaranteed to be safe.
Going to /spawn now resets you like entering a map does (triggering scripts when this happens in the future?).


10.2 - Cosmetics Update and Valentine Event

10.2.3 (2019/04/20)

Bugfixes

Fixed issue with loading Player variables from disk.
Fixed issue where an area script would crash the server on load when the region was deleted.
Fixed issue where User Types would break when default values were not set.


10.2.2 (2019/03/21)

Scoreboard Namespace

Added a new built-in namespace for manipulating scoreboards.
You can add or remove objectives and scores, and set the display slots of objectives.
Unlike using vanilla commands, there is no one-tick delay when using these functions.


Global Points

Updated global points to be somewhat more representative of top times.
Renewed formula is:
. Everyone's score for this map is then rescaled according to the amount of completions:

Everyone can now use /checkpoint gpoints <player> <map>.


Events

Removed references to Valentines event.


Commands

Added /adventure as a counterpart to /survival.


Bugfixes

Fixed an error when deverifying a deleted Discord account.
Fixed an issue where tabbing did not work for /checkpoint gpoints.
Mapnames can now be used for /checkpoint gpoints


10.2.1 (2019/02/15)

Bugfixes

Valentine Leaderboard is now sorted by each couple's love points total.
Valentine Leaderboard now no longer opens the Challenge Leaderboard when pressing next page.


10.2.0 (2019/02/14)

Challenges

Soul Link
New challenge modifier: Soul Link.
Soul Link challenges require two linked people to join.
Use /marry <player> to link yourself with another player.
If one player dies, the linked player will also die.
Soul Link challenges reward Love Points as well as Challenge Points.
Use /divorce do decouple yourself from another player.
Soul Link is fully compatible with other challenge modifiers.


Cosmetics

Particle Trails.
Added particle trails. When you move, a trail of particles will be left behind you.
Added "Love Trail" particle trail, which requires 300 Love Points.
Added "Completionist" particle trail, which requires 100% of all points obtained.
Cosmetics GUI
Added new GUI for managing cosmetics, openable with /cosmetics (alias: /shop).
The ability to buy cosmetics will be added later.


Events

A special Valentines event is running from Febuary 14th to March 14th, centred around Soul Link challenges. The top five couples with the most Love Points at the end of the event will unlock an exclusive title. Gain 300 Love Points to unlock the "Love Trail" particle trail.


Commands

/cosmetics
Alias: /shop
Opens the Cosmetic GUI.


/trail
Alias: /trails
Operators Only:
/trail give <player> <trail> gives a player a particle trail.
/trail take <player> <trail> takes a particle trail from a player.


The following commands were also added for everyone, but may be removed at a later date.
/trail set <trail> enables a particle trail.
/trail list shows all your particle trails.
/trail clear disables your currently active particle trail.


/titles
/titles list was changed to be similar to /trail list.


/valentine
/valentine ranks shows the current event leaderboard.
/valentine completed <player> shows the current event leaderboard.


Soul Link
/marry <player> to link with another player.
/divorce to unlink with your linked player.


/hide
/hide <player> hides a player from you.
If a player relogs they will become visible again.


Bugfixes

Titles no longer persist after logout in a vehicle.

Titles have more debug measures such that it is easier to track the cause of persisting titles.

Fix valid Scripts throwing OutdatedException when slay (and others) is used as a parameter in @bypass​.


10.1 - Difficulty Rework

10.1.5 (2019/01/08)

Bugfixes

Fixed repeating challenges subtracting challenge points.


10.1.4 (2019/01/08)

Bugfixes

Fixed repeating challenges having an extreme reward.


10.1.3 (2019/01/07)

Bugfixes

Fixed recent invalid times overwriting valid times.

Fixed leaderboards not updating on removal of completions.


10.1.2 (2019/01/04)

Bugfixes

Fixed force joining challenges skipping requirements check.

Invalid but legitimate times on maps are now saved.

Fixed /whois showing the executor's points instead of the target's.


10.1.1 (2019/01/02)

Commands

A breakdown of where challenge points have been otained is now shown in /c points.


Bugfixes

Fixed an error when regenerating a challenge before the leaderboard is setup.


10.1.0 (2018/12/31)

Difficulty Brackets

Added new difficulty brackets, white and black. Rebalanced the number of points awarded by each bracket. Renamed some of the brackets.

The difficulty spectrum is now as follows:

  • White, "Very Easy" - awards 1 point
  • Blue, "Easy" - awards 2 point
  • Green, "Novice" - awards 4 point
  • Yellow, "Moderate" - awards 7 point
  • Orange, "Hard" - awards 12 point
  • Red, "Very Hard" - awards 18 point
  • Black, "Very Expert" - awards 25 point

Completions of black maps are now announced in chat like red maps. FFA Points have now been renamed to Points.


Hardcore

Whities are now automatically promoted to Blue once they meet the Hardcore point threshold, before entering Hardcore.

Entry to Hardcore now requires 35 points plus completion of the FAQ Quiz.

Completions of individual Hardcore maps are now announced.


Scripts

Local variables have been reworked internally. Chat scripts should behave properly now as a result.

Improved error messages when an exception occurs while importing a script.

If an exception occurs when adding or importing a script, the script will not be modified.


Bugfixes

Fixed issues when redefining or removing regions with scripts bound to them.

Methods now work on fields.

/type constructors and /type methods can now be used on built-in types.


10.0 - Minr Scripts 2.0

See https://forums.minr.org/threads/minr-scripts-2.2951/.


Prior to 10.0.0

Please consult the announcements forum. https://forums.minr.org/forums/news-announcements.18/