If Sponge will have an innate scripting language or a plugin that implements something of the type, what should the syntax be like? I am interested to see if the newly formed Sponge community, along with former members of the Denizen and Skript communities, can come up with a solution that is unanimously accepted by a majority of the three. This might be impossible to achieve, but I believe that it will at least help scripting languages for Sponge advance in the right direction.
EDIT: Be sure to include examples of syntax so there is some evidence to support your opinion.
I think you’re going to get a lot of different answers because there is no single one. That should be clear from the whole Skript v. Denizen thing.
For me, I think mostly any usual language would be great as long as it’s not Lisp and it doesn’t simply just give you low-level access and send you on your way (e.g. just lets you register events equivalent to the server API’s). The big appealing thing from Skript (to me) is that it lets you filter events based on the event e.g. when you walk on X block or when you place X block.
Scripting isn’t just about not having to compile. Being able to listen for events without having to run in circles (check if it’s X player, check if they’re an admin, check if they’re using X block…) is one of the most important things IMO. If the script engine allows that it’s likely great in my books
Agreed. The biggest thing a scripting API needs, is user-friendly event-based hooks and triggers.
If someone looking to use a scripting plugin was interested in using a low level API, wouldn’t they just use the actual Sponge API?
I think the end goal should be the creation of a system analogous to IFTTT. The server owner has an expressed interest in being able to implement and respond to various event triggers on their server, and what they’re really interested in is being able to plug input into output.
I’m in the “syntax isn’t important” camp. You could probably go farther to say, I’m in the “you should be able to write scripts for your server in whatever language you want” camp.
I’m most interested in seeing a plugin that can compile SpongeAPI Java using a different input language, like (Java|Coffee)Script, Python, PHP, or any other language a Minecraft enthusiast might already be familiar and or comfortable with, or even possibly a graphic command stack builder (think Tynker, LabVIEW, or Lego Mindstorms).
I used Lego Mindstorms robots in university. We used the visual IDE not python for what we were doing. The visual IDE was kinda fun… until one of my programs got way too big and the IDE became nearly unusable. I think they replaced those robots with ones that use Lua, but I haven’t checked them out yet.
It’d be pretty interesting to see a visual IDE for MC scripts that spits out runtime code for an already existing plugin, e.g. Skript.
Excuse me for being, what’s the word I’m looking for, new (?) to this idea but what’s the purpose of a Scripting language? Why not just make a plugin? Can someone please elaborate on what separates the two.
A script is quick and easy to write compared to Java, a script can be loaded and unloaded without so much as a /reload slowing the server down, generally scripts have things like delays (EG, Denizen’s WAIT command) which are very difficult to accomplish in Java but made super simple in the script (again going back to quick and easy). A script is also generally understandable by anyone who reads it over, whereas Java takes some experience in the language before you can so much as read it. Thus, anyone can understand and modify the code running their server, which isn’t so easy with plugins. (Which, among other limitations, are often closed source and when not tend to have over complicated compile methods, while scripts are just blocks of code you drop as a text document in a folder).
I have to say, that quite possibly the biggest thing vanilla is missing right now, is the ability to set a single command block to execute a multi-line script (a chain of commands), whether typed into the CB interface, or loaded from a file.
Some of the new block and entity references, title commands, scoreboard commands, and pseudo-world-edit functionality that came out in 1.8 would allow for pretty damn extensive feature building, without any mods or plugins. All it needs is the ability to load those scripts.
The server that I run for my family, actually includes basic land claim, public banking, warp gates, and mob protection, all in vanilla.
As someone who has been involved with the Garry’s mod community for 4-5 years. I can speak to the benefits of scripting. With LUA I can make changes to a scripted plugin on the fly and see the results right away without any restarts.
Granted LUA isn’t the easiest script in the world but it’s functionality is astounding. I would love to see a shift from mods coded natively in java to pure scripting. I simply can’t ever find a plugin that works exactly how I want in MC.
Test your mods on a private server. Invite friends to play too. You control everything about your server: The weather, the time of day, who’s banned and who’s not. You can install texture packs. And, of course, you can mod it with mods you’ve written
It sounds like rather than compiling mods compatible with any particular API or implementation, they’ve written their own API and implementation that the IDE is compatible with.