Files
CustomNPC-Plus/src/main/java/noppes/npcs/scripted/event/PlayerEvent.java
T

1078 lines
29 KiB
Java
Raw Normal View History

package noppes.npcs.scripted.event;
import cpw.mods.fml.common.eventhandler.Cancelable;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
2021-10-18 20:50:54 -05:00
import net.minecraft.world.World;
2022-11-15 15:25:53 -05:00
import noppes.npcs.api.IBlock;
import noppes.npcs.api.IContainer;
import noppes.npcs.api.IDamageSource;
import noppes.npcs.api.entity.IEntity;
import noppes.npcs.api.entity.IEntityLivingBase;
import noppes.npcs.api.entity.IPlayer;
import noppes.npcs.api.event.IPlayerEvent;
2025-02-10 14:58:45 -05:00
import noppes.npcs.api.handler.data.IPlayerEffect;
2025-03-06 01:24:51 -05:00
import noppes.npcs.api.handler.data.IProfile;
2022-11-15 15:25:53 -05:00
import noppes.npcs.api.item.IItemStack;
2022-11-24 16:46:20 -06:00
import noppes.npcs.constants.EnumScriptType;
import noppes.npcs.scripted.NpcAPI;
2024-08-22 16:47:45 -04:00
public class PlayerEvent extends CustomNPCsEvent implements IPlayerEvent {
public final IPlayer player;
public PlayerEvent(IPlayer player) {
this.player = player;
}
public IPlayer getPlayer() {
return player;
}
@Cancelable
public static class ChatEvent extends PlayerEvent implements IPlayerEvent.ChatEvent {
public String message;
public ChatEvent(IPlayer player, String message) {
super(player);
this.message = message;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.CHAT.function;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
public static class KeyPressedEvent extends PlayerEvent implements IPlayerEvent.KeyPressedEvent {
public final int key;
public final boolean isCtrlPressed;
public final boolean isAltPressed;
public final boolean isShiftPressed;
public final boolean isMetaPressed;
public final boolean keyDown;
public final int[] keysDown;
public KeyPressedEvent(IPlayer player, int key, boolean isCtrlPressed, boolean isAltPressed, boolean isShiftPressed, boolean isMetaPressed, boolean keyDown, int[] heldKeys) {
super(player);
this.key = key;
this.isCtrlPressed = isCtrlPressed;
this.isAltPressed = isAltPressed;
this.isShiftPressed = isShiftPressed;
this.isMetaPressed = isMetaPressed;
this.keyDown = keyDown;
this.keysDown = heldKeys;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.KEY_PRESSED.function;
}
public int getKey() {
return key;
}
public boolean isCtrlPressed() {
return isCtrlPressed;
}
public boolean isAltPressed() {
return isAltPressed;
}
public boolean isShiftPressed() {
return isShiftPressed;
}
public boolean isMetaPressed() {
return isMetaPressed;
}
public boolean keyDown() {
return keyDown;
}
public int[] getKeysDown() {
return keysDown;
}
}
public static class MouseClickedEvent extends PlayerEvent implements IPlayerEvent.MouseClickedEvent {
2022-07-06 18:41:39 -05:00
public final boolean isCtrlPressed;
public final boolean isAltPressed;
public final boolean isShiftPressed;
public final boolean isMetaPressed;
public final int[] keysDown;
public final int button;
public final int mouseWheel;
public final boolean buttonDown;
2022-07-06 18:41:39 -05:00
public MouseClickedEvent(IPlayer player, int button, int mouseWheel, boolean buttonDown, boolean isCtrlPressed, boolean isAltPressed, boolean isShiftPressed, boolean isMetaPressed, int[] heldKeys){
super(player);
this.button = button;
this.mouseWheel = mouseWheel;
this.buttonDown = buttonDown;
2022-07-06 18:41:39 -05:00
this.isCtrlPressed = isCtrlPressed;
this.isAltPressed = isAltPressed;
this.isShiftPressed = isShiftPressed;
this.isMetaPressed = isMetaPressed;
this.keysDown = heldKeys;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.MOUSE_CLICKED.function;
}
public int getButton() {
return button;
}
public int getMouseWheel() {
return mouseWheel;
}
public boolean buttonDown() {
return buttonDown;
}
public boolean isCtrlPressed() {
return isCtrlPressed;
}
public boolean isAltPressed() {
return isAltPressed;
}
public boolean isShiftPressed() {
return isShiftPressed;
}
public boolean isMetaPressed() {
return isMetaPressed;
}
public int[] getKeysDown() {
return keysDown;
}
}
public static class PickupXPEvent extends PlayerEvent implements IPlayerEvent.PickupXPEvent {
public final int amount;
public PickupXPEvent(IPlayer player, EntityXPOrb orb) {
super(player);
this.amount = orb.xpValue;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.PICKUP_XP.function;
}
public int getAmount() {
return amount;
}
}
public static class LevelUpEvent extends PlayerEvent implements IPlayerEvent.LevelUpEvent {
public final int change;
public LevelUpEvent(IPlayer player, int change) {
super(player);
this.change = change;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.LEVEL_UP.function;
}
public int getChange() {
return change;
}
}
public static class LogoutEvent extends PlayerEvent implements IPlayerEvent.LogoutEvent {
public LogoutEvent(IPlayer player) {
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.LOGOUT.function;
}
}
public static class LoginEvent extends PlayerEvent implements IPlayerEvent.LoginEvent {
public LoginEvent(IPlayer player) {
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.LOGIN.function;
}
}
public static class RespawnEvent extends PlayerEvent implements IPlayerEvent.RespawnEvent {
public RespawnEvent(IPlayer player) {
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.RESPAWN.function;
}
}
public static class ChangedDimension extends PlayerEvent implements IPlayerEvent.ChangedDimension {
public final int fromDim;
public final int toDim;
public ChangedDimension(IPlayer player, int fromDim, int toDim){
super(player);
this.fromDim = fromDim;
this.toDim = toDim;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.CHANGED_DIM.function;
}
public int getFromDim() {
return fromDim;
}
public int getToDim() {
return toDim;
}
}
public static class TimerEvent extends PlayerEvent implements IPlayerEvent.TimerEvent {
public final int id;
public TimerEvent(IPlayer player, int id) {
super(player);
this.id = id;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.TIMER.function;
}
public int getId() {
return id;
}
}
2022-07-07 12:49:30 -05:00
@Cancelable
public static class AttackedEvent extends PlayerEvent implements IPlayerEvent.AttackedEvent {
2022-07-07 12:49:30 -05:00
public final IDamageSource damageSource;
public final IEntity source;
public final float damage;
public AttackedEvent(IPlayer player, Entity source, float damage, DamageSource damagesource) {
super(player);
this.source = NpcAPI.Instance().getIEntity(source);
this.damage = damage;
this.damageSource = NpcAPI.Instance().getIDamageSource(damagesource);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.ATTACKED.function;
}
public IDamageSource getDamageSource() {
return damageSource;
}
public IEntity getSource() {
return source;
}
public float getDamage() {
return damage;
}
2022-07-07 12:49:30 -05:00
}
@Cancelable
public static class DamagedEvent extends PlayerEvent implements IPlayerEvent.DamagedEvent {
public final IDamageSource damageSource;
public final IEntity source;
public float damage;
public boolean clearTarget = false;
public DamagedEvent(IPlayer player, Entity source, float damage, DamageSource damagesource) {
super(player);
this.source = NpcAPI.Instance().getIEntity(source);
this.damage = damage;
this.damageSource = NpcAPI.Instance().getIDamageSource(damagesource);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.DAMAGED.function;
}
public IDamageSource getDamageSource() {
return damageSource;
}
public IEntity getSource() {
return source;
}
public float getDamage() {
return damage;
}
}
@Cancelable
public static class LightningEvent extends PlayerEvent implements IPlayerEvent.LightningEvent {
public LightningEvent(IPlayer player) {
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.LIGHTNING.function;
}
}
@Cancelable
public static class SoundEvent extends PlayerEvent implements IPlayerEvent.SoundEvent {
public final String name;
public final float pitch;
public final float volume;
public SoundEvent(IPlayer player, String name, float pitch, float volume) {
super(player);
this.name = name;
this.pitch = pitch;
this.volume = volume;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.PLAYSOUND.function;
}
public String getName() {
return name;
}
public float getPitch() {
return pitch;
}
public float getVolume() {
return volume;
}
}
@Cancelable
public static class FallEvent extends PlayerEvent implements IPlayerEvent.FallEvent {
public final float distance;
public FallEvent(IPlayer player, float distance){
super(player);
this.distance = distance;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.FALL.function;
}
public float getDistance() {
return distance;
}
}
public static class JumpEvent extends PlayerEvent implements IPlayerEvent.JumpEvent {
2021-10-18 20:50:54 -05:00
public JumpEvent(IPlayer player){
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.JUMP.function;
}
2021-10-18 20:50:54 -05:00
}
public static class KilledEntityEvent extends PlayerEvent implements IPlayerEvent.KilledEntityEvent {
public final IEntityLivingBase entity;
public KilledEntityEvent(IPlayer player, EntityLivingBase entity) {
super(player);
this.entity = (IEntityLivingBase) NpcAPI.Instance().getIEntity(entity);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.KILLS.function;
}
public IEntityLivingBase getEntity() {
return entity;
}
}
public static class DiedEvent extends PlayerEvent implements IPlayerEvent.DiedEvent {
public final IDamageSource damageSource;
public final String type;
public final IEntity source;
public DiedEvent(IPlayer player, DamageSource damagesource, Entity entity) {
super(player);
this.damageSource = NpcAPI.Instance().getIDamageSource(damagesource);
this.type = damagesource.getDamageType();
this.source = NpcAPI.Instance().getIEntity(entity);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.KILLED.function;
}
public IDamageSource getDamageSource() {
return damageSource;
}
public String getType() {
return type;
}
public IEntity getSource() {
return source;
}
}
@Cancelable
public static class RangedLaunchedEvent extends PlayerEvent implements IPlayerEvent.RangedLaunchedEvent {
public final IItemStack bow;
public int charge;
public RangedLaunchedEvent(IPlayer player, ItemStack bow, int charge) {
super(player);
this.bow = NpcAPI.Instance().getIItemStack(bow);
this.charge = charge;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.RANGED_LAUNCHED.function;
}
public IItemStack getBow() {
return bow;
}
public int getCharge() {
return charge;
}
}
2022-07-07 12:49:30 -05:00
@Cancelable
public static class AttackEvent extends PlayerEvent implements IPlayerEvent.AttackEvent {
2022-07-07 12:49:30 -05:00
public final IDamageSource damageSource;
public final IEntity target;
public float damage;
public AttackEvent(IPlayer player, Entity target, float damage, DamageSource damagesource) {
super(player);
this.target = NpcAPI.Instance().getIEntity(target);
this.damage = damage;
this.damageSource = NpcAPI.Instance().getIDamageSource(damagesource);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.ATTACK.function;
}
public IDamageSource getDamageSource() {
return damageSource;
}
public IEntity getTarget() {
return target;
}
public float getDamage() {
return damage;
}
2022-07-07 12:49:30 -05:00
}
@Cancelable
public static class DamagedEntityEvent extends PlayerEvent implements IPlayerEvent.DamagedEntityEvent {
public final IDamageSource damageSource;
public final IEntity target;
public float damage;
public DamagedEntityEvent(IPlayer player, Entity target, float damage, DamageSource damagesource) {
super(player);
this.target = NpcAPI.Instance().getIEntity(target);
this.damage = damage;
this.damageSource = NpcAPI.Instance().getIDamageSource(damagesource);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.DAMAGED_ENTITY.function;
}
public IDamageSource getDamageSource() {
return damageSource;
}
public IEntity getTarget() {
return target;
}
public float getDamage() {
return damage;
}
}
public static class ContainerClosed extends PlayerEvent implements IPlayerEvent.ContainerClosed {
public final IContainer container;
public ContainerClosed(IPlayer player, IContainer container) {
super(player);
this.container = container;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.CONTAINER_CLOSED.function;
}
public IContainer getContainer() {
return container;
}
}
public static class ContainerOpen extends PlayerEvent implements IPlayerEvent.ContainerOpen {
public final IContainer container;
public ContainerOpen(IPlayer player, IContainer container) {
super(player);
this.container = container;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.CONTAINER_OPEN.function;
}
public IContainer getContainer() {
return container;
}
}
@Cancelable
public static class PickUpEvent extends PlayerEvent implements IPlayerEvent.PickUpEvent {
public final IItemStack item;
public PickUpEvent(IPlayer player, IItemStack item) {
super(player);
this.item = item;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.PICKUP.function;
}
public IItemStack getItem() {
return item;
}
}
@Cancelable
public static class DropEvent extends PlayerEvent implements IPlayerEvent.DropEvent {
public final IItemStack[] items;
2021-10-18 22:01:15 -05:00
public DropEvent(IPlayer player, IItemStack[] items) {
super(player);
this.items = items;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.DROP.function;
}
public IItemStack[] getItems() {
return items;
}
}
2021-10-18 22:01:15 -05:00
@Cancelable
public static class TossEvent extends PlayerEvent implements IPlayerEvent.TossEvent {
2021-10-18 22:01:15 -05:00
public final IItemStack item;
public TossEvent(IPlayer player, IItemStack item) {
super(player);
this.item = item;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.TOSS.function;
}
public IItemStack getItem() {
return item;
}
2021-10-18 22:01:15 -05:00
}
@Cancelable
public static class InteractEvent extends PlayerEvent implements IPlayerEvent.InteractEvent {
public final int type;
public final IEntity target;
public InteractEvent(IPlayer player, int type, IEntity target) {
super(player);
this.type = type;
this.target = target;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.INTERACT.function;
}
public int getType() {
return type;
}
public IEntity getTarget() {
return target;
}
}
public static class UpdateEvent extends PlayerEvent implements IPlayerEvent.UpdateEvent {
public UpdateEvent(IPlayer player) {
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.TICK.function;
}
}
public static class InitEvent extends PlayerEvent implements IPlayerEvent.InitEvent {
public InitEvent(IPlayer player) {
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.INIT.function;
}
}
@Cancelable
public static class StartUsingItem extends PlayerEvent implements IPlayerEvent.StartUsingItem {
public final IItemStack item;
public final int duration;
public StartUsingItem(IPlayer player, ItemStack item, int duration){
super(player);
this.item = NpcAPI.Instance().getIItemStack(item);
this.duration = duration;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.START_USING_ITEM.function;
}
public IItemStack getItem() {
return item;
}
public int getDuration() {
return duration;
}
}
@Cancelable
public static class UsingItem extends PlayerEvent implements IPlayerEvent.UsingItem {
public final IItemStack item;
public final int duration;
public UsingItem(IPlayer player, ItemStack item, int duration){
super(player);
this.item = NpcAPI.Instance().getIItemStack(item);
this.duration = duration;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.USING_ITEM.function;
}
public IItemStack getItem() {
return item;
}
public int getDuration() {
return duration;
}
}
@Cancelable
public static class StopUsingItem extends PlayerEvent implements IPlayerEvent.StopUsingItem {
public final IItemStack item;
public final int duration;
public StopUsingItem(IPlayer player, ItemStack item, int duration){
super(player);
this.item = NpcAPI.Instance().getIItemStack(item);
this.duration = duration;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.STOP_USING_ITEM.function;
}
public IItemStack getItem() {
return item;
}
public int getDuration() {
return duration;
}
}
public static class FinishUsingItem extends PlayerEvent implements IPlayerEvent.FinishUsingItem {
public final IItemStack item;
public final int duration;
public FinishUsingItem(IPlayer player, ItemStack item, int duration){
super(player);
this.item = NpcAPI.Instance().getIItemStack(item);
this.duration = duration;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.FINISH_USING_ITEM.function;
}
public IItemStack getItem() {
return item;
}
public int getDuration() {
return duration;
}
}
@Cancelable
public static class BreakEvent extends PlayerEvent implements IPlayerEvent.BreakEvent {
public final IBlock block;
public int exp;
public BreakEvent(IPlayer player, IBlock block, int exp) {
super(player);
this.block = block;
this.exp = exp;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.BREAK_BLOCK.function;
}
public IBlock getBlock() {
return block;
}
public int getExp() {
return exp;
}
}
2021-10-18 20:50:54 -05:00
public static class UseHoe extends PlayerEvent implements UseHoeEvent {
2021-10-18 20:50:54 -05:00
public final IItemStack hoe;
public final int x;
public final int y;
public final int z;
public UseHoe(IPlayer player, ItemStack item, int x, int y, int z) {
super(player);
this.hoe = NpcAPI.Instance().getIItemStack(item);
2021-10-18 20:50:54 -05:00
this.x = x;
this.y = y;
this.z = z;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.USE_HOE.function;
}
public IItemStack getHoe() {
return hoe;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getZ() {
return z;
}
2021-10-18 20:50:54 -05:00
}
public static class WakeUp extends PlayerEvent implements WakeUpEvent {
2021-10-18 20:50:54 -05:00
public final boolean setSpawn;
public WakeUp(IPlayer player, boolean setSpawn) {
super(player);
this.setSpawn = setSpawn;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.WAKE_UP.function;
}
public boolean setSpawn() {
return setSpawn;
}
2021-10-18 20:50:54 -05:00
}
public static class Sleep extends PlayerEvent implements SleepEvent {
2021-10-18 20:50:54 -05:00
public final int x;
public final int y;
public final int z;
public Sleep(IPlayer player, int x, int y, int z) {
2021-10-18 20:50:54 -05:00
super(player);
this.x = x;
this.y = y;
this.z = z;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.SLEEP.function;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getZ() {
return z;
}
2021-10-18 20:50:54 -05:00
}
public static class Achievement extends PlayerEvent implements AchievementEvent {
2021-10-18 20:50:54 -05:00
public final String description;
public Achievement(IPlayer player, String description) {
super(player);
this.description = description;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.ACHIEVEMENT.function;
}
public String getDescription() {
return description;
}
2021-10-18 20:50:54 -05:00
}
public static class FillBucket extends PlayerEvent implements FillBucketEvent {
2021-10-18 20:50:54 -05:00
public final IItemStack current;
public final IItemStack result;
public FillBucket(IPlayer player, ItemStack current, ItemStack result) {
super(player);
this.current = NpcAPI.Instance().getIItemStack(current);
this.result = NpcAPI.Instance().getIItemStack(result);
2021-10-18 20:50:54 -05:00
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.FILL_BUCKET.function;
}
public IItemStack getCurrent() {
return current;
}
public IItemStack getFilled() {
return result;
}
2021-10-18 20:50:54 -05:00
}
public static class Bonemeal extends PlayerEvent implements BonemealEvent {
2021-10-18 20:50:54 -05:00
public final IBlock block;
public final int x;
public final int y;
public final int z;
public Bonemeal(IPlayer player, int x, int y, int z, World world) {
super(player);
this.block = API.getIBlock(NpcAPI.Instance().getIWorld(world), x, y, z);
2021-10-18 20:50:54 -05:00
this.x = x;
this.y = y;
this.z = z;
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.BONEMEAL.function;
}
public IBlock getBlock() {
return block;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public int getZ() {
return z;
}
2021-10-18 20:50:54 -05:00
}
@Cancelable
public static class RangedChargeEvent extends PlayerEvent implements IPlayerEvent.RangedChargeEvent {
public RangedChargeEvent(IPlayer player) {
2021-10-18 20:50:54 -05:00
super(player);
}
2022-11-24 16:46:20 -06:00
public String getHookName() {
return EnumScriptType.RANGED_LAUNCHED.function;
}
2021-10-18 20:50:54 -05:00
}
2025-02-10 14:58:45 -05:00
public static class EffectEvent extends PlayerEvent implements IPlayerEvent.EffectEvent {
public final IPlayerEffect effect;
public EffectEvent(IPlayer player, IPlayerEffect statusEffect) {
super(player);
this.effect = statusEffect;
}
@Override
public IPlayerEffect getEffect() {
return this.effect;
}
public static class Added extends PlayerEvent.EffectEvent implements IPlayerEvent.EffectEvent.Added {
public Added(IPlayer player, IPlayerEffect statusEffect) {
super(player, statusEffect);
}
}
public static class Ticked extends PlayerEvent.EffectEvent implements IPlayerEvent.EffectEvent.Ticked {
public Ticked(IPlayer player, IPlayerEffect statusEffect) {
super(player, statusEffect);
}
}
public static class Removed extends PlayerEvent.EffectEvent implements IPlayerEvent.EffectEvent.Removed {
private final ExpirationType type;
public Removed(IPlayer player, IPlayerEffect statusEffect, ExpirationType type) {
super(player, statusEffect);
this.type = type;
}
@Override
public boolean hasTimerRunOut() {
return type == ExpirationType.RUN_OUT;
}
@Override
public boolean causedByDeath() {
return type == ExpirationType.DEATH;
}
}
public enum ExpirationType {
REMOVED,
RUN_OUT,
DEATH
}
}
2025-03-06 01:24:51 -05:00
@Cancelable
public static class ProfileEvent extends PlayerEvent implements IPlayerEvent.ProfileEvent {
public final IProfile profile;
public final int slot;
public ProfileEvent(IPlayer player, IProfile profile, int slot) {
super(player);
this.profile = profile;
this.slot = slot;
}
public String getHookName() {
return EnumScriptType.PROFILE.function;
}
@Override
public IProfile getProfile() {
return this.profile;
}
@Override
public int getSlot() {
return this.slot;
}
@Cancelable
public static class Changed extends PlayerEvent.ProfileEvent implements IPlayerEvent.ProfileEvent.Changed {
public final int prevSlot;
public Changed(IPlayer player, IProfile profile, int slot, int prevSlot) {
super(player, profile, slot);
this.prevSlot = prevSlot;
}
@Override
public int getPrevSlot() {
return this.prevSlot;
}
public String getHookName() {
return EnumScriptType.PROFILE_CHANGE.function;
}
}
@Cancelable
public static class Removed extends PlayerEvent.ProfileEvent implements IPlayerEvent.ProfileEvent.Removed {
public Removed(IPlayer player, IProfile profile, int slot) {
super(player, profile, slot);
}
public String getHookName() {
return EnumScriptType.PROFILE_REMOVE.function;
}
}
@Cancelable
public static class Create extends PlayerEvent.ProfileEvent implements IPlayerEvent.ProfileEvent.Create {
public Create(IPlayer player, IProfile profile, int slot) {
super(player, profile, slot);
}
public String getHookName() {
return EnumScriptType.PROFILE_CREATE.function;
}
}
}
}