You are viewing an older version of the site. Click here to view
the latest version of this page. (This may be a dead link, if so, try the root page of the docs
here.)
[[Image:CommandHelper_Logo_New.png|center]]
'''CommandHelper''' is an alias, macro, and scripting plugin for Minecraft that lets you:
* Alias commands like ''/battle'' to run ''/warp #battlearena''.
* Write a script to let players message each other while offline.
* Create an automated battle arena that automatically resets.
* Write your own /tp, /time, or /warp
* Do much more, from the simple to the complex, with zero Java code.
'''MethodScript''' is the name of the programming language that CommandHelper uses, and there is a commandline version
of MethodScript as well, that you can use outside of Minecraft. MethodScript is an imperative, dynamic, event driven,
value-level, metaprogramming (reflective), structured (block-structured, semi-object-oriented, semi-class-based,
recursive), parallel, partially strongly typed language, and is an active work in progress.
The developers of MethodScript do not recommend it (yet) for production or otherwise critical code, however,
as a quick scripting language, or for use in Minecraft, it is highly recommended.
Remember that [https://github.com/EngineHub/commandhelper CommandHelper is open source].
== Installation ==
Only the latest development build is officially supported, but there is some community support for older builds, which
you can get by joining IRC or Discord. For the latest builds, head to
[[Download|the download page]] and click the latest
build. You can also download the versionless jar that
corresponds to the exact version that this site was built with [[MethodScript.jar|here]], though this is not considered
to be the supported version.
Java >= 16 is required to run MethodScript.
Alternatively, for advanced users, you could download the sources and build it yourself locally. To do that, you need
git, maven, and jdk >= 16. Pull down the code with
For more detailed instructions, [[SyntaxHighlighting.html|see here]]}} == CommandHelper == === Feature requests and bugs === Long-term planned features can be found on the [[Roadmap.html|roadmap]], and short term features can be found on the issue tracker. To request your own features or file a bug, use [https://github.com/EngineHub/CommandHelper/issues our issue tracker]. Known bugs can be found on the issue tracker. If you would to request new functions, it is typically easy to add those, so please post your feature request in the issue tracker. If you happen to find a bug in the program, please let us know so we can fix it! === Want to help? === CommandHelper is turning into a large project, and I would love for more people to help work on it. Don't know java? Great! There are things for you to do too! If you're interested in any of the following tasks, feel free to get in touch with me, and we can get you started! * '''Documentation:''' There's lots of complexity in the plugin, and without solid documentation, it is nearly \ worthless. While some of the documentation is generated programmatically, many pages are not. The auto documentation \ generator leaves room for more detailed information too -- none of which is currently filled in :( From writing \ examples \ for each function, to working on the main documentation, and keeping the current documentation up to speed, there's \ actually a lot to do that has nothing to do with coding! * '''Testing:''' While a large portion of CommandHelper has automated tests, there is still no substitute for running \ [http://builds.enginehub.org/ beta] versions of CommandHelper on a real server. It would be nice to know that several \ servers have put it through the ringer before a version goes to full release status. * '''Programming:''' From adding functions, to writing test cases, to working on the core aspects of CommandHelper, \ there are many different tasks to conquer. === Donations === Do you like the plugin a lot? I certainly don't expect donations, and the any money I receive won't necessarily influence the amount of time I spend on the plugin (well, maybe it will), however I do spend a lot of time working on it, and I certainly won't turn anything down if you want to say thank you! If you reeeeally want a feature added to CommandHelper, and you're willing to pay money, get in contact with me, and we can discuss contract work, and we can discuss your needs, but otherwise, donations are just a way for you to tell me thanks! [https://github.com/sponsors/LadyCailin Donations] == Changelog == For the full changelog, including the changelog for older releases, see [[Changelog.html|this page]] == Previous Versions == For previous versions of the documentation, see here for a directory. __NOTOC__
git clone [email protected]:EngineHub/CommandHelper.git
,
then follow the directions in [https://github.com/EngineHub/CommandHelper/blob/master/README.md the README].
=== Bukkit ===
If you're using bukkit, throw the jar file in the plugins directory, and start your server. On first boot, the proper
directory structure with placeholder files will be created, which you can then edit. The configuration directory will
be called CommandHelper, and will be in the same directory as the jar.
For Java versions > 9, you may see errors such as "An illegal reflective access operation has occurred." For Java
versions less than 17, you can simply add --illegal-access=permit to the JVM options, but for more granular control,
you can instead add the output of java -jar commandhelper-3.3.5-SNAPSHOT-full.jar cmdline-args
to your java startup arguments, or alternatively, dynamically call this command so that future updates will
automatically conform to the necessary arguments.
For Java versions >= 17, this process is mandatory, as --illegal-access will be removed from the JVM, and the necessary
--add-opens parameters will be the only way to provide the necessary access. This is also necessary for fully proper
execution of signal handling in MethodScript.
=== Cmdline ===
If you're using the cmdline version, run "java -jar commandhelper-3.3.5-SNAPSHOT-full.jar help" for a
listing of the possible commands, and "java -jar commandhelper-3.3.5-SNAPSHOT-full.jar install-cmdline"
to install.
The configuration directory will be called MethodScript, and will be in the same directory as the jar. If the name or
path of the jar file changes, you'll need to re-install, so it may be prudent to name the jar with a neutral name that
does not include the version number.
Installation isn't strictly required, you can run MethodScript directly using the java -jar command, however, using the
mscript wrapper provides some additional functionality, such as setting up the appropriate options to the JVM.
==== Linux/MacOS ====
On Unix systems, you'll need to run the command with sudo. The installer will install an mscript bash file in
/usr/local/bin/mscript, which simply wraps the jar. Running ''mscript'' will launch the interpreter, running it with
a file will run that file, and using ''mscript -- '' followed by a verb (such as help) will run the cmdline utilities.
==== Windows ====
{{TakeNote|text=The manual installation instructions are still valid if you wish to customize your install, but for Windows, you can
use the pre-packaged standalone installer, found [https://github.com/EngineHub/CommandHelper/releases/download/win-installer-v.1.0.1/MethodScriptInstaller.exe here].}}
On Windows systems, you'll need to have launched your command prompt as Administrator. (To install on Windows
Subsystem for Linux, follow the same instructions as for Unix.) A program ''mscript'' will be installed on your
path, and a PowerShell Module will also be installed. Running ''mscript'' will launch the interpreter, running
it with a file will run that file, and using ''mscript -- '' followed by a verb (such as help) will run the
cmdline utilities.
== Usage ==
How do you use CommandHelper? We have a set of easy to follow articles that you can read!
* '''Want to setup simple aliases?''' Try the [[Beginner's_Guide.html|Beginner's Guide]]
* '''Want to script completely new features?''' Follow the ''Learning Trail'' at the bottom of the page.
* '''Just want the API?''' See the [[API.html|API reference]].
Need more help? Chat with us on IRC in
[[Help.html|#CommandHelper on irc.esper.net]], on [https://discord.gg/Z7jpHed Discord],
or go to the [https://github.com/EngineHub/CommandHelper/issues issue tracker].
{{LearningTrail}}
== Tools ==
=== Syntax-coloring editors ===
Tired of writing your scripts in a plain black and white text editor? Try a syntax Highlighter!
The Visual Studio Code
[https://marketplace.visualstudio.com/items?itemName=MethodScriptVSC.methodscriptvsc MethodScriptVSC]
IDE is the only officially supported IDE/Syntax Highlighter, and is most likely the most feature rich and up-to-date
version, so it is highly recommended. To install, [https://code.visualstudio.com/Download download Visual Studio Code]
(free, on all platforms), and install the MethodScriptVSC extension from the extensions tab.
If you prefer other text editors, there is community support for other text editors:
* Atom - Cross-platform - Created by jacobwgillespie
* gedit - GNOME/Cross-platform - Created by MrMagical
* Notepad++ (Default Theme) - Windows - Created by MrMagical
* Notepad++ (Obsidian Theme) - Windows - Created by TTSDA (based on MrMagical's Highlighter)
* Sublime Text 3 - Cross-platform - Created by Ecconia
* TextWrangler and BBEdit - Mac OS X - Created by Connor Griffin (Very Outdated)
* and others
If you create a syntax highlighter for your favorite text editor, contact us, and we can add it here!
{{TakeNote|text=To generate up-to-the-minute syntax colors you can also run CommandHelper from the command line using
java -jar CommandHelper.jar syntax npp obsidian
For more detailed instructions, [[SyntaxHighlighting.html|see here]]}} == CommandHelper == === Feature requests and bugs === Long-term planned features can be found on the [[Roadmap.html|roadmap]], and short term features can be found on the issue tracker. To request your own features or file a bug, use [https://github.com/EngineHub/CommandHelper/issues our issue tracker]. Known bugs can be found on the issue tracker. If you would to request new functions, it is typically easy to add those, so please post your feature request in the issue tracker. If you happen to find a bug in the program, please let us know so we can fix it! === Want to help? === CommandHelper is turning into a large project, and I would love for more people to help work on it. Don't know java? Great! There are things for you to do too! If you're interested in any of the following tasks, feel free to get in touch with me, and we can get you started! * '''Documentation:''' There's lots of complexity in the plugin, and without solid documentation, it is nearly \ worthless. While some of the documentation is generated programmatically, many pages are not. The auto documentation \ generator leaves room for more detailed information too -- none of which is currently filled in :( From writing \ examples \ for each function, to working on the main documentation, and keeping the current documentation up to speed, there's \ actually a lot to do that has nothing to do with coding! * '''Testing:''' While a large portion of CommandHelper has automated tests, there is still no substitute for running \ [http://builds.enginehub.org/ beta] versions of CommandHelper on a real server. It would be nice to know that several \ servers have put it through the ringer before a version goes to full release status. * '''Programming:''' From adding functions, to writing test cases, to working on the core aspects of CommandHelper, \ there are many different tasks to conquer. === Donations === Do you like the plugin a lot? I certainly don't expect donations, and the any money I receive won't necessarily influence the amount of time I spend on the plugin (well, maybe it will), however I do spend a lot of time working on it, and I certainly won't turn anything down if you want to say thank you! If you reeeeally want a feature added to CommandHelper, and you're willing to pay money, get in contact with me, and we can discuss contract work, and we can discuss your needs, but otherwise, donations are just a way for you to tell me thanks! [https://github.com/sponsors/LadyCailin Donations] == Changelog == For the full changelog, including the changelog for older releases, see [[Changelog.html|this page]] == Previous Versions == For previous versions of the documentation, see here for a directory. __NOTOC__
Find a bug in this page? Edit this page yourself, then submit a pull request.