New Skript Coming

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

  • LOOKING FOR A VERSION OF SKRIPT?

    You can always check out skUnity Downloads for downloads and any other information about Skript!

Status
Not open for further replies.
PS: I’m actually not trying to administer this forum! The Skommittee just does Skript, no forums.
[doublepost=1493956825,1493956116][/doublepost]Look,
The idea is that Skript has gone a bit too far for what it is. It basically has no structure and manages to have a much less intuitive syntax than PHP.
New Skript just wants to provide the same basic concept as Old Skript, just with an actual syntax.

PS: Both use English words. Skript already has a ton of totally random symbols that have gone too far. That’s the raison d’être for New Skript.
But that's the point of Skript. To provide a simple way to create plugin-like features for your server without having to learn Java and the parts related to it instead just focusing on development. PHP's syntax issues are in no way the same as Skripts. The need for actual syntax has never existed nor has anyone ever wanted to have a set syntax pattern. The community that exists around Skript exists because there isn't anything confusing about it. Sure, you can make awesome stuff and have it get confusing, but the basics of Skript are simple to pick up. It's just English words - every other programming language (in English) uses English words. Skript makes sentences which have sense and some context to them. Like, your example is more confusing, in your version of Skript than in the current versions of Skript (I'm not calling it New Skript or Old Skript, because you're not released anything, nor does your version replace Skript).

code_language.skript:
[LoadEvent]
@PlayerBlockPlacedEvent(block = "dirt|grass") // Matches dirt or grass blocks
@Permission("demoPlugin.useDirt")
func EventDemo(Player sender, Block block)
{
    block.Destroy();
    sender.Kill("Blocks are cool, but not these blocks.");
    Console.Log("Evil " + block.Name + " block was destroyed at " + block.X + ", " + block.Y + ", " + block.Z + ".");
}

code_language.skript:
on place of dirt or grass:
  if player has permission "demoPlugin.useDirt":
    cancel event
    kill the player
    send message "Evil %event-block% was destroyed at %event-location%." to console

Your example also has no consistency. You capitalise the start of each word in the event, then use camelcase for block.Destroy() and sender.Kill(), but then capitalise the start of Console and Log.

---------------------
A message to everyone, please stop asking for a thread to be locked or cleaned because you disagree. While the idea by Hola isn't being accepted by the majority, you're more than welcome to not read the thread or you can discuss with OP and others. That's kinda the point of forums.

i don't see you all complaining when Umbaska creates an addon then gets there own special category on the forms called "Umbaska modules".
Umbaska Modules section exists because it's an expansion. They're similar to skqAddons.
 
I've added a few more syntaxes to my Skript addon. Here is what I can now do:
code_language.skript:
If de surbur owner is a nub:
    If de surbur iz running Bukkit:
        Rape server
        Tell the owner to run Spigot
You can also do this:
code_language.skript:
On join of nub surbur:
    Don't let them join
Please give me your opinions.
 
I've added a few more syntaxes to my Skript addon. Here is what I can now do:
code_language.skript:
If de surbur owner is a nub:
    If de surbur iz running Bukkit:
        Rape server
        Tell the owner to run Spigot
You can also do this:
code_language.skript:
On join of nub surbur:
    Don't let them join
Please give me your opinions.

This was funny the first time. Stop recycling the same joke.
 
  • Like
Reactions: ThinkingAboutIt
code_language.skript:
[LoadJob]
@Repeat(3600000)  // Every hour
func LoopExample()
{
    Server.Message("You should try New Skript");
    NsStore.Set("peopleUsingNewSkript", Int(NsStore.Get("peopleUsingNewSkript")) + 1); // Because one person will start using it after the ad

    loop player in server.ConnectedPlayers
    {
        player.Message("Hello there, New Skript rules");
    }

    // But there is also a convenience method that does the same thing
    server.ConnectedPlayers.Message("Hello this does the same thing");
}

Okay, all this is nice and all, so how about we try to make a new New Skript that actually does something?

