Skip to content

Instantly share code, notes, and snippets.

@Blueyescat
Last active March 10, 2019 10:55
Show Gist options
  • Save Blueyescat/55955fc13f3115438e6da60418c6ad63 to your computer and use it in GitHub Desktop.
Save Blueyescat/55955fc13f3115438e6da60418c6ad63 to your computer and use it in GitHub Desktop.
++ and -- operators in Skript (with skript-mirror)
import:
ch.njol.skript.Skript
ch.njol.skript.classes.Changer$ChangeMode
ch.njol.skript.classes.Changer$ChangerUtils
ch.njol.skript.lang.Variable
function checkChangeability(expr: object, add: boolean) :: boolean:
if ChangerUtils.acceptsChange({_expr}, (ChangeMode.ADD if {_add} is true, else ChangeMode.REMOVE), number) is false:
Skript.error("%{_expr}% can't be %(""increased"") if {_add} is true, else ""decreased""%")
return false
return true
expression:
patterns:
++[ ]%number%
%number%[ ]++
--[ ]%number%
%number%[ ]--
return type: number
parse:
continue if checkChangeability(expression-1, (true if matched pattern is 0 or 1, else false))
get:
if matched pattern is 1 or 2:
set {_add} to true
(raw expression-1).change(event, [1], (ChangeMode.ADD if {_add} is true, else ChangeMode.REMOVE))
if {_add} is true:
return (expression-1) + (1 if matched pattern is 1, else 0)
else:
return (expression-1) - (1 if matched pattern is 3, else 0)
effect:
patterns:
%number%[ ]++
%number%[ ]--
parse:
continue if checkChangeability(expression-1, (true if matched pattern is 1, else false))
trigger:
(raw expression-1).change(event, [1], (ChangeMode.ADD if matched pattern is 1, else ChangeMode.REMOVE))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment