I think Sponge needs a scripting language

I feel like I need to insert my opinion here. The only reason I see that Skript is limited is because of the fact that Njol hasn’t added everything in yet, and even members of the community are making plugins to add in the things that the official developers haven’t yet. I’ve been using Skript for around a year now, and I’ve made countless minigames, and personally it’s a lot easier for troubleshooting reasons, quick edits, and all around efficiency while coding. The things that would take Bukkit around 20 lines of code could be done in two with Skript. I definitely want Skript to be ported to Sponge when it’s released. Hopefully it’d be a whole lot easier for the devs to add new things into Skript as well.

1 Like

I’m on the fence with regards to this. I think that Java is fine for plugins because of my biased familiarity with the language. Although I do believe that Sponge would benefit greatly from a DSL such as Skript. If not a DSL, than a language such as Groovy as mentioned by @gratimax

Does anyone remember Lukkit for bukkit? It was a plugin which kinda did the same thing.
http://dev.bukkit.org/bukkit-plugins/lualukkit/

I realize I am way late to this conversation, but Skript will be ported to either Sponge or updated to 1.8 spigot when the time comes. I don’t often wander these forums, but I’m decently active on the Bukkit Skript forums.

I realize that Skript does not have every feature that the bukkit API has/had, but it’s currently damn close. The wonderful thing about Skript is that if you don’t like it, you don’t have to use it. There’s an entire community of highly skilled Skripters that make amazing creations, and people who download the skripts can look through the Skript and (most of the time) know exactly what’s going on, even if they are new to the language.

Skript is currently the 54th most used plugin and climbing higher and higher. You can currently complete 99% of the things that you can in the bukkit API. It is a fantastic tool for quickly changing server mechanics without restarting a server. In addition, there are some community members that create addons to Skript, so if there’s a feature you’d like to use that you need, it’s usually a request thread away from being scooped up by an addon developer.

Here’s a website created by a user of the plugin to document (almost) every skript addon’s documentation in one place. It’s still a work in progress for examples and such, but it’s a fantastic tool.

If anyone is interested in learning about skript, the forums are active and someone usually know what you’re trying to do and can help

EDIT: As lots of people in this thread are saying Skript/Java is a preference is a choice are entirely right, but I’d rather have both than choosing one or the other. Java is fully-fleshed out, and has access to the entire bukkit API. Skript has access to 99%-ish of the API, but you can add code and not have to restart your server every time you change code. You can even run line of Skript code in chat in game if the need arises (useful for testing for sure).

There are many, many amazing Skript creations molded by the community. Check some out

3 Likes

#SkriptMasterRace.

3 Likes

All these poor Skript users… clearly never tried DenizenScript.

Skript can do pretty much anything DenizenScript can do in a cleaner, more readable way. The only reason I would see someone using it over Skript is if you absolutely needed it for NPC scripting.

1 Like

Are you kidding? Skript is nigh-unreadable and unwriteable. Denizen is straightforward and logical.

I don’t see how so. Skript has a small learning curve and can be easily read. If you really wanted to look for something “straightforward and logical” you should probably use Java instead.

1 Like

I’ve 0 experience with DenizenScript, how would you register a command? In Skript it’s like this:

command /suicide:
    permission: Skript.killself
    trigger:
        message "<yellow>Say goodnight, %player%!!!" to player
        kill player

Two ways:
A: The cheaty way

myscript:
type: world
events:
on suicide command:
- narrate “Say goodnight, <player.name>!!!”
- hurt 500
- determine fulfilled

B: The newer cleaner proper way

suicide_command:
type: command
name: suicide
description: … / usage / etc info that you didn’t include
script:

  • if !<player.has_permission[denizen.killself]> {
    • narrate “YOu no can has dis command”
    • queue clear
      }
  • narrate “Say goodnight, <player.name>!!!”
  • hurt 500

    Since that seems pretty poor as I’m unsure of the Discourse tag for a proper code block, here’s it with formatting and syntax highlighting: http://mcmonkey.org/haste/11284
    not sure why we lack a "permission: " node… I’ll go make sure someone adds that.
    EDIT: Just got confirmation from the developer of that section of code that a "permission: " node will be added in the next few days. EDIT 2: Been added.
    so… the script is now: http://mcmonkey.org/haste/11285 you can see what I changed in the paste diff here http://mcmonkey.org/haste/11286

ALSO. Our issues: One feature request and a question -> https://github.com/DenizenScript/Denizen-For-Bukkit/issues yours… Issues · Njol/Skript · GitHub -> can’t even… HOW do you have that many issues open?

Our events: 157 supported events ATM http://mcmonkey.org/denizen/evts
Your events: there’s no number but a rough guess is ~30 or so http://njol.ch/projects/skript/doc/events/

I could go on if you want.

My main problem with Skript is that it seems to have its own made up syntax for each and every command, while Denizen has a general syntax that applies to all commands.

We’ve got a very active forum, where when people can help others they do. There are thousands of threads, someone’s bound to have had the same issue as what someone else is looking for. We’ve got many addons that add different functionality, so if you need X, you simply make sure you have the addon for it. You don’t have to get every addon if you don’t need them all. While the site you linked actually has 90 events, here is the website for almost every trigger/condition/expression. Skript can do 99% of what the bukkit API has provided to servers, in a very easy, readable, writable way. You can make things super simple and easy, or you can run your entire server on it. You can replace enormous plugins like world edit with it and create a permissions setup, all with skript.

BUT I’m not here to decide which skripting language is the best. I’ve merely put it out there that skript will be updated/ported when the time comes. I believe if you like commandhelper, use commandhelper. If you like skript, use skript. If you like denizen scripting, do that. I’m not here to discredit or belittle any scripting language.

3 Likes

Honestly, when I first looked into scripting tools for bukkit, the first I used was DenizenScript. It was ok and I used it for about 2 months on my server. Once I found out about Skript, I switched over to that and Im glad I did. I had server that only ran off of skript. The players were happy because I was getting more and better content on the server quicker. Denizenscipt is good, but when you compare it to Skript, it’s nowhere near that.

3 Likes

@pm_dragon When was this? Denizen was pretty weak for a while (it was originally just for NPCs), we only recently upgraded to a full scripting engine.

I really really doubt you’d make the same change if you were using modern Denizen at the time.

However I have never used Denizen I can say Skript is very easy to use. I personally use Skript because of the community behind it, It’s something everyone can understand even if they have no prior knowledge to programming. While I’ve never used Denizen I can say Skript is very good for beginners. It can suit a long time server owner needing to make a new gamemode for their server but it can also suit someone who’s brand new to running a server and need a simple message script. In the past I used Variable Triggers until it wasn’t updated for a new updated, after that I switched to Skript and have never looked back, it’s a really great tool that shouldn’t be underrated.

1 Like

EDIT: It quoted the wrong post -.-’

//Start Rant

I’m sorry, but I don’t believe a word you said. I’d say @pm_dragon would EASILY change over still. Denizen script has little to no Bukkit API support, let alone any proper syntaxs. Skript’s community is vast, with many people creating addons for it to add to the experience, I alone have created three different ones for it - My latest GattSk, giving users majority of complete control over Bukkit’s Scoreboards and World Manager. I’ve tried DenizenScript and it’s horrid compared to Skript. There’s little to no support, and when trying to find user-made content, the latest that I could find was from 7 - 10 months ago. Skript is easily one of the best user-friendly pseudo programming languages, I’d even go as far to say it’s a proper programming language, due to the amount of support for it. But your idea is yours, but saying you’d doubt that someone would make the same change isn’t true, especially if you haven’t tried Skript before, with all of it’s addons (which mind you, there’s a lot of).

//End Rant.

@mcmonkey I’ve been using Skript for 1-2 years now, never touched Denizen. That command in Denizen is so hard to look at and completely turns me off from ever using Denizen. It looks like a yml file. Skript has an awesome community and can do pretty much anything, and if there’s something that can’t be done, someone from the community just adds it to an addon.

@Funnygatt @Mitch
Sigh Denizen users love Denizen, Skript users love Skript. I’m not going to argue the point any longer.

But saying either language is bad is just false. Skript is powerful thanks to it’s strong userbase and addons, Denizen is powerful from its strong core functionality and active friendly core development team. Each has its strengths and weaknesses.

Saying Denizen doesn’t support most of the Bukkit API is just admitting you haven’t tried modern Denizen. We support 99% of the Bukkit API and tons of internal CB functionality, as well as all sorts of external things - from interacting with outside plugins directly to creating your own IRCBot, you can do just about whatever you need in Denizen - and if you can’t, just tell a developer, and it will be added very quickly.

The syntax is purely subjective. I along with all Denizen users find Denizen’s syntax clean and appealing, and Skript’s not so much. Skript users, obviously, feel different. There’s no factual basis for saying either syntax is superior.

Now let’s all shut up and be happy that everyone will be able to choose from a variety of languages when working in Sponge.

1 Like

I will happily agree with that.

1 Like

So if you say

How can you also say

?

2 Likes