SkaMoore.sk

Created by Max094_Reikeb

Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.

#   _____ _         __  __                      
#  / ____| |       |  \/  |                     
# | (___ | | ____ _| \  / | ___   ___  _ __ ___ 
#  \___ \| |/ / _` | |\/| |/ _ \ / _ \| '__/ _ \
#  ____) |   < (_| | |  | | (_) | (_) | | |  __/
# |_____/|_|\_\__,_|_|  |_|\___/ \___/|_|  \___|
#Author : Max094_Reikeb
#Contributors : Max094_Reikeb | Olyno | Anarchick | nope | blue | Snow-Pyon | Govindas | EWS
#On the ideas of Max094_Reikeb | JustAlban' | ZQNKH | Snow-Pyon | EWS

import:
    java.lang.System
    ch.njol.skript.Skript
    ch.njol.skript.variables.Variables
	
    java.lang.Number

    java.util.TreeSet
    java.util.Map$Entry

plural expression (nl|new line|newline):
  return type: text
  get:
    return last character of System.lineSeparator()

on join:
    set {skmbiome::%player%::before} to biome at player
    if {skmban::%player%::is} is set:
        if difference between {skmban::%player%::when} and now is less than {skmban::%player%::time}:
            set join message to ""
            set {_skmdifference.%player%} to difference between {skmban::%player%::when} and now
            set {_skmtimeleft.%player%} to difference between {skmban::%player%::time} and {_skmdifference.%player%}
            kick player due to "&cError : You have been banned! %nl% %nl%&b➤ Ban date : &a%{skmban::%player%::when}% %nl%&b➤ Ban time : &a%{skmban::%player%::time}% %nl%&b➤ Ban left : &a%{_skmtimeleft.%player%}% %nl%&b➤ Reason : &a%{skmban::%player%::reason}%"
            stop
        else:
            delete {skmban::%player%::when}
            delete {skmban::%player%::time}
            delete {skmban::%player%::reason}
            delete {skmban::%player%::is}
            wait 2 seconds
            send "&f[&4TempBan&f] &cYour tempban is over. Be careful next time." to player

condition [has] %object% changed biome:
    check:
        set {skmbiome::%expression-1%::after} to biome at expression-1
        set {biome::%expression-1%::avant} to {skmbiome::%expression-1%::before}
        if biome at expression-1 != {skmbiome::%expression-1%::before}:
            set {skmbiome::%expression-1%::before} to biome at expression-1
            set {biome::%expression-1%::apres} to biome at expression-1
            continue

effect tempban %offline player% (due to|for) %string% for %timespan%:
    trigger:
        set {skmban::%expression-1%::reason} to expression-2
        set {skmban::%expression-1%::time} to expression-3
        set {skmban::%expression-1%::when} to now
        set {skmban::%expression-1%::is} to true
        kick expression-1 due to "&cYou have been banned! %nl% %nl%&b➤ Ban date : &a%{skmban::%expression-1%::when}% %nl%&b➤ Ban time : &a%expression-3% %nl%&b➤ Ban left : &a%expression-3% %nl%&b➤ Reason : &a%{skmban::%expression-1%::reason}%"
        broadcast "&f[&4TempBan&f] &c%expression-1% have been banned for %expression-3% because : %expression-2%"

effect tempardon %offline player%:
    trigger:
        delete {skmban::%expression-1%::is}
        delete {skmban::%expression-1%::when}
        delete {skmban::%expression-1%::time}
        delete {skmban::%expression-1%::reason}

effect make %entities% [show] [the] (swing their (0¦main|3¦off) hand|1¦take damage|2¦leave bed|4¦critical|5¦magic critical) [effect] [to %-players%]:
    trigger:
        set {_packet-container} to new play_server_animation packet
        set int pnum 1 of {_packet-container} to parser mark
        loop expressions-1:
            set loop-value's world pentity 0 of {_packet-container} to loop-value
            set {_viewers::*} to expressions-2
            if {_viewers::*} isn't set:
                set {_viewers::*} to all players
            send packet {_packet-container} to {_viewers::*}

effect send coded (text|expression) %string% from %offline player% (with keys|as) %integer%, %integer% and %integer% [uncoded for %-players%]:
    trigger:
        set {_word::*} to expression-1 to all lowercase split at ""
        set {_letters::*} to split "abcdefghijklmnopqrstuvwxyz" at ""
        loop {_word::*}:
            loop {_letters::*}:
                if loop-value-1 is loop-value-2:
                    add loop-index-2 parsed as int to {_newword::*}
        loop {_newword::*}:
            set {_codedword::%loop-index%} to "%((loop-value + expression-3) * expression-4 / expression-5)%"
        remove last element of {_codedword::*} from {_codedword::*}
        set {_codedword::*} to join {_codedword::*} with " "
        broadcast "<%expression-2%> %{_codedword::*}%"
        set {_viewers::*} to expressions-6
        if {_viewers::*} is set:
            send "<%expression-2%> %expression-1%" to {_viewers::*}

effect give %player% unstackable item %item%:
    trigger:
        loop 36 times:
            slot loop-number -1 of expression-1's inventory is air:
                set slot loop-number -1 of expression-1's inventory to expression-2
                set {_fit} to true
                exit loop
        {_fit} is not set:
            drop expression-2 at location of expression-1

local effect set variable %object% to %object% in %event%:
	trigger:
		set {_name} to expr-1.getName().toString(expr-3)
		Variables.setVariable({_name}, expr-2, expr-3 and expr-1.isLocal())
		
local expression variable %objects% in %event%:
	return type: object
	get:
		set {_name} to expr-1.getName().toString(expr-2)
		return Variables.getVariable({_name}, expr-2 and expr-1.isLocal())