Added InterfaceListener.kt and converted a few interfaces over to it

This commit is contained in:
Ceikry
2021-03-15 01:12:07 -05:00
parent ad1bbaa5b4
commit 35cbb7f2f4
18 changed files with 301 additions and 256 deletions
@@ -5,6 +5,7 @@ import core.game.node.entity.player.link.InterfaceManager;
import core.net.packet.PacketRepository;
import core.net.packet.context.InterfaceContext;
import core.net.packet.out.Interface;
import rs09.game.interaction.InterfaceListeners;
/**
* Represents a component.
@@ -53,6 +54,7 @@ public class Component {
*/
public void open(Player player) {
InterfaceManager manager = player.getInterfaceManager();
InterfaceListeners.runOpen(player,this);
if (definition == null) {
PacketRepository.send(Interface.class, new InterfaceContext(player, manager.getWindowPaneId(), manager.getDefaultChildId(), getId(), false));
if (plugin != null) {
@@ -82,6 +84,7 @@ public class Component {
* @return {@code True} if the component can be closed.
*/
public boolean close(Player player) {
InterfaceListeners.runClose(player,this);
if (closeEvent != null && !closeEvent.close(player, this)) {
return false;
}
@@ -21,7 +21,7 @@ import core.game.world.map.Location;
import core.game.world.map.RegionManager;
import core.game.world.update.flag.context.Animation;
import core.plugin.Plugin;
import rs09.game.interaction.Listeners;
import rs09.game.interaction.InteractionListeners;
import java.util.List;
@@ -147,7 +147,7 @@ public final class DragonSlayerPlugin extends OptionHandler {
player.getPacketDispatch().sendMessage("You need to complete the Dragon Slayer Quest in order to wear this.");
return true;
}
Listeners.run(node.getId(),0,"equip",player,node);
InteractionListeners.run(node.getId(),0,"equip",player,node);
break;
case 742:
if (player.getQuestRepository().getQuest("Dragon Slayer").getStage(player) == 40 && (player.getInventory().containsItem(DragonSlayer.ELVARG_HEAD) || player.getInventory().containsItem(DragonSlayer.ELVARG_HEAD))) {
@@ -17,7 +17,7 @@ import core.game.node.object.GameObject;
import core.game.system.task.Pulse;
import core.game.world.map.Location;
import core.plugin.Plugin;
import rs09.game.interaction.Listeners;
import rs09.game.interaction.InteractionListeners;
import rs09.game.world.GameWorld;
/**
@@ -94,7 +94,7 @@ public final class LostCityPlugin extends OptionHandler {
player.getPacketDispatch().sendMessage("You need to have completed the Lost City quest in order to wield that weapon.");
return true;
}
return Listeners.run(node.getId(),0,"equip",player,node);
return InteractionListeners.run(node.getId(),0,"equip",player,node);
}
return true;
}
@@ -11,7 +11,7 @@ import core.game.world.update.flag.player.FaceLocationFlag;
import core.net.packet.PacketRepository;
import core.net.packet.context.InteractionOptionContext;
import core.net.packet.out.InteractionOption;
import rs09.game.interaction.Listeners;
import rs09.game.interaction.InteractionListeners;
import rs09.game.system.SystemLogger;
import rs09.game.world.GameWorld;
@@ -106,7 +106,7 @@ public class Interaction {
if (player.getLocks().isInteractionLocked() || player.getZoneMonitor().interact(node, option)) {
return true;
}
if(Listeners.run(node.getId(),0,option.getName(),player,node)){
if(InteractionListeners.run(node.getId(),0,option.getName(),player,node)){
return true;
}
if (option.getHandler() == null || !option.getHandler().handle(player, node, option.getName().toLowerCase())) {
@@ -22,7 +22,7 @@ import core.net.packet.out.ContainerPacket;
import core.plugin.Initializable;
import core.plugin.Plugin;
import rs09.game.content.global.action.EquipHandler;
import rs09.game.interaction.Listeners;
import rs09.game.interaction.InteractionListeners;
import rs09.game.world.GameWorld;
/**
@@ -81,7 +81,7 @@ public final class EquipmentInterface extends ComponentPlugin {
GameWorld.getPulser().submit(new Pulse(1, p) {
@Override
public boolean pulse() {
Listeners.run(item.getId(),0,"equip",p, item);
InteractionListeners.run(item.getId(),0,"equip",p, item);
return true;
}
});
@@ -191,7 +191,7 @@ public final class EquipmentInterface extends ComponentPlugin {
if (item == null) {
return;
}
if(Listeners.run(item.getId(),0,"operate",player,item)){
if(InteractionListeners.run(item.getId(),0,"operate",player,item)){
return;
}
OptionHandler handler = item.getOperateHandler();
@@ -10,9 +10,10 @@ import core.game.node.entity.player.info.login.LoginConfiguration;
import core.game.node.entity.player.link.request.assist.AssistSession;
import core.game.node.item.Item;
import core.game.system.task.Pulse;
import rs09.game.world.GameWorld;
import core.net.packet.IncomingPacket;
import core.net.packet.IoBuffer;
import rs09.game.interaction.InterfaceListeners;
import rs09.game.world.GameWorld;
import java.util.List;
@@ -58,10 +59,15 @@ public class ActionButtonPacket implements IncomingPacket {
player.debug("Component " + c + " wasn't opened in interface manager.");
return;
}
int cOpcode = buffer.opcode();
ComponentPlugin plugin = c.getPlugin();
if (plugin != null) {
player.debug("Component plugin = " + plugin.getClass().getSimpleName());
plugin.handle(player, c, buffer.opcode(), buttonId, slot, itemId);
plugin.handle(player, c, cOpcode, buttonId, slot, itemId);
} else {
if(InterfaceListeners.run(player,c,cOpcode,buttonId,slot,itemId)){
return;
}
}
}
@@ -22,7 +22,7 @@ import core.net.packet.context.PlayerContext;
import core.net.packet.out.ClearMinimapFlag;
import rs09.ServerConstants;
import rs09.game.ai.AIPlayer;
import rs09.game.interaction.Listeners;
import rs09.game.interaction.InteractionListeners;
import rs09.game.world.repository.Repository;
import java.util.List;
@@ -186,7 +186,7 @@ public final class InteractionPacket implements IncomingPacket {
player.debug("spawn=" + npc.getProperties().getSpawnLocation() + ".");
player.debug("Varp ID= " + npc.getDefinition().getConfigId() + " Offset=" + npc.getDefinition().getVarbitOffset() + " Size=" + npc.getDefinition().getVarbitSize());
handleAIPLegion(player, 0, optionIndex, index);
if(Listeners.run(npc.getId(),2, option.getName(),player,npc)){
if(InteractionListeners.run(npc.getId(),2, option.getName(),player,npc)){
return;
}
if(PluginInteractionManager.handle(player,shown,option)){
@@ -270,7 +270,7 @@ public final class InteractionPacket implements IncomingPacket {
}
handleAIPLegion(player, 1, optionIndex, x, y, objectId);
if(Listeners.run(object.getId(),1, option.getName(),player,object)){
if(InteractionListeners.run(object.getId(),1, option.getName(),player,object)){
return;
}
if(PluginInteractionManager.handle(player,object)){
@@ -17,7 +17,7 @@ import core.net.packet.context.PlayerContext;
import core.net.packet.out.ClearMinimapFlag;
import org.rs09.consts.Items;
import rs09.game.interaction.ItemOnBankBooth;
import rs09.game.interaction.Listeners;
import rs09.game.interaction.InteractionListeners;
import rs09.game.node.entity.skill.farming.CompostBins;
import rs09.game.node.entity.skill.farming.FarmingPatch;
import rs09.game.node.entity.skill.farming.UseWithBinHandler;
@@ -69,7 +69,7 @@ public class ItemActionPacket implements IncomingPacket {
if(PluginInteractionManager.handle(player,event)){
return;
}
if(Listeners.run(item,npc,2,player)){
if(InteractionListeners.run(item,npc,2,player)){
return;
}
event = new NodeUsageEvent(player, interfaceId, item, npc);
@@ -128,7 +128,7 @@ public class ItemActionPacket implements IncomingPacket {
RottenPotatoUseWithHandler.handle(used,player);
return;
}
if(Listeners.run(used,with,0,player)){
if(InteractionListeners.run(used,with,0,player)){
return;
}
if (usedItemId < usedWithItemId) {
@@ -179,7 +179,7 @@ public class ItemActionPacket implements IncomingPacket {
RottenPotatoUseWithHandler.handle(object,player);
return;
}
if(Listeners.run(used,object,1,player)){
if(InteractionListeners.run(used,object,1,player)){
return;
}
event = new NodeUsageEvent(player, 0, used, object);