1. Builds
  2. CommandHelper (master)
  3. Build #4030

CommandHelper Build #4030

This is not a stable download!

We recommend the use of released versions whenever possible.

View Stable Downloads
Date2 years ago
2ca7f5e0Fix several complex_try raw compile exceptions (#1254) Fix several raw compile exceptions caused by invalid try/catch MethodScript syntax. Note that the checks performed in this optimization method should eventually be split into postParseRewrite or the try keyword parsing and typechecking. Fixes #1253.pieter123452 years ago
78be6f01Document ba_put and ba_get signedness Update documentation to include that `ba_put_X` and `ba_get_X` for bytes, shorts, integers and longs uses signed values. pieter123452 years ago
714a6a00Fix boilerplate failure pseudoknight2 years ago
2afb49e9Add fallback to method not in older Spigot versions pseudoknight2 years ago
60a08061Add potion_splash event (Closes #791) pseudoknight2 years ago
cce9d74bAddress deprecation warnings in tests pseudoknight2 years ago
af47c7d9Add missing minecart types to set_entity_spec() pseudoknight2 years ago
bd2bfd0fFix missing newlines in register_command example pieter123452 years ago
a96d3afbFix sugared foreach() syntax parsing - Fix `foreach(... in ...)` and `foreach(... as ...)` syntax parsing. Bug was introduced in build 4024. - Make `foreach` use `__statements__` as in-between rewrite node instead of `sconcat`. No functional changes. pieter123452 years ago
69f6baa6Don't parse __autoconcat__ to sconcat in strict mode Parse `__autoconcat__()` to the new `__statements__()` instead of `sconcat()` in strict mode. `__statements__()` takes arguments of any type and returns `void` for typechecking, so compile errors will be generated in cases where `__autoconcat__()` used to insert `sconcat()`s, or in other words, where the user has either forgotten to put some `.` concat, or where the user has made a mistake. This change does not affect non-strict mode, as automatically inserting concats is a feature there. Alias syntax should also remain possible in strict mode, but only when the whole alias is nicely concatenated together by the user. Inserting multiple arguments/statements will cause the code block to be interpreted as a statements block and not as an alias redirect. pieter123453 years ago
e36e76dfUpdate ResourceManager.java Provide a more detailed description in res_create_resourceladycailin2 years ago
6a68260eMerge pull request #1250 from Lildirt/hanging_place Add hanging_place eventmichael smith2 years ago
cbb47d72Add hanging_place event lildirt2 years ago
612736e5Merge pull request #1249 from Lildirt/attack_cooldown Added pattack_cooldown().michael smith2 years ago
1b3af529Brace ternary and add CRELengthException to throwables. lildirt2 years ago
3942d278Added pattack_cooldown(). lildirt2 years ago
f5ecef53Bump junit from 4.12 to 4.13.1 (#1248) Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1. - [Release notes](https://github.com/junit-team/junit4/releases) - [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md) - [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>dependabot[bot]2 years ago
70a3bc51fix: pom.xml to reduce vulnerabilities (#1243) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JAVA-ORGYAML-537645snyk bot3 years ago
41c54ddfAdd HIDE_DYE item meta flag pseudoknight3 years ago
2c666b7dAdd block_explode event pseudoknight3 years ago
b780a89bFix split() for strings ending with the split Allow `split()` (and non-regex `reg_split()`) to match the split on the last possible part of the string as well. Fixes `split('b', 'ab')` resulting in `{'ab'}`, rather than `{'a', ''}`. pieter123453 years ago
cdc6c62aMerge pull request #1240 from Murreey/day-functions Add get/set functions for world daymichael smith3 years ago
2cac88e3Add get_world_day murray coghill3 years ago
ed12160bAdd set_world_day murray coghill3 years ago
5a471148Fix cmdline install tool unsupported OS check `OSUtils.GetOS()` cannot return null, so the previous check never triggered. pieter123453 years ago
ea2e3e27Fix entity_unleash reason in event docs pseudoknight3 years ago
7b0aad6fAdd support for Minecraft 1.16.2 pseudoknight3 years ago
55a5e0a6Fix NPE in LangServ while generating environment (#1237) Fix NPE in LangServ while generating the environment without having a profiles file in the MethodScript directory. This fix creates an empty ProfilesImpl, such that any usage of the Profiles object will simply be like if the profiles file were empty.pieter123453 years ago
60f238b7Handle exceeding max string size in string_multiply - Detect when exceeding max string size in `string_multiply` and throw a `RangeException` when that happens. - Optimize `string_multiply` implementation. Fixes #1234. pieter123453 years ago
4ef81cc4Fix smart strings being rewritten to non-strings Rewrite smart strings to either a `concat()` of their string and variable parts, the string itself if no variables are present, or a `string()` cast variable if it consists of a single variable. This ensures that smart strings will always have have the `string` type in user code. Fixes #1232. pieter123453 years ago
1dd871eeFix '@' escaping in smart strings Pass literal `\` as literal `\\` to `__smart_string__`, so that `__smart_string__` can disambiguate between `"\@"` and `"\\@"`, rather than getting the same input for both. As this function is an internal compiler function, and users that do use it would now have to pass double escaped `\` into the function to make it work properly, the function has also been renamed to `__smart_string__` to fit the other compiler functions. Fixes #1229. pieter123453 years ago
566f8c72Add entity_unleash event (#1227) malonnnn3 years ago
bf4419a9Move static final function names to function classes - Move static final function names to the static final `NAME` field in their corresponding function classes. - Add a test that validates that when a `NAME` field exists in a function class, it will return the same value `func.getName()` returns. pieter123453 years ago
bcf811d9Centralize function name references Replace all hard-coded string function names and `new funcClass().getName()` with a static final field in the `Function` class. This puts all 'static' function references in one place, allowing for shared function name caching and an easier way to find all references to a certain function. pieter123453 years ago
3512ac46Persist running `x_new_thread` threads over recompiles (#1224) Make threads remove themselves from the active threads map when they finish execution, rather than when the construct containing the thread ID string gets garbage collected.pietje3 years ago
1747e2f5Merge pull request #1223 from Pieter12345/delay-keyword-compile-errors Allow keywords to be part of other syntaxpietje3 years ago
980bd983Don't remove if keyword on process error Prevent the `if` keyword from removing itself from the AST when it fails to parse. This allows us to generate an error for it later, if it is not handled as part of some other syntax. pieter123453 years ago
1dcd0cb8Don't rewrite AST on try keyword process error Rewrite the `try` keyword processor to not make changes to the AST unless it can finish parsing without exceptions. pieter123453 years ago
f496a780Allow keywords to be part of other syntax Allow keywords to be part of other syntax than their keyword processing code is written for. An example is code `array(static: 1)`, which generates a compile error when attempting to process the keyword `static`, while it is actually part of valid `array()` syntax. Fixes #1220. pieter123453 years ago
f44e6f58Create AbstractCompileException This exception should be used as parent exception for compile exceptions, and can be useful to handle any compile exception in a single catch clause. pieter123453 years ago
0b00fc75Accept null arg in psend_block_change() to send existing block pseudoknight3 years ago
7d6c37a7Fix cast exception for fireworks in projectile events pseudoknight3 years ago
9c887c8dAdd 'unexpected keyword/label' compile errors Add "unexpected keyword" and "unexpected label" compile errors to static analysis. The caught cases are considered syntax errors and already caused a more generic 'fallback' compile error in static analysis. pieter123453 years ago
68e56fe9Add class name conventions ladycailin3 years ago
5b26f52aresource -> Resource *Probably* no one was using this? The impact should be very low at this point at least, but the longer we wait, the more impact it will have, so I'm going ahead and making this hard cut now. ladycailin3 years ago
e83eed22Fix NPE in static analysis on re-including empty files Fix a NullPointerException that occurs in static analysis when a file is included after an empty file has been dynamically included. Fixes #1221. pieter123453 years ago
1789f79aProc arguments handling optimization Set passed proc arguments first and then fill in the default values for the remaining arguments, rather than setting all default values and overwriting them with the passed proc arguments. pieter123453 years ago
18d26d2eFix proc @arguments order Fix procedure `@arguments` order in the case that the procedure contains more arguments than the procedure call passes to it. This is only noticable when default argument values are given, since otherwise the order wouldn't matter. Fixes #1197. pieter123453 years ago
b752e1bbFix post parse AST rewriting for single-function scripts Fixes post parse AST rewrites not using the rewritten AST for scripts with a single root function that is rewritten. Fixes #1219. pieter123453 years ago
7df115a3More feature for multithreading (#1214) * More feature for multithreading * Fix docs * Fix x_thread_is_alive thrown * Separation x_is_interrupted([id], [clearFlag]) * Interrupted status -> interrupt status * Fix docs core.functions.Threading * Fix docs x_clear_interrupt and x_is_interruptedudartsev anatoliy3 years ago
f4b78d7fFix bugs in localization ui ladycailin3 years ago
1a5ff308Add CRIMSON_FUNGUS and WARPED_FUNGUS tree types pseudoknight3 years ago
c8c2794dAdd 'anchor_spawn' boolean to player_spawn event pseudoknight3 years ago
52b1b1c8Add compass item meta pseudoknight3 years ago
eba81c00Add SWAP_OFFHAND click type in inventory_click event pseudoknight3 years ago
4b7613f9Add Strider's 'saddled'; Item Frame's 'fixed' and 'visible' to entity_spec() pseudoknight3 years ago
6ecc8df6Fix legacy material builder on pre-1.16 pseudoknight3 years ago
093c41e0Manage baby state for piglin, zoglin, and hoglin. Fixes wrapper class for zombified piglin. pseudoknight3 years ago
deab85b9Update entity_explode to reflect changes in the underlying event. A null entity is no longer possible. pseudoknight3 years ago
0fe660dbAdd support for Minecraft 1.16 pseudoknight3 years ago
bc3f00a0Add MCEffect.INSTANT_POTION_BREAK. Remove unused id value from enum. pseudoknight3 years ago
625ea38eMake Script's 'right' field a local variable pseudoknight3 years ago
784191d9Fix color() docs not listing color names pseudoknight3 years ago
41eb7fbeStatic analysis optimization Increase static analysis performance by creating less unnecessary collections. pieter123453 years ago
d835316eUpdate portal events to reflect 1.15.1. Add creationallowed event data. Fix searchradius and creationradius support in 1.13.2. pseudoknight3 years ago
bbd3adacAdd support for SQL Server in query and the PN (#1212) ladycailin3 years ago
e6fe6c2aFix header issue in telemetry.ini Use UTC time in the telemetry event ladycailin3 years ago
889d8652Add metric for static analysis ladycailin3 years ago
11c49181Update tree_grow event documentation (#1211) Document missing keys.pietje3 years ago
7afbf9d8Lazily get keyword name from annotation. The name was only used for exception messages, yet this method can be called multiple times per line, which was noticeable in profiling. This improves compile time around 6%. pseudoknight3 years ago
d37f1a70Fix duping when getting held item meta on block_place. The item's tags were being modified on read, causing this and probably other lesser issues. This affected shulker boxes, bee nests, beehives, and shields. pseudoknight3 years ago
675fab07Re-use environment for compilation (#1209) * Re-use environment for compilation This is an optimization which uses the same environment to compile multiple msa scripts, rather than creating a new environment every time. Environment creation reads and parses a few files, so this is an expensive operation. * Create StaticRuntimeEnv for static final functionality - Create StaticRuntimeEnv and move functionality from GlobalEnv to this class if it is static and final accross compile units. - Replace reflection in RandomTests test with Mockito, as this allows for the accessed field to be made final like it should. * Use a fresh environment per script Clone the environment for every (msa) script. Since StaticRuntimeEnv returns itself when cloned, its contents act like a cache. * Move test code out of production code Use Mockito to mock unused environment objects instead. * Use cheaper newline replacement in read() There's no need to replace "\n" with "\n".pietje3 years ago
ca0531dcCheck for associative array usage in spawn_particle Fixes #1210 ladycailin3 years ago
726dd6a8Add new methods in BukkitMCArmorStand ladycailin3 years ago
cc39b8f0Speculative fix for case sensitivity in InjectedPlayers ladycailin3 years ago
067118a0Fix NPEs in CClassType (#1208) * Fix NPEs in CClassType The CClassType invalidType is cached in a thread-unsafe way. This causes problems when LangServ is performing an operation on the same CClassType, since one thread can start using the Mixed[1] created by the other thread before it is populated with data, getting null when reading its first element. * Switch LangServ back to cmdline mode LangServ is currently running in EMBEDDED mode, which is a refactoring mistake. This commit changes it back to CMDLINE mode.pietje3 years ago
d8def74aStatic Analysis patch (#1207) * [SA] Fix exception on invalid typeless variable assign - Fix exception during scope graph generation for assign(var, val) with an invalid variable type. - For default or AUTO declarations, still require the value to be instanceof Mixed to prevent things such as void assigns. * [SA] Fix NPEs in requireIVariable() and requireClassType() Fix NPE in StaticAnalysis.requireIVariable() and StaticAnalysis.requireClassType() that occurs when passing in invalid syntax. Eventually, the parse has to catch these errors and halt compilation such that the AST in further steps only contains valid terms. For now, catch possible NPEs in the later stage and print invalid term classes instead such that it doesn't crash.pietje3 years ago
1b754e6aUse cache instead of FunctionList lookups (#1206) Cache the required environments for each function in CFunction and use that for lookups where possible. Also don't do FunctionList lookups where the function is already cached. This makes the flow as follows: 1. postParseRewrite() caches all existing functions. 2. Other compiler steps use the cached functions, or get null when they don't exist. 3. checkFunctionsExist() does a lookup in the FunctionList if the function is not cached, and generates the compile exception if it doesn't exist.pietje3 years ago
d7897501Merge branch 'master' of github.com:EngineHub/CommandHelper pseudoknight3 years ago
9f294f4eOptimize binds to get Event from BoundEvent when possible. pseudoknight3 years ago
ccb1a64eImproved registering/unregistering commands. - unregister_command() will now remove all aliases and prefixed variants of the command, so it is symmetrical with register_command(). - unregister_command() now supports unregistering other plugin's commands. - register_command() will now remove aliases that are no longer in the array, and add aliases that are added to the array. - Improved documentation and examples. pseudoknight3 years ago
3661ebd7Merge pull request #1205 from Pieter12345/master Fix exception target for single include() exceptionsmichael smith3 years ago
47a242a8Fix exception target for single include() exceptions pieter123453 years ago
5c503dbfStatic analysis (#1198) * Add basic static type checking framework This is still a WIP. A few points to work on: - A solution with less code in Function classes is preferred. - To get the type of IVariables (which are non-existent in the parse tree?), some sort of scoping simulation should be added. - Functions should be able to optimize based on the argument types that they receive. This allows for example sconcat() to not toString() its parameters when passed at least one statement that returns void. * Fix broken javadoc * Move function name validation to its own method Move function name validation out of link() and link() before optimization. * Fix or() typechecking implementation Support 0 to n arguments, rather than 2. * Add static analysis framework Functions that have scoping behavior or functions that make declarations / references to variables/procs/etc should override the linkScope() method. Variable references are already checked at this point, but declarations are not. Comes with a boolean to do or don't do static analysis. This is necessary to run optimization tests that are semantically incorrect. * Implement variable declarations - Creates declarations in the scope graph for variables passed to assign(). - Throws a compile error on variable declarations in places where that variable is already defined. - Converts typeless assigns into declarations of type AUTO when variables are not yet declared, but are being assigned to. * Implement ControlFlow scopes * Implement closure scopes * Implement bind scope * Implement proc scope Proc declarations are being made (without signature), but references are not checked yet. This commit is mainly about the proc declaration scope behavior. * Disable static analysis for 'invalid' tests These tests exist to test other things. Static analysis isn't necessary here. * Disable static analysis for composite functions Composite functions come with an inj...pietje3 years ago
3ef53379Clean log tests (#1202) * Clean log tests * Clean tests with dyn()udartsev anatoliy3 years ago
eeb3b33aThrow NPE on clear_task(null). Fixes #1201 ladycailin3 years ago
cff540beUpdate public suffix list ladycailin3 years ago
9e938ad7Fix getting offline players by name in offline mode pseudoknight3 years ago
e680b563Merge pull request #1199 from Anatoliy057/patch-1 Delete duplicates in entity_specmichael smith3 years ago
822aa4e1 Delete duplicates in entity_specudartsev anatoliy3 years ago
268cfd4eCorrect exception message for integer() (Fixes #1193) pseudoknight3 years ago
010a2544Update make_effect(). This adds data support for material and facing names, and improves documentation. pseudoknight3 years ago
53916597Fix reflect_type, add copy button to code on site. Update jQuery. Exclude LLVMFunctions from trying to be site-deployed. Add documentation on options for bind. Rename getSuperclasses/InterfacesForType to getTypeSuperclasses/Interfaces. ladycailin3 years ago
e2ab8089Fix new assignment not getting the defined target. pseudoknight3 years ago
309df09dGet CommandSender for executeas() and scriptas(). This allows for injected players that are currently offline, which is already a possibility for closures. Also now checks if executeas() has the minimum number of arguments and updates the docs. (Fixes 1194) pseudoknight3 years ago
f111a7a8Fix extraneous bare string warnings in tests pseudoknight3 years ago
2c6dbab2pass current MCCommandSender on null for executeas (#1195) * pass current MCCommandSender on null for executeas * CH syntax requirements * use current env not the closuresluke fairchild3 years ago
0a50d664Implement Booleanish in remaining classes ladycailin3 years ago
b8a07c42Add reflect_type, class_type, and Typing documentation. As part of writing examples for the documentation, I came across the error in #1192, which allowed me to reliably reproduce it, so this fixes #1192 also. ladycailin3 years ago
5813d34eFix negative array index lookup overflow messages (Fixes #1188) pseudoknight3 years ago
52316a72Fix incorrect ivar redefined error message in loops. pseudoknight3 years ago
64bc0956Fix documentation in reflect_pull ladycailin3 years ago
1e51e2b1Add include_dir(). ladycailin3 years ago
62468ea6Checkstyle ladycailin3 years ago
324626c2Add .msfileoption support. Add file options to reflect_pull. ladycailin3 years ago
c70037a5Add more tests for define_object ladycailin3 years ago
095dc258Checkstyle ladycailin3 years ago
c54b7011Procudure -> Procedure ladycailin3 years ago
dd3c6627Handle void correctly in the procedure type hinting Fixes #1191 ladycailin3 years ago
eeb36e7eUpdate issues link from youtrack to github ladycailin3 years ago
debbde05Fix iclosure retaining unused cloned variable list. Also adds an iclosure test. pseudoknight3 years ago
bd424bfcFix error for remove_recipe() on Spigot versions earlier than 1.15.2 pseudoknight3 years ago
71e7ca23Add player prefilter to entity_damage_player event (#1189) pseudoknight3 years ago
8ff888ddAdd cmdline mode fuzzer ladycailin3 years ago
afd97f94Create .cache folder first if it doesn't exist ladycailin3 years ago
9fc14f1bUpdate readmeladycailin3 years ago
55ebb57aUpdate readmeladycailin3 years ago
64ef2de8Add remove_recipe(). (#1187) * Add remove_recipe(). * doc clarification Co-authored-by: Lildirt <lildirt@lildirt.com>lildirt3 years ago
8799c64cAdd pflying(), pblocking(), psprinting() and is_entity_sleeping(). These are more readable than using pinfo(). pseudoknight3 years ago
62849f8eImprove set_blockdata docs pseudoknight3 years ago
1ffa65d0Add entity immunity functions pseudoknight3 years ago
ef8ea789Add "model" item meta key for matching functions pseudoknight3 years ago
87bf7727Don't rely on appspot for the site to load. Need to replace this longterm with apps.methodscript.com, but this is a short term fix, and a better approach regardless of which particular site we rely on. ladycailin3 years ago
08d13dc6Nag nag nag. ladycailin3 years ago
3c799335Add support for telemetry This branch adds the ability to send telemetry data to Azure Application Insights. This proxies through apps.methodscript.com however, so in addition to the basic telemetry framework, this also includes the swagger framework, which both the server and the client have autogenerated code for. See the LadyCailin/apps.methodscript.com repo for the server side of this. Telemetry is diabled by default, but nags the user to enable it where relevant.ladycailin3 years ago
596a64b5Fix cmdline file access security checks (#1183) - Bypass Security.CheckSecurity(File) checks in cmdline mode. - Move existing in-cmdline-mode checks before Security checks, since Security checks can throw an IOEx that shouldn't have to occur in cmdline mode.pietje3 years ago
3a7df5ecAdd missing CommandHelperEnvironments (#1184) Add CommandHelperEnvironment `@api` annotation arguments for Minecraft dependent functions, such that these functions can no longer be used in cmdline mode (and crash due to NoClassFoundDefErrors).pietje3 years ago
c1fa0522CheckStyle (#1182) Fix CheckStyle violations.pietje3 years ago
7b89531bAdd x_thread_join ladycailin3 years ago
dfa23310Parallelize startup and deduplicate work at startup. This shaves off about half a second on my system. ladycailin3 years ago
1e4034bfAdd player prefilter to pressure_plate_activated event. pseudoknight3 years ago
e052ce22Improve target for unexpected end curly braces. Fixes EmptyStackException when encountering more than one unexpected end curly brace. pseudoknight3 years ago
d118a918fix: Fix bug #1180 misspelled class name (#1181) The DuplicateObjectDefintionException.java class is misspelled, it should be DuplicateObjectDefinitionException.java This commit fixes the class name. Resolves: #1180alejandro casado quijada3 years ago
7833b862Finish writing my sente ladycailin3 years ago
33c054cdAdd cycle tool, to test the startup and shutdown cycle ladycailin3 years ago
1be2ece4Add / at the end ladycailin3 years ago
87341338Add reflect_pull('dir') ladycailin3 years ago
b733ab3bCheckstyle ladycailin3 years ago
2064220aAdd initial llvm framework. This currently mostly just includes the LLVM installer, but also includes a first pass at actually compiling a simple mscript program. The biggest issue right now is actually just figuring out the llvm ir necessary, so I've short circuited this right now, making it currently unusable, but neither the wrapper IR nor the exit() function itself are properly implemented yet anyways. ladycailin3 years ago
dd8b5258Fix puuid() returning invalid UUID for invalid name. Optimize get_offline_players(). pseudoknight3 years ago
c86736dfFix bug where errors in events in cmdline would fail to render the error properly ladycailin3 years ago
5026fe9aFix hidden function issue on the site Fixes #1175 ladycailin3 years ago
90f7bef0Fix class load warnings for extension dependencies pseudoknight3 years ago
7592c6e8Set alias functions to CommandHelperEnvironment pseudoknight3 years ago
6be24775Ensure server type is set for fast startup modes pseudoknight3 years ago
ef32fe0dImprove clarity of player event warning. Saying it's "missing" is misleading, and the cause is unlikely to be an NPC anymore. pseudoknight3 years ago
15614fdeImprove API docs for clear_commands(), spawn_entity(), and player_interact pseudoknight3 years ago
de11f40cFix spelling pseudoknight3 years ago
b1511e00Add phantom size to entity_spec pseudoknight3 years ago
c06d22feFinish work on search bar on the site ladycailin3 years ago
a02a5bdbfix: pom.xml to reduce vulnerabilities (#1177) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JAVA-COMMONSCODEC-561518snyk bot3 years ago
c21eb045checkstyle ladycailin3 years ago
d7b8e99eSite search is 80% complete now ladycailin3 years ago
b063add0Update switch() documentation (#1176) pietje3 years ago