sample.ns
code_language.skript:
[LoadCommand]
@Command("createsurvey", "/createsurvey <name> <question>", "Make a new survey")
@Permission("survey.createSurvey")
func CreateSurvey(Player sender, ArgList args)
{
    string name <- args.Get("name");
    NsStore.Set("survey.list", NsStore.Get("survey.list") + ", " + name);
    NsStore.Set("survey." + name + ".question", args.Get("question"));
    sender.Message("New servey created. Add questions with /addquestion <survey> <question>");
}

[LoadCommand]
@Command("listsurveys", "/listsurveys", "List all the surveys made")
@Permission("survey.listSurveys")
func List(Player sender, ArgList args)
{
    sender.Message("These are the surveys: " + NsStore.Get("survey.list"));
}

[LoadCommand]
@Command("respond", "/respond <survey> <response>", "Look at the responses to a survey")
@Permission("survey.respond")
func List(Player sender, ArgList args)
{
    string query <- "survey." + args.Get("survey") + ".responses";
    NsStore.Set(query, NsStore.Get(query) + "\n" + args.Get("response"));
}

[LoadCommand]
@Command("responses", "/responses <survey>")
@Permission("survey.readResponses")
func List(Player sender, ArgList args)
{
    sender.Message("Responses:\n" + NsStore.Get("survey." + args.Get("survey") + ".responses"));
}

[LoadJob]
@Repeat(1800000) // 30 minutes
func Annoy()
{
    Server.Message("Have you tried any surveys? Use /listsurveys soon.");
}

NsStore is just a simple key-value storage aimed for quick-and-dirty plugin like this one. So, from this we can see that New Skript is easier than Java, has a syntax appropriate for this kind of work, and has more structure than Old Skript.
 
code_language.skript:
[LoadJob]
@Repeat(3600000)  // Every hour
func LoopExample()
{
    Server.Message("You should try New Skript");
    NsStore.Set("peopleUsingNewSkript", Int(NsStore.Get("peopleUsingNewSkript")) + 1); // Because one person will start using it after the ad

    loop player in server.ConnectedPlayers
    {
        player.Message("Hello there, New Skript rules");
    }

    // But there is also a convenience method that does the same thing
    server.ConnectedPlayers.Message("Hello this does the same thing");
}

Okay, all this is nice and all, so how about we try to make a new New Skript that actually does something?

sample.ns
code_language.skript:
[LoadCommand]
@Command("createsurvey", "/createsurvey <name> <question>", "Make a new survey")
@Permission("survey.createSurvey")
func CreateSurvey(Player sender, ArgList args)
{
    string name <- args.Get("name");
    NsStore.Set("survey.list", NsStore.Get("survey.list") + ", " + name);
    NsStore.Set("survey." + name + ".question", args.Get("question"));
    sender.Message("New servey created. Add questions with /addquestion <survey> <question>");
}

[LoadCommand]
@Command("listsurveys", "/listsurveys", "List all the surveys made")
@Permission("survey.listSurveys")
func List(Player sender, ArgList args)
{
    sender.Message("These are the surveys: " + NsStore.Get("survey.list"));
}

[LoadCommand]
@Command("respond", "/respond <survey> <response>", "Look at the responses to a survey")
@Permission("survey.respond")
func List(Player sender, ArgList args)
{
    string query <- "survey." + args.Get("survey") + ".responses";
    NsStore.Set(query, NsStore.Get(query) + "\n" + args.Get("response"));
}

[LoadCommand]
@Command("responses", "/responses <survey>")
@Permission("survey.readResponses")
func List(Player sender, ArgList args)
{
    sender.Message("Responses:\n" + NsStore.Get("survey." + args.Get("survey") + ".responses"));
}

[LoadJob]
@Repeat(1800000) // 30 minutes
func Annoy()
{
    Server.Message("Have you tried any surveys? Use /listsurveys soon.");
}

