2015-11-28 21:49:37 +00:00
package me.TheBukor ;
import javax.annotation.Nullable ;
import org.bukkit.Bukkit ;
import org.bukkit.Location ;
import org.bukkit.inventory.ItemStack ;
import org.bukkit.plugin.java.JavaPlugin ;
2015-11-29 18:49:36 +00:00
import com.sk89q.worldedit.EditSession ;
2015-11-28 21:49:37 +00:00
import ch.njol.skript.Skript ;
import ch.njol.skript.classes.ClassInfo ;
import ch.njol.skript.classes.Parser ;
import ch.njol.skript.lang.ExpressionType ;
import ch.njol.skript.lang.ParseContext ;
import ch.njol.skript.registrations.Classes ;
import me.TheBukor.conditions.CondSelectionContains ;
2015-12-13 23:12:13 +00:00
import me.TheBukor.effects.EffDrainLiquid ;
2015-11-29 18:49:36 +00:00
import me.TheBukor.effects.EffDrawLineWE ;
2015-12-12 20:17:45 +00:00
import me.TheBukor.effects.EffMakePyramid ;
import me.TheBukor.effects.EffMakeSphere ;
2015-12-13 23:12:13 +00:00
import me.TheBukor.effects.EffNaturalize ;
2015-12-12 20:17:45 +00:00
import me.TheBukor.effects.EffRememberChanges ;
2015-12-13 23:12:13 +00:00
import me.TheBukor.effects.EffSimulateSnow ;
2015-11-29 18:49:36 +00:00
import me.TheBukor.effects.EffUndoRedoSession ;
2015-12-05 00:35:39 +00:00
import me.TheBukor.expressions.ExprAreaOfSchematic ;
2015-11-28 21:49:37 +00:00
import me.TheBukor.expressions.ExprAreaOfSelection ;
2015-11-29 18:49:36 +00:00
import me.TheBukor.expressions.ExprChangedBlocksSession ;
import me.TheBukor.expressions.ExprEditSessionLimit ;
2015-12-04 00:57:19 +00:00
import me.TheBukor.expressions.ExprFileNBTv1_8_R1 ;
import me.TheBukor.expressions.ExprFileNBTv1_8_R2 ;
import me.TheBukor.expressions.ExprFileNBTv1_8_R3 ;
2015-11-28 21:49:37 +00:00
import me.TheBukor.expressions.ExprHeightOfSchematic ;
import me.TheBukor.expressions.ExprHeightOfSelection ;
2015-12-05 04:24:33 +00:00
import me.TheBukor.expressions.ExprItemNBTv1_7_R1 ;
import me.TheBukor.expressions.ExprItemNBTv1_7_R2 ;
import me.TheBukor.expressions.ExprItemNBTv1_7_R3 ;
import me.TheBukor.expressions.ExprItemNBTv1_7_R4 ;
2015-11-28 21:49:37 +00:00
import me.TheBukor.expressions.ExprItemNBTv1_8_R1 ;
import me.TheBukor.expressions.ExprItemNBTv1_8_R2 ;
import me.TheBukor.expressions.ExprItemNBTv1_8_R3 ;
import me.TheBukor.expressions.ExprLengthOfSchematic ;
import me.TheBukor.expressions.ExprLengthOfSelection ;
2015-12-05 04:24:33 +00:00
import me.TheBukor.expressions.ExprNBTv1_7_R1 ;
import me.TheBukor.expressions.ExprNBTv1_7_R2 ;
import me.TheBukor.expressions.ExprNBTv1_7_R3 ;
import me.TheBukor.expressions.ExprNBTv1_7_R4 ;
2015-11-28 21:49:37 +00:00
import me.TheBukor.expressions.ExprNBTv1_8_R1 ;
import me.TheBukor.expressions.ExprNBTv1_8_R2 ;
import me.TheBukor.expressions.ExprNBTv1_8_R3 ;
2015-11-29 19:36:14 +00:00
import me.TheBukor.expressions.ExprNewEditSession ;
2015-11-28 21:49:37 +00:00
import me.TheBukor.expressions.ExprSelectionOfPlayer ;
import me.TheBukor.expressions.ExprSelectionPos1 ;
import me.TheBukor.expressions.ExprSelectionPos2 ;
2015-12-05 04:24:33 +00:00
import me.TheBukor.expressions.ExprTagOfv1_7_R1 ;
import me.TheBukor.expressions.ExprTagOfv1_7_R2 ;
import me.TheBukor.expressions.ExprTagOfv1_7_R3 ;
import me.TheBukor.expressions.ExprTagOfv1_7_R4 ;
2015-11-28 21:49:37 +00:00
import me.TheBukor.expressions.ExprTagOfv1_8_R1 ;
import me.TheBukor.expressions.ExprTagOfv1_8_R2 ;
import me.TheBukor.expressions.ExprTagOfv1_8_R3 ;
import me.TheBukor.expressions.ExprVolumeOfSchematic ;
import me.TheBukor.expressions.ExprVolumeOfSelection ;
import me.TheBukor.expressions.ExprWidthOfSchematic ;
import me.TheBukor.expressions.ExprWidthOfSelection ;
import net.minecraft.server.v1_8_R1.MojangsonParser ;
import net.minecraft.server.v1_8_R1.NBTTagCompound ;
import net.minecraft.server.v1_8_R2.MojangsonParseException ;
public class SkStuff extends JavaPlugin {
private int condAmount = 0 ;
private int exprAmount = 0 ;
private int typeAmount = 0 ;
2015-11-29 18:49:36 +00:00
private int effAmount = 0 ;
2015-12-12 20:17:45 +00:00
2015-11-28 21:49:37 +00:00
public void onEnable ( ) {
if ( Bukkit . getPluginManager ( ) . getPlugin ( " Skript " ) ! = null ) {
Skript . registerAddon ( this ) ;
getLogger ( ) . info ( " SkStuff " + this . getDescription ( ) . getVersion ( ) + " has been successfully enabled! " ) ;
2015-12-05 04:24:33 +00:00
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.7.2) " ) ) {
getLogger ( ) . info ( " Successfully found 1.7.2! Registering version specific expressions... " ) ;
exprAmount + = 3 ;
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_7_R1 . class , net . minecraft . server . v1_7_R1 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_7_R1 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_7_R1 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
//Skript.registerExpression(ExprFileNBTv1_7_R1.class, net.minecraft.server.v1_7_R1.NBTTagCompound.class, ExpressionType.PROPERTY, "nbt[[ ]tag[s]] from [file] %string%");
Classes . registerClass ( new ClassInfo < net . minecraft . server . v1_7_R1 . NBTTagCompound > ( net . minecraft . server . v1_7_R1 . NBTTagCompound . class , " compound " ) . name ( " NBT Tag Compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . parser ( new Parser < net . minecraft . server . v1_7_R1 . NBTTagCompound > ( ) {
2015-12-05 04:24:33 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " {.+:.+} " ;
2015-12-05 04:24:33 +00:00
}
@Override
@Nullable
public net . minecraft . server . v1_7_R1 . NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
net . minecraft . server . v1_7_R1 . NBTTagCompound NBT = new net . minecraft . server . v1_7_R1 . NBTTagCompound ( ) ;
net . minecraft . server . v1_7_R1 . NBTTagCompound NBT1 = ( net . minecraft . server . v1_7_R1 . NBTTagCompound ) net . minecraft . server . v1_7_R1 . MojangsonParser . a ( s ) ;
NBT . set ( " " , NBT1 ) ;
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-12-05 04:24:33 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-12-05 04:24:33 +00:00
}
@Override
public String toString ( net . minecraft . server . v1_7_R1 . NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( net . minecraft . server . v1_7_R1 . NBTTagCompound compound ) {
return compound . toString ( ) ;
}
} ) ) ;
}
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.7.5) " ) ) {
getLogger ( ) . info ( " Successfully found 1.7.5! Registering version specific expressions... " ) ;
exprAmount + = 3 ;
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_7_R2 . class , net . minecraft . server . v1_7_R2 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_7_R2 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_7_R2 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
//Skript.registerExpression(ExprFileNBTv1_7_R2.class, net.minecraft.server.v1_7_R2.NBTTagCompound.class, ExpressionType.PROPERTY, "nbt[[ ]tag[s]] from [file] %string%");
Classes . registerClass ( new ClassInfo < net . minecraft . server . v1_7_R2 . NBTTagCompound > ( net . minecraft . server . v1_7_R2 . NBTTagCompound . class , " compound " ) . name ( " NBT Tag Compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . parser ( new Parser < net . minecraft . server . v1_7_R2 . NBTTagCompound > ( ) {
2015-12-05 04:24:33 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " nbt:{.+:.+} " ;
2015-12-05 04:24:33 +00:00
}
@Override
@Nullable
public net . minecraft . server . v1_7_R2 . NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
net . minecraft . server . v1_7_R2 . NBTTagCompound NBT = new net . minecraft . server . v1_7_R2 . NBTTagCompound ( ) ;
net . minecraft . server . v1_7_R2 . NBTTagCompound NBT1 = ( net . minecraft . server . v1_7_R2 . NBTTagCompound ) net . minecraft . server . v1_7_R2 . MojangsonParser . parse ( s ) ;
NBT . set ( " " , NBT1 ) ;
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-12-05 04:24:33 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-12-05 04:24:33 +00:00
}
@Override
public String toString ( net . minecraft . server . v1_7_R2 . NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( net . minecraft . server . v1_7_R2 . NBTTagCompound compound ) {
2015-12-12 20:17:45 +00:00
return " nbt: " + compound . toString ( ) ;
2015-12-05 04:24:33 +00:00
}
} ) ) ;
}
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.7.9) " ) ) {
getLogger ( ) . info ( " Successfully found 1.7.9! Registering version specific expressions... " ) ;
exprAmount + = 3 ;
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_7_R3 . class , net . minecraft . server . v1_7_R3 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_7_R3 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_7_R3 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
//Skript.registerExpression(ExprFileNBTv1_7_R3.class, net.minecraft.server.v1_7_R3.NBTTagCompound.class, ExpressionType.PROPERTY, "nbt[[ ]tag[s]] from [file] %string%");
Classes . registerClass ( new ClassInfo < net . minecraft . server . v1_7_R3 . NBTTagCompound > ( net . minecraft . server . v1_7_R3 . NBTTagCompound . class , " compound " ) . name ( " NBT Tag Compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . parser ( new Parser < net . minecraft . server . v1_7_R3 . NBTTagCompound > ( ) {
2015-12-05 04:24:33 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " nbt:{.+:.+} " ;
2015-12-05 04:24:33 +00:00
}
@Override
@Nullable
public net . minecraft . server . v1_7_R3 . NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
net . minecraft . server . v1_7_R3 . NBTTagCompound NBT = new net . minecraft . server . v1_7_R3 . NBTTagCompound ( ) ;
net . minecraft . server . v1_7_R3 . NBTTagCompound NBT1 = ( net . minecraft . server . v1_7_R3 . NBTTagCompound ) net . minecraft . server . v1_7_R3 . MojangsonParser . parse ( s ) ;
NBT . set ( " " , NBT1 ) ;
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-12-05 04:24:33 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-12-05 04:24:33 +00:00
}
@Override
public String toString ( net . minecraft . server . v1_7_R3 . NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( net . minecraft . server . v1_7_R3 . NBTTagCompound compound ) {
2015-12-12 20:17:45 +00:00
return " nbt: " + compound . toString ( ) ;
2015-12-05 04:24:33 +00:00
}
} ) ) ;
}
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.7.10) " ) ) {
getLogger ( ) . info ( " Successfully found 1.7.10! Registering version specific expressions... " ) ;
exprAmount + = 3 ;
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_7_R4 . class , net . minecraft . server . v1_7_R4 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_7_R4 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_7_R4 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
//Skript.registerExpression(ExprFileNBTv1_7_R4.class, net.minecraft.server.v1_7_R4.NBTTagCompound.class, ExpressionType.PROPERTY, "nbt[[ ]tag[s]] from [file] %string%");
Classes . registerClass ( new ClassInfo < net . minecraft . server . v1_7_R4 . NBTTagCompound > ( net . minecraft . server . v1_7_R4 . NBTTagCompound . class , " compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . name ( " NBT Tag Compound " ) . parser ( new Parser < net . minecraft . server . v1_7_R4 . NBTTagCompound > ( ) {
2015-12-05 04:24:33 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " nbt:{.+:.+} " ;
2015-12-05 04:24:33 +00:00
}
@Override
@Nullable
public net . minecraft . server . v1_7_R4 . NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
net . minecraft . server . v1_7_R4 . NBTTagCompound NBT = new net . minecraft . server . v1_7_R4 . NBTTagCompound ( ) ;
net . minecraft . server . v1_7_R4 . NBTTagCompound NBT1 = ( net . minecraft . server . v1_7_R4 . NBTTagCompound ) net . minecraft . server . v1_7_R4 . MojangsonParser . parse ( s ) ;
NBT . set ( " " , NBT1 ) ;
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-12-05 04:24:33 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-12-05 04:24:33 +00:00
}
@Override
public String toString ( net . minecraft . server . v1_7_R4 . NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( net . minecraft . server . v1_7_R4 . NBTTagCompound compound ) {
2015-12-12 20:17:45 +00:00
return " nbt: " + compound . toString ( ) ;
2015-12-05 04:24:33 +00:00
}
} ) ) ;
}
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.8) " ) ) {
2015-11-28 21:49:37 +00:00
getLogger ( ) . info ( " Successfully found 1.8! Registering version specific expressions... " ) ;
2015-12-05 00:35:39 +00:00
exprAmount + = 4 ;
2015-11-28 21:49:37 +00:00
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_8_R1 . class , NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_8_R1 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_8_R1 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
2015-12-05 00:35:39 +00:00
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
Skript . registerExpression ( ExprFileNBTv1_8_R1 . class , NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] from [file] %string% " ) ;
Classes . registerClass ( new ClassInfo < NBTTagCompound > ( NBTTagCompound . class , " compound " ) . name ( " NBT Tag Compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . parser ( new Parser < NBTTagCompound > ( ) {
2015-11-28 21:49:37 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " nbt:{.+:.+} " ;
2015-11-28 21:49:37 +00:00
}
@Override
@Nullable
2015-11-29 18:49:36 +00:00
public NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
NBTTagCompound NBT = new NBTTagCompound ( ) ;
NBTTagCompound NBT1 = null ;
NBT1 = MojangsonParser . parse ( s ) ;
NBT . a ( NBT1 ) ;
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-11-28 21:49:37 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-11-28 21:49:37 +00:00
}
@Override
public String toString ( NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( NBTTagCompound compound ) {
2015-12-12 20:17:45 +00:00
return " nbt: " + compound . toString ( ) ;
2015-11-28 21:49:37 +00:00
}
2015-11-29 18:49:36 +00:00
} ) ) ;
2015-11-28 21:49:37 +00:00
}
2015-12-05 04:24:33 +00:00
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.8.3) " ) ) {
2015-11-28 21:49:37 +00:00
getLogger ( ) . info ( " Successfully found 1.8.3! Registering version specific expressions... " ) ;
2015-12-05 00:35:39 +00:00
exprAmount + = 4 ;
2015-11-28 21:49:37 +00:00
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_8_R2 . class , net . minecraft . server . v1_8_R2 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_8_R2 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_8_R2 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
2015-12-05 00:35:39 +00:00
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
Skript . registerExpression ( ExprFileNBTv1_8_R2 . class , net . minecraft . server . v1_8_R2 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] from [file] %string% " ) ;
Classes . registerClass ( new ClassInfo < net . minecraft . server . v1_8_R2 . NBTTagCompound > ( net . minecraft . server . v1_8_R2 . NBTTagCompound . class , " compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . name ( " NBT Tag Compound " ) . parser ( new Parser < net . minecraft . server . v1_8_R2 . NBTTagCompound > ( ) {
2015-11-28 21:49:37 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " nbt:{.+:.+} " ;
2015-11-28 21:49:37 +00:00
}
@Override
@Nullable
2015-11-29 18:49:36 +00:00
public net . minecraft . server . v1_8_R2 . NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
net . minecraft . server . v1_8_R2 . NBTTagCompound NBT = new net . minecraft . server . v1_8_R2 . NBTTagCompound ( ) ;
try {
net . minecraft . server . v1_8_R2 . NBTTagCompound NBT1 = net . minecraft . server . v1_8_R2 . MojangsonParser . parse ( s ) ;
NBT . a ( NBT1 ) ;
} catch ( MojangsonParseException ex ) {
Skript . warning ( " Error when parsing NBT - " + ex . getMessage ( ) ) ;
}
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-11-28 21:49:37 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-11-28 21:49:37 +00:00
}
@Override
public String toString ( net . minecraft . server . v1_8_R2 . NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( net . minecraft . server . v1_8_R2 . NBTTagCompound compound ) {
2015-12-12 20:17:45 +00:00
return " nbt: " + compound . toString ( ) ;
2015-11-28 21:49:37 +00:00
}
2015-11-29 18:49:36 +00:00
} ) ) ;
2015-11-28 21:49:37 +00:00
}
if ( Bukkit . getVersion ( ) . contains ( " (MC: 1.8.4) " ) | | Bukkit . getVersion ( ) . contains ( " (MC: 1.8.5) " ) | | Bukkit . getVersion ( ) . contains ( " (MC: 1.8.6) " ) | | Bukkit . getVersion ( ) . contains ( " (MC: 1.8.7) " ) | | Bukkit . getVersion ( ) . contains ( " (MC: 1.8.8) " ) ) {
getLogger ( ) . info ( " Successfully found 1.8.4 - 1.8.8! Registering version specific expressions... " ) ;
2015-12-05 00:35:39 +00:00
exprAmount + = 4 ;
2015-11-28 21:49:37 +00:00
typeAmount + = 1 ;
Skript . registerExpression ( ExprNBTv1_8_R3 . class , net . minecraft . server . v1_8_R3 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] of %entity/block/itemstack% " , " %entity/block/itemstack%'s nbt[[ ]tag[s]] " ) ;
Skript . registerExpression ( ExprItemNBTv1_8_R3 . class , ItemStack . class , ExpressionType . SIMPLE , " %itemstack% with [custom] nbt[[ ]tag[s]] %string% " ) ;
Skript . registerExpression ( ExprTagOfv1_8_R3 . class , Object . class , ExpressionType . SIMPLE , " [nbt[ ]]tag %string% of [nbt [compound]] %compound% " ) ;
2015-12-05 00:35:39 +00:00
//WARNING! HIGHLY EXPERIMENTAL, IT CAN CORRUPT WORLDS AT CURRENT VERSION, USE AT YOUR OWN RISK!
2015-12-12 20:17:45 +00:00
Skript . registerExpression ( ExprFileNBTv1_8_R3 . class , net . minecraft . server . v1_8_R3 . NBTTagCompound . class , ExpressionType . PROPERTY , " nbt[[ ]tag[s]] from [file] %string% " ) ;
Classes . registerClass ( new ClassInfo < net . minecraft . server . v1_8_R3 . NBTTagCompound > ( net . minecraft . server . v1_8_R3 . NBTTagCompound . class , " compound " ) . user ( " ((nbt)?( ?tag)?) ?compounds? " ) . name ( " NBT Compound " ) . parser ( new Parser < net . minecraft . server . v1_8_R3 . NBTTagCompound > ( ) {
2015-11-28 21:49:37 +00:00
@Override
public String getVariableNamePattern ( ) {
2015-12-12 20:17:45 +00:00
return " nbt:{.+:.+} " ;
2015-11-28 21:49:37 +00:00
}
@Override
@Nullable
2015-11-29 18:49:36 +00:00
public net . minecraft . server . v1_8_R3 . NBTTagCompound parse ( String s , ParseContext context ) {
2015-12-12 20:17:45 +00:00
if ( s . startsWith ( " { " ) ) {
net . minecraft . server . v1_8_R3 . NBTTagCompound NBT = new net . minecraft . server . v1_8_R3 . NBTTagCompound ( ) ;
try {
net . minecraft . server . v1_8_R3 . NBTTagCompound NBT1 = net . minecraft . server . v1_8_R3 . MojangsonParser . parse ( s ) ;
NBT . a ( NBT1 ) ;
} catch ( net . minecraft . server . v1_8_R3 . MojangsonParseException ex ) {
return null ;
}
if ( NBT . isEmpty ( ) | | NBT = = null ) {
return null ;
}
return NBT ;
2015-11-28 21:49:37 +00:00
}
2015-12-12 20:17:45 +00:00
return null ;
2015-11-28 21:49:37 +00:00
}
@Override
public String toString ( net . minecraft . server . v1_8_R3 . NBTTagCompound compound , int arg1 ) {
return compound . toString ( ) ;
}
@Override
public String toVariableNameString ( net . minecraft . server . v1_8_R3 . NBTTagCompound compound ) {
2015-12-12 20:17:45 +00:00
return " nbt: " + compound . toString ( ) ;
2015-11-28 21:49:37 +00:00
}
2015-11-29 18:49:36 +00:00
} ) ) ;
2015-11-28 21:49:37 +00:00
}
if ( Bukkit . getPluginManager ( ) . getPlugin ( " WorldEdit " ) ! = null ) {
getLogger ( ) . info ( " WorldEdit found! Registering WorldEdit stuff... " ) ;
condAmount + = 1 ;
2015-12-13 23:12:13 +00:00
effAmount + = 8 ;
2015-12-05 00:35:39 +00:00
exprAmount + = 16 ;
2015-11-29 18:49:36 +00:00
typeAmount + = 1 ;
2015-11-28 21:49:37 +00:00
Skript . registerCondition ( CondSelectionContains . class , " [(world[ ]edit|we)] selection of %player% (contains|has) %location% " , " %player%'s [(world[ ]edit|we)] selection (contains|has) %location% " , " [(world[ ]edit|we)] selection of %player% does(n't| not) (contain|have) %location% " , " %player%'s [(world[ ]edit|we)] selection does(n't| not) (contain|have) %location% " ) ;
2015-12-13 23:12:13 +00:00
Skript . registerEffect ( EffDrawLineWE . class , " (create|draw|make) [a[n]] (0<> (no(n|t)(-| )hollow|filled|)|1<> hollow) line from %location% to %location% (using|with) [edit[ ]session] %editsession% (using|with) [block[s]] %itemstacks% [with] thick[ness] %double% " ) ;
Skript . registerEffect ( EffUndoRedoSession . class , " (0<> undo|1<> redo) (change|edit)s (of|from) [edit[ ]session] %editsession% " ) ;
Skript . registerEffect ( EffRememberChanges . class , " make %player% (remember|be able to undo) changes (of|from) [edit[ ]session] %editsession% " ) ;
Skript . registerEffect ( EffMakeSphere . class , " (create|make) [a[n]] (0<> (no(n|t)(-| )hollow|filled|)|1<> hollow) (ellipsoid|sphere) [centered] at %location% [with] radius [of] %double%, %double%(,| and) %double% (using|with) [edit[ ]session] %editsession% (using|with) [block[s]] %itemstacks% " ) ;
Skript . registerEffect ( EffSimulateSnow . class , " (simulate snow at|place snow over) %location% (in|within) [a] radius [of] %double% (using|with) [edit[ ]session] %editsession% " , " make %location% snowy (in|within) [a] radius [of] %double% (using|with) [edit[ ]session] %editsession% " ) ;
Skript . registerEffect ( EffMakePyramid . class , " (create|make) [a[n]] (0<> (no(n|t)(-| )hollow|filled|)|1<> hollow) pyramid at %location% [with] radius [of] %integer% (using|with) [edit[ ]session] %editsession% (using|with) [block[s]] %itemstacks% " ) ;
Skript . registerEffect ( EffDrainLiquid . class , " (drain|remove) [all] liquid[s] at %location% (in|within) [a] radius [of] %double% (using|with) [edit[ ]session] %editsession% " ) ;
Skript . registerEffect ( EffNaturalize . class , " naturalize ([cuboid] region|[all] blocks) (from|between) %location% (to|and) %location% (using|with) [edit[ ]session] %editsession% " ) ;
2015-11-29 18:49:36 +00:00
Skript . registerExpression ( ExprEditSessionLimit . class , Integer . class , ExpressionType . PROPERTY , " [block] limit [change] of [edit[ ]session] %editsession% " ) ;
Skript . registerExpression ( ExprChangedBlocksSession . class , Integer . class , ExpressionType . PROPERTY , " number of [all] changed blocks (in|of) [edit[ ]session] %editsession% " ) ;
2015-12-12 20:17:45 +00:00
Skript . registerExpression ( ExprNewEditSession . class , EditSession . class , ExpressionType . PROPERTY , " new edit[ ]session in [world] %world% [with] [max[imum]] [block] limit [change] [of] %integer% " ) ;
2015-11-28 21:49:37 +00:00
Skript . registerExpression ( ExprSelectionOfPlayer . class , Location . class , ExpressionType . PROPERTY , " [(world[ ]edit|we)] selection of %player% " , " %player%'s [(world[ ]edit|we)] selection " ) ;
Skript . registerExpression ( ExprSelectionPos1 . class , Location . class , ExpressionType . PROPERTY , " [(world[ ]edit|we)] po(s|int)[ ]1 of %player% " , " %player%'s [(world[ ]edit|we)] po(s|int)[ ]1 " ) ;
Skript . registerExpression ( ExprSelectionPos2 . class , Location . class , ExpressionType . PROPERTY , " [(world[ ]edit|we)] po(s|int)[ ]2 of %player% " , " %player%'s [(world[ ]edit|we)] po(s|int)[ ]2 " ) ;
Skript . registerExpression ( ExprVolumeOfSelection . class , Integer . class , ExpressionType . SIMPLE , " volume of [(world[ ]edit|we)] selection of %player% " , " %player%'s [(world[ ]edit|we)] selection volume " ) ;
Skript . registerExpression ( ExprWidthOfSelection . class , Integer . class , ExpressionType . SIMPLE , " (x( |-)size|width) of [(world[ ]edit|we)] selection of %player% " , " %player%'s [(world[ ]edit|we)] selection (x( |-)size|width) " ) ;
Skript . registerExpression ( ExprLengthOfSelection . class , Integer . class , ExpressionType . SIMPLE , " (z( |-)size|length) of [(world[ ]edit|we)] selection of %player% " , " %player%'s [(world[ ]edit|we) ]selection (z( |-)size|length) " ) ;
Skript . registerExpression ( ExprHeightOfSelection . class , Integer . class , ExpressionType . SIMPLE , " (y( |-)size|height) of [(world[ ]edit|we)] selection of %player% " , " %player%'s [(world[ ]edit|we) ]selection (y( |-)size|height) " ) ;
Skript . registerExpression ( ExprAreaOfSelection . class , Integer . class , ExpressionType . SIMPLE , " area of [(world[ ]edit|we)] selection of %player% " , " %player%'s [(world[ ]edit|we)] selection area " ) ;
2015-12-05 00:35:39 +00:00
Skript . registerExpression ( ExprVolumeOfSchematic . class , Integer . class , ExpressionType . SIMPLE , " volume of schem[atic] [from] %string% " ) ;
Skript . registerExpression ( ExprWidthOfSchematic . class , Integer . class , ExpressionType . SIMPLE , " (x( |-)size|width) of schem[atic] [from] %string% " ) ;
Skript . registerExpression ( ExprHeightOfSchematic . class , Integer . class , ExpressionType . SIMPLE , " (y( |-)size|height) of schem[atic] [from] %string% " ) ;
Skript . registerExpression ( ExprLengthOfSchematic . class , Integer . class , ExpressionType . SIMPLE , " (z( |-)size|length) of schem[atic] [from] %string% " ) ;
Skript . registerExpression ( ExprAreaOfSchematic . class , Integer . class , ExpressionType . SIMPLE , " area of schem[atic] [from] %string% " ) ;
2015-12-12 20:17:45 +00:00
Classes . registerClass ( new ClassInfo < EditSession > ( EditSession . class , " editsession " ) . name ( " Edit Session " ) . user ( " edit ?sessions? " ) ) ;
2015-11-28 21:49:37 +00:00
}
2015-11-29 18:49:36 +00:00
getLogger ( ) . info ( " Everything ready! Loaded a total of " + condAmount + ( condAmount = = 1 ? " condition, " : " conditions, " ) + effAmount + ( effAmount = = 1 ? " effect, " : " effects, " ) + exprAmount + ( exprAmount = = 1 ? " expression " : " expressions and " ) + typeAmount + ( typeAmount = = 1 ? " type! " : " types! " ) ) ;
} else {
getLogger ( ) . info ( " Unable to find Skript, disabling SkStuff... " ) ;
2015-12-05 00:35:39 +00:00
Bukkit . getPluginManager ( ) . disablePlugin ( this ) ; ;
2015-11-28 21:49:37 +00:00
}
2015-11-29 18:49:36 +00:00
}
2015-11-28 21:49:37 +00:00
public void onDisable ( ) {
2015-12-05 00:35:39 +00:00
getLogger ( ) . info ( " SkStuff " + this . getDescription ( ) . getVersion ( ) + " has been successfully disabled. " ) ;
2015-11-28 21:49:37 +00:00
}
}