RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
LockType.java
1package com.osroyale.game.world.entity.mob.data;
2
3import com.osroyale.game.Graphic;
4import com.osroyale.game.world.entity.mob.Mob;
5import com.osroyale.game.world.entity.mob.player.Player;
6import com.osroyale.net.packet.out.SendMessage;
7import com.osroyale.net.packet.out.SendWidget;
8
9import java.util.concurrent.TimeUnit;
10
36
37public enum LockType {
38 MASTER(PacketType.values()) {
39 @Override
40 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
41 if (mob.isPlayer())
42 mob.getPlayer().action.reset();
43 return true;
44 }
45 },
46 MASTER_WITH_MOVEMENT(PacketType.MASTER_WITH_MOVEMENT) {
47 @Override
48 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
49 if (mob.isPlayer())
50 mob.getPlayer().action.reset();
51 return true;
52 }
53 },
54 MASTER_WITH_COMMANDS(PacketType.MASTER_WITH_COMMANDS) {
55 @Override
56 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
57 if (mob.isPlayer())
58 mob.getPlayer().action.reset();
59 return true;
60 }
61 },
62 OBJECT(PacketType.CLICK_OBJECT) {
63 @Override
64 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
65 mob.movement.reset();
66 return true;
67 }
68 },
69 WALKING(PacketType.WALKING, PacketType.MOVEMENT) {
70 @Override
71 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
72 return true;
73 }
74 },
75 STUN(PacketType.TELEPORT, PacketType.WALKING, PacketType.COMBAT, PacketType.PICKUP_ITEM, PacketType.WIELD_ITEM, PacketType.COMMANDS, PacketType.CLICK_BUTTON, PacketType.CLICK_NPC, PacketType.CLICK_OBJECT, PacketType.USE_ITEM, PacketType.INTERACT) {
76 @Override
77 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
78 if (mob.locking.locked(STUN))
79 return false;
80 mob.graphic(new Graphic(80, true));
81
82 if (mob.isPlayer()) {
83 Player player = mob.getPlayer();
84 player.resetFace();
85 player.getCombat().reset();
86 player.send(new SendMessage("You have been stunned!"));
87 player.send(new SendWidget(SendWidget.WidgetType.STUN, time));
88 }
89 return true;
90 }
91 },
92 FREEZE(PacketType.WALKING, PacketType.MOVEMENT) {
93 @Override
94 public boolean execute(Mob mob, int time, TimeUnit gUnit) {
95 if (mob.locking.locked(FREEZE)) {
96 return false;
97 }
98
99 if (mob.isPlayer()) {
100 Player player = mob.getPlayer();
101// player.resetFace();
102// player.getCombat().reset();
103 player.send(new SendMessage("You've been frozen!", true));
104 player.send(new SendWidget(SendWidget.WidgetType.FROZEN, time));
105 }
106 return true;
107 }
108 };
109
111 public final PacketType[] packets;
112
114 public abstract boolean execute(Mob mob, int time, TimeUnit gUnit);
115
118 this.packets = packets;
119 }
120
121 public boolean isLocked(PacketType type) {
122 return isLocked(type, null, null);
123 }
124
125 public boolean isLocked(PacketType type, Mob mob, Object object) {
126 for (PacketType packet : packets) {
127 if (type == packet)
128 return !packet.exception(mob, object);
129 }
130 return false;
131 }
132}
abstract boolean execute(Mob mob, int time, TimeUnit gUnit)