NsStore is just a simple key-value storage aimed for quick-and-dirty plugin like this one. So, from this we can see that New Skript is easier than Java, has a syntax appropriate for this kind of work, and has more structure than Old Skript.
It's very easy for you to just make up random syntax but when are you actually going to code the plugin lol
[doublepost=1494147518,1494146475][/doublepost]
code_language.skript:
[LoadJob]
@Repeat(3600000)  // Every hour
func LoopExample()
{
    Server.Message("You should try New Skript");
    NsStore.Set("peopleUsingNewSkript", Int(NsStore.Get("peopleUsingNewSkript")) + 1); // Because one person will start using it after the ad

    loop player in server.ConnectedPlayers
    {
        player.Message("Hello there, New Skript rules");
    }

    // But there is also a convenience method that does the same thing
    server.ConnectedPlayers.Message("Hello this does the same thing");
}

Okay, all this is nice and all, so how about we try to make a new New Skript that actually does something?

sample.ns
code_language.skript:
[LoadCommand]
@Command("createsurvey", "/createsurvey <name> <question>", "Make a new survey")
@Permission("survey.createSurvey")
func CreateSurvey(Player sender, ArgList args)
{
    string name <- args.Get("name");
    NsStore.Set("survey.list", NsStore.Get("survey.list") + ", " + name);
    NsStore.Set("survey." + name + ".question", args.Get("question"));
    sender.Message("New servey created. Add questions with /addquestion <survey> <question>");
}

[LoadCommand]
@Command("listsurveys", "/listsurveys", "List all the surveys made")
@Permission("survey.listSurveys")
func List(Player sender, ArgList args)
{
    sender.Message("These are the surveys: " + NsStore.Get("survey.list"));
}

[LoadCommand]
@Command("respond", "/respond <survey> <response>", "Look at the responses to a survey")
@Permission("survey.respond")
func List(Player sender, ArgList args)
{
    string query <- "survey." + args.Get("survey") + ".responses";
    NsStore.Set(query, NsStore.Get(query) + "\n" + args.Get("response"));
}

[LoadCommand]
@Command("responses", "/responses <survey>")
@Permission("survey.readResponses")
func List(Player sender, ArgList args)
{
    sender.Message("Responses:\n" + NsStore.Get("survey." + args.Get("survey") + ".responses"));
}

[LoadJob]
@Repeat(1800000) // 30 minutes
func Annoy()
{
    Server.Message("Have you tried any surveys? Use /listsurveys soon.");
}

NsStore is just a simple key-value storage aimed for quick-and-dirty plugin like this one. So, from this we can see that New Skript is easier than Java, has a syntax appropriate for this kind of work, and has more structure than Old Skript.
I'm quite sure no one here is willing to create you a new language just because you want it. Also, I will laugh along with the rest of the community if you end up creating this in Skript.
 
code_language.skript:
[LoadJob]
@Repeat(3600000)  // Every hour
func LoopExample()
{
    Server.Message("You should try New Skript");
    NsStore.Set("peopleUsingNewSkript", Int(NsStore.Get("peopleUsingNewSkript")) + 1); // Because one person will start using it after the ad

    loop player in server.ConnectedPlayers
    {
        player.Message("Hello there, New Skript rules");
    }

    // But there is also a convenience method that does the same thing
    server.ConnectedPlayers.Message("Hello this does the same thing");
}

Okay, all this is nice and all, so how about we try to make a new New Skript that actually does something?

sample.ns
code_language.skript:
[LoadCommand]
@Command("createsurvey", "/createsurvey <name> <question>", "Make a new survey")
@Permission("survey.createSurvey")
func CreateSurvey(Player sender, ArgList args)
{
    string name <- args.Get("name");
    NsStore.Set("survey.list", NsStore.Get("survey.list") + ", " + name);
    NsStore.Set("survey." + name + ".question", args.Get("question"));
    sender.Message("New servey created. Add questions with /addquestion <survey> <question>");
}

[LoadCommand]
@Command("listsurveys", "/listsurveys", "List all the surveys made")
@Permission("survey.listSurveys")
func List(Player sender, ArgList args)
{
    sender.Message("These are the surveys: " + NsStore.Get("survey.list"));
}

[LoadCommand]
@Command("respond", "/respond <survey> <response>", "Look at the responses to a survey")
@Permission("survey.respond")
func List(Player sender, ArgList args)
{
    string query <- "survey." + args.Get("survey") + ".responses";
    NsStore.Set(query, NsStore.Get(query) + "\n" + args.Get("response"));
}

[LoadCommand]
@Command("responses", "/responses <survey>")
@Permission("survey.readResponses")
func List(Player sender, ArgList args)
{
    sender.Message("Responses:\n" + NsStore.Get("survey." + args.Get("survey") + ".responses"));
}

[LoadJob]
@Repeat(1800000) // 30 minutes
func Annoy()
{
    Server.Message("Have you tried any surveys? Use /listsurveys soon.");
}

NsStore is just a simple key-value storage aimed for quick-and-dirty plugin like this one. So, from this we can see that New Skript is easier than Java, has a syntax appropriate for this kind of work, and has more structure than Old Skript.
This is basically the equivalent of writing in Java. Stop, right now. This isn't going to get anywhere.
 
I'm quite sure no one here is willing to create you a new language just because you want it. Also, I will laugh along with the rest of the community if you end up creating this in Skript.
I am not asking anyone to write it for me…
Also, why would I write this in Old Skript? That would be so pointlessly difficult and bad.
 
It's very easy for you to just make up random syntax but when are you actually going to code the plugin lol
[doublepost=1494147518,1494146475][/doublepost]
I'm quite sure no one here is willing to create you a new language just because you want it. Also, I will laugh along with the rest of the community if you end up creating this in Skript.

You strike me as the sort of person that needs help getting dressed in the morning.
 
No offense, but I don't see a point of using this plugin. I'd rather do it in Skript, which is 10x simpler and quicker to do than New Skript. I'm sure the majority of the community rather use a more simplistic plugin, Skript, than a more java-like plugin, New Skript.
 
You strike me as the sort of person that needs help getting dressed in the morning.
Are you actually going to add anything useful to this post?

I am not asking anyone to write it for me…
Also, why would I write this in Old Skript? That would be so pointlessly difficult and bad.
If you're not getting anyone else to make it then hurry up and actually start lol. We don't need random examples of syntax, it's better if you actually give us a working prototype.
 
Hi everyone,
The Skommittee has heard your concerns. New Skript will no longer be new, separate language. New Skript is now going to use Python to achieve the same goals. This way, at least real, applicable language skills can be learned without having to learn Java, while maintaining an easier and faster way of creating plugins for Minecraft servers. I will post some examples of the new Python syntax. I hope nobody is disappointed by this change, but it is for the best. Hopefully, a working demo will be available sooner thanks to the barriers of having to actually make a language.
 
Hi everyone,
The Skommittee has heard your concerns. New Skript will no longer be new, separate language. New Skript is now going to use Python to achieve the same goals. This way, at least real, applicable language skills can be learned without having to learn Java, while maintaining an easier and faster way of creating plugins for Minecraft servers. I will post some examples of the new Python syntax. I hope nobody is disappointed by this change, but it is for the best. Hopefully, a working demo will be available sooner thanks to the barriers of having to actually make a language.
If that's true then 'New Skript' is already done lol. http://www.jython.org/
 
Yes, I have seen Jython. New Skript Python Edition is not like that. NSPE is going to be way nicer than directly accessing the Java library.
NSPE?
[doublepost=1494277611,1494277507][/doublepost]
Yes, I have seen Jython. New Skript Python Edition is not like that. NSPE is going to be way nicer than directly accessing the Java library.
Jython is already working and does everything it needs to do. By making 'New Skript Python Edition' you change nothing. If we wanted python on minecraft we'd go to the already finished and working project.
 
NSPE?
[doublepost=1494277611,1494277507][/doublepost]
Jython is already working and does everything it needs to do. By making 'New Skript Python Edition', literally nothing is new. If we wanted python on minecraft we'd go to the already finished and working project.
vnvrrcK.png
 
Status
Not open for further replies.