123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package me.km.snuviscript.commands;
- import me.hammerle.snuviscript.code.ScriptManager;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.LivingEntity;
- import net.minecraft.entity.player.PlayerEntity;
- import net.minecraft.util.DamageSource;
- import net.minecraftforge.registries.ForgeRegistries;
- public class DamageCommands {
- public static void registerFunctions(ScriptManager sm) {
- sm.registerFunction("damage.getimmediatesource", (sc, in) -> ((DamageSource) in[0].get(sc)).getImmediateSource());
- sm.registerFunction("damage.gettruesource", (sc, in) -> ((DamageSource) in[0].get(sc)).getTrueSource());
- sm.registerFunction("damage.iscreativeplayer", (sc, in) -> ((DamageSource) in[0].get(sc)).isCreativePlayer());
- sm.registerFunction("damage.isabsolute", (sc, in) -> ((DamageSource) in[0].get(sc)).isDamageAbsolute());
- sm.registerFunction("damage.isdifficultyscaled", (sc, in) -> ((DamageSource) in[0].get(sc)).isDifficultyScaled());
- sm.registerFunction("damage.isexplosion", (sc, in) -> ((DamageSource) in[0].get(sc)).isExplosion());
- sm.registerFunction("damage.isfire", (sc, in) -> ((DamageSource) in[0].get(sc)).isFireDamage());
- sm.registerFunction("damage.ismagic", (sc, in) -> ((DamageSource) in[0].get(sc)).isMagicDamage());
- sm.registerFunction("damage.isprojectile", (sc, in) -> ((DamageSource) in[0].get(sc)).isProjectile());
- sm.registerFunction("damage.isunblockable", (sc, in) -> ((DamageSource) in[0].get(sc)).isUnblockable());
- sm.registerFunction("damage.gettype", (sc, in) -> ((DamageSource) in[0].get(sc)).getDamageType());
- sm.registerFunction("damage.get", (sc, in) -> {
- Object o = in[0].get(sc);
- if(o instanceof LivingEntity) {
- LivingEntity ent = (LivingEntity) o;
- DamageSource ds;
- if(ent instanceof PlayerEntity) {
- ds = DamageSource.causePlayerDamage((PlayerEntity) ent);
- } else {
- ds = DamageSource.causeMobDamage(ent);
- }
- if(in[1].getBoolean(sc)) {
- ds.setDamageAllowedInCreativeMode();
- }
- if(in[2].getBoolean(sc)) {
- ds.setDamageBypassesArmor();
- }
- if(in[3].getBoolean(sc)) {
- ds.setDamageIsAbsolute();
- }
- if(in[4].getBoolean(sc)) {
- ds.setExplosion();
- }
- if(in[5].getBoolean(sc)) {
- ds.setFireDamage();
- }
- if(in[6].getBoolean(sc)) {
- ds.setMagicDamage();
- }
- if(in[7].getBoolean(sc)) {
- ds.setProjectile();
- }
- return ds;
- }
- switch(o.toString()) {
- case "inFire":
- return DamageSource.IN_FIRE;
- case "lightningBolt":
- return DamageSource.LIGHTNING_BOLT;
- case "onFire":
- return DamageSource.ON_FIRE;
- case "lava":
- return DamageSource.LAVA;
- case "hotFloor":
- return DamageSource.HOT_FLOOR;
- case "inWall":
- return DamageSource.IN_WALL;
- case "cramming":
- return DamageSource.CRAMMING;
- case "drown":
- return DamageSource.DROWN;
- case "starve":
- return DamageSource.STARVE;
- case "cactus":
- return DamageSource.CACTUS;
- case "fall":
- return DamageSource.FALL;
- case "flyIntoWall":
- return DamageSource.FLY_INTO_WALL;
- case "outOfWorld":
- return DamageSource.OUT_OF_WORLD;
- case "generic":
- return DamageSource.GENERIC;
- case "magic":
- return DamageSource.MAGIC;
- case "wither":
- return DamageSource.WITHER;
- case "anvil":
- return DamageSource.ANVIL;
- case "fallingBlock":
- return DamageSource.FALLING_BLOCK;
- case "dragonBreath":
- return DamageSource.DRAGON_BREATH;
- case "dryout":
- return DamageSource.DRYOUT;
- case "sweetBerryBush":
- return DamageSource.SWEET_BERRY_BUSH;
- case "thorns":
- return DamageSource.causeThornsDamage((Entity) in[1].get(sc));
- }
- return DamageSource.GENERIC;
- });
- }
- }
|