Fixed silver interface, added API method for sending input dialogues, converted old usages of input dialogues to API method.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package core.game.content.activity.duel;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.game.component.CloseEvent;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
@@ -16,6 +17,7 @@ import core.game.node.item.Item;
|
||||
import core.game.system.monitor.PlayerMonitor;
|
||||
import core.plugin.Plugin;
|
||||
import core.tools.RandomFunction;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.content.global.action.EquipHandler;
|
||||
import rs09.game.system.config.ItemConfigParser;
|
||||
|
||||
@@ -567,14 +569,10 @@ public final class DuelSession extends ComponentPlugin {
|
||||
amount = c.getAmount(c.get(slot));
|
||||
break;
|
||||
case 234:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
c.withdraw(slot, (int) getValue());
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
c.withdraw(slot, (int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount:");
|
||||
break;
|
||||
}
|
||||
c.withdraw(slot, amount);
|
||||
@@ -688,14 +686,10 @@ public final class DuelSession extends ComponentPlugin {
|
||||
c1.offer(slot, player.getInventory().getAmount(player.getInventory().get(slot).getId()));
|
||||
break;
|
||||
case 234:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
c1.offer(slot, (int) getValue());
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
c1.offer(slot, (int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount:");
|
||||
break;
|
||||
case 9:
|
||||
player.getPacketDispatch().sendMessage(player.getInventory().get(slot).getDefinition().getExamine());
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.ObjectDefinition;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
@@ -21,6 +22,7 @@ import core.game.node.item.Item;
|
||||
import core.game.node.object.Scenery;
|
||||
import core.game.node.object.SceneryBuilder;
|
||||
import core.game.system.task.Pulse;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.world.GameWorld;
|
||||
import core.game.world.map.Location;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
@@ -315,15 +317,10 @@ public final class PartyRoomPlugin extends OptionHandler {
|
||||
viewer.getContainer().addItem(slot, ammount);
|
||||
break;
|
||||
case 234:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
viewer.getContainer().addItem(slot, ammount);
|
||||
return false;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
viewer.getContainer().addItem(slot, (int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount.");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -351,15 +348,10 @@ public final class PartyRoomPlugin extends OptionHandler {
|
||||
viewer.getContainer().takeItem(slot, ammount);
|
||||
break;
|
||||
case 234:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
viewer.getContainer().takeItem(slot, ammount);
|
||||
return false;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
viewer.getContainer().takeItem(slot, (int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount.");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package core.game.content.dialogue;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.plugin.Initializable;
|
||||
import core.game.node.entity.skill.runecrafting.Altar;
|
||||
import core.game.node.entity.skill.runecrafting.EnchantTiaraPulse;
|
||||
@@ -8,6 +9,7 @@ import core.game.interaction.NodeUsageEvent;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.RunScript;
|
||||
import core.game.node.object.Scenery;
|
||||
import kotlin.Unit;
|
||||
|
||||
/**
|
||||
* Represents the enchant tiara dialogue.
|
||||
@@ -75,15 +77,10 @@ public final class EnchantTiaraDialogue extends DialoguePlugin {
|
||||
amt = 5;
|
||||
break;
|
||||
case 4:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
player.getPulseManager().run(new EnchantTiaraPulse(player, event.getUsedItem(), (Talisman.forItem(event.getUsedItem()).getTiara()), ammount));
|
||||
return false;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
player.getPulseManager().run(new EnchantTiaraPulse(player, event.getUsedItem(), Talisman.forItem(event.getUsedItem()).getTiara(), (int) value));
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount");
|
||||
return true;
|
||||
case 3:
|
||||
amt = player.getInventory().getAmount(event.getUsedItem());
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package core.game.content.dialogue;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.ItemDefinition;
|
||||
import core.game.component.Component;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.system.SystemLogger;
|
||||
import core.game.node.entity.skill.crafting.armour.DragonCraftPulse;
|
||||
import core.game.node.entity.skill.crafting.armour.HardCraftPulse;
|
||||
@@ -109,15 +111,10 @@ public final class LeatherCraftDialogue extends DialoguePlugin {
|
||||
amt = 5;
|
||||
break;
|
||||
case 3:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
player.getPulseManager().run(new HardCraftPulse(player, null, ammount));
|
||||
return false;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
player.getPulseManager().run(new HardCraftPulse(player, null, (int) value));
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount");
|
||||
return true;
|
||||
case 2:
|
||||
amt = player.getInventory().getAmount(new Item(LeatherCrafting.HARD_LEATHER));
|
||||
@@ -208,14 +205,10 @@ public final class LeatherCraftDialogue extends DialoguePlugin {
|
||||
if (hidee == null) {
|
||||
return false;
|
||||
}
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
player.getPulseManager().run(new DragonCraftPulse(player, null, hidee, (int) getValue()));
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
player.getPulseManager().run(new DragonCraftPulse(player, null, hidee, (int) value));
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter amount:");
|
||||
return true;
|
||||
}
|
||||
if (hide == null) {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package core.game.content.dialogue;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.RunScript;
|
||||
import core.plugin.Initializable;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.content.dialogue.SkillDialogueHandler;
|
||||
|
||||
/**
|
||||
@@ -56,13 +58,9 @@ public class SkillDialoguePlugin extends DialoguePlugin {
|
||||
if (amount != -1) {
|
||||
handler.create(amount, index);
|
||||
} else {
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount:");
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
handler.create((int) getValue(), index);
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
handler.create((int) value, index);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package core.game.interaction.city;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.NPCDefinition;
|
||||
import core.cache.def.impl.ObjectDefinition;
|
||||
import core.game.component.Component;
|
||||
@@ -35,6 +36,7 @@ import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import core.tools.RandomFunction;
|
||||
import core.tools.StringUtils;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.content.global.travel.EssenceTeleport;
|
||||
import rs09.game.world.GameWorld;
|
||||
import rs09.plugin.PluginManager;
|
||||
@@ -686,14 +688,9 @@ public final class WizardTowerPlugin extends OptionHandler {
|
||||
}
|
||||
final int amount = getAmt(buttonId);
|
||||
if (amount == -1) {// rscript.
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter amount:");
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
final int amt = (int) getValue();
|
||||
make(bark, amt);
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
make(bark, (int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package core.game.interaction.inter;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
@@ -12,6 +13,7 @@ import core.net.amsc.WorldCommunicator;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import core.tools.StringUtils;
|
||||
import kotlin.Unit;
|
||||
|
||||
/**
|
||||
* Represents the plugin used to handle the clan interfaces.
|
||||
@@ -93,27 +95,23 @@ public final class ClanInterfacePlugin extends ComponentPlugin {
|
||||
clan.clean(true);
|
||||
break;
|
||||
default:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
String name = StringUtils.formatDisplayName((String) value);
|
||||
player.getPacketDispatch().sendString(name, 590, 22);//30
|
||||
if (WorldCommunicator.isEnabled()) {
|
||||
MSPacketRepository.sendClanRename(player, name);
|
||||
clan.setName(name);
|
||||
return true;
|
||||
}
|
||||
if (clan.getName().equals("Chat disabled")) {
|
||||
player.getPacketDispatch().sendMessage("Your clan channel has now been enabled!");
|
||||
player.getPacketDispatch().sendMessage("Join your channel by clicking 'Join Chat' and typing: " + player.getUsername());
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, false, "Enter clan prefix:", (value) -> {
|
||||
String name = StringUtils.formatDisplayName((String) value);
|
||||
ContentAPI.setInterfaceText(player, name, 590, 22);
|
||||
if(WorldCommunicator.isEnabled()){
|
||||
MSPacketRepository.sendClanRename(player, name);
|
||||
clan.setName(name);
|
||||
player.getCommunication().setClanName(name);
|
||||
clan.update();
|
||||
return true;
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
if (clan.getName().equals("Chat disabled")) {
|
||||
player.getPacketDispatch().sendMessage("Your clan channel has now been enabled!");
|
||||
player.getPacketDispatch().sendMessage("Join your channel by clicking 'Join Chat' and typing: " + player.getUsername());
|
||||
}
|
||||
clan.setName(name);
|
||||
player.getCommunication().setClanName(name);
|
||||
clan.update();
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(true, "Enter clan prefix:");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package core.game.interaction.inter;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
@@ -12,6 +13,7 @@ import core.game.system.task.Pulse;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import kotlin.Unit;
|
||||
|
||||
/**
|
||||
* Represents the glass making interface plugin.
|
||||
@@ -72,15 +74,10 @@ public final class GlassInterface extends ComponentPlugin {
|
||||
real = p.getInventory().getAmount(MOLTEN_GLASS);
|
||||
break;
|
||||
case 211:
|
||||
p.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
make(p, def, ammount);
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(p, true, "Enter the amount:", (value) -> {
|
||||
make(p, def, (int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
p.getDialogueInterpreter().sendInput(false, "Enter the amount.");
|
||||
break;
|
||||
}
|
||||
if (opcode == 211) {
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
package core.game.interaction.inter;
|
||||
|
||||
import core.cache.def.impl.ItemDefinition;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
import core.game.node.entity.player.link.diary.DiaryType;
|
||||
import core.game.world.map.Location;
|
||||
import core.plugin.Initializable;
|
||||
import core.game.node.entity.skill.Skills;
|
||||
import core.game.node.entity.skill.crafting.SilverProduct;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.RunScript;
|
||||
import core.game.node.item.Item;
|
||||
import core.game.system.task.Pulse;
|
||||
import rs09.game.world.GameWorld;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* Represents the silver crafting making interface.
|
||||
* @author 'Vexia
|
||||
*/
|
||||
@Initializable
|
||||
public final class SilverInterface extends ComponentPlugin {
|
||||
|
||||
/**
|
||||
* Represents the silver bar item.
|
||||
*/
|
||||
private static final Item SILVER_BAR = new Item(2355);
|
||||
|
||||
@Override
|
||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
ComponentDefinition.put(438, this);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(final Player p, Component component, int opcode, int button, int slot, int itemId) {
|
||||
final SilverProduct silver = SilverProduct.forId(button);
|
||||
if (silver == null) {
|
||||
return true;
|
||||
}
|
||||
if (!p.getInventory().contains(silver.getNeeded(), 1)) {
|
||||
p.getPacketDispatch().sendMessage("You need a " + ItemDefinition.forId(silver.getNeeded()).getName().toLowerCase() + " to make this item.");
|
||||
return true;
|
||||
}
|
||||
if (silver == SilverProduct.SILVTHRIL_ROD) {
|
||||
p.getPacketDispatch().sendMessage("You can't do that yet.");
|
||||
return true;
|
||||
}
|
||||
if (p.getSkills().getLevel(Skills.CRAFTING) < silver.getLevel()) {
|
||||
p.getPacketDispatch().sendMessage("You need a crafting level of " + silver.getLevel() + " to make this.");
|
||||
}
|
||||
int amt = -1;
|
||||
switch (opcode) {
|
||||
case 155:
|
||||
amt = 1;
|
||||
break;
|
||||
case 196:
|
||||
amt = 5;
|
||||
break;
|
||||
case 124:
|
||||
amt = p.getInventory().getAmount(new Item(2355));
|
||||
break;
|
||||
case 199:
|
||||
p.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
make(p, silver, ammount);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
p.getDialogueInterpreter().sendInput(false, "Enter the amount.");
|
||||
return true;
|
||||
}
|
||||
make(p, silver, amt);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void make(final Player player, final SilverProduct def, final int ammount) {
|
||||
if (!player.getInventory().containsItem(SILVER_BAR)) {
|
||||
return;
|
||||
}
|
||||
player.getInterfaceManager().close();
|
||||
GameWorld.getPulser().submit(new Pulse(1, player) {
|
||||
int amt = ammount;
|
||||
|
||||
@Override
|
||||
public boolean pulse() {
|
||||
if (amt < 1) {
|
||||
return true;
|
||||
}
|
||||
if (!player.getInventory().contains(def.getNeeded(), 1)) {
|
||||
return true;
|
||||
}
|
||||
if (player.getInventory().containsItem(SILVER_BAR) && player.getInventory().contains(def.getNeeded(), 1)) {
|
||||
player.animate(new Animation(899));
|
||||
if (player.getInventory().remove(SILVER_BAR)) {
|
||||
player.getInventory().add(new Item(def.getProduct(), def == SilverProduct.SILVER_BOLTS ? 10 : 1));
|
||||
player.getSkills().addExperience(Skills.CRAFTING, def.getExp(), true);
|
||||
}
|
||||
|
||||
// Craft a holy symbol in the Lumbridge furnace
|
||||
if (def == SilverProduct.UNBLESSED && player.getLocation().withinDistance(Location.create(3226, 3254, 0))) {
|
||||
player.getAchievementDiaryManager().finishTask(player, DiaryType.LUMBRIDGE, 2, 8);
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
amt--;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
player.animate(new Animation(-1));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package core.game.interaction.item.withitem;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.game.component.Component;
|
||||
import core.plugin.Initializable;
|
||||
import kotlin.Unit;
|
||||
import org.rs09.consts.Items;
|
||||
import core.game.content.dialogue.DialoguePlugin;
|
||||
import core.game.interaction.NodeUsageEvent;
|
||||
@@ -220,15 +222,10 @@ public final class FruitCuttingPlugin extends UseWithHandler {
|
||||
amount = 5;
|
||||
break;
|
||||
case 4:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
cut(player, ammount, slice);
|
||||
return false;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
cut(player, (int) value, slice);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount");
|
||||
return true;
|
||||
case 3:
|
||||
amount = player.getInventory().getAmount(fruit.getBase());
|
||||
|
||||
@@ -325,7 +325,7 @@ public final class ZaffPlugin extends OptionHandler {
|
||||
break;
|
||||
case 1:
|
||||
end();
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
/*player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int amt = (int) value;
|
||||
@@ -357,7 +357,8 @@ public final class ZaffPlugin extends OptionHandler {
|
||||
}
|
||||
});
|
||||
interpreter.sendInput(false, "Zaff has " + ammount + " battlestaves...");
|
||||
break;
|
||||
*/ break;
|
||||
//TODO: Come back and fix this later when achievement diaries can actually be completed kekkekekeke
|
||||
case 2:
|
||||
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Oh, okay then. I'll try again another time.");
|
||||
stage = 3;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package core.game.interaction.object;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.NPCDefinition;
|
||||
import core.cache.def.impl.ObjectDefinition;
|
||||
import core.game.component.CloseEvent;
|
||||
@@ -29,6 +30,7 @@ import core.game.world.map.RegionManager;
|
||||
import core.game.world.update.flag.context.Animation;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.ge.GrandExchangeOffer;
|
||||
import rs09.game.world.GameWorld;
|
||||
|
||||
@@ -370,16 +372,11 @@ public final class BankingPlugin extends OptionHandler {
|
||||
amount = p.getBank().getLastAmountX();
|
||||
break;
|
||||
case 234:
|
||||
p.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int amount = (int) value;
|
||||
p.getBank().takeItem(slot, amount);
|
||||
p.getBank().updateLastAmountX(amount);
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(p, true, "Enter the amount:", (value) -> {
|
||||
p.getBank().takeItem(slot, (int) value);
|
||||
p.getBank().updateLastAmountX((int) value);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
p.getDialogueInterpreter().sendInput(false, "Enter the amount.");
|
||||
break;
|
||||
case 9:
|
||||
p.sendMessage(p.getBank().get(slot).getDefinition().getExamine());
|
||||
@@ -520,16 +517,11 @@ public final class BankingPlugin extends OptionHandler {
|
||||
});
|
||||
return true;
|
||||
case 234:
|
||||
p.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
int ammount = (int) value;
|
||||
p.getBank().addItem(slot, ammount);
|
||||
InterfaceContainer.generateItems(p, p.getInventory().toArray(), new String[]{"Examine", "Deposit-X", "Deposit-All", "Deposit-10", "Deposit-5", "Deposit-1",}, 11, 15, 5, 7);
|
||||
return false;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(p, true, "Enter the amount:", (value) -> {
|
||||
p.getBank().addItem(slot, (int) value);
|
||||
InterfaceContainer.generateItems(p, p.getInventory().toArray(), new String[]{"Examine", "Deposit-X", "Deposit-All", "Deposit-10", "Deposit-5", "Deposit-1",}, 11, 15, 5, 7);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
p.getDialogueInterpreter().sendInput(false, "Enter the amount.");
|
||||
break;
|
||||
case 168:
|
||||
p.sendMessage(item.getDefinition().getExamine());
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
package core.game.interaction.object;
|
||||
|
||||
import core.game.component.Component;
|
||||
import core.game.interaction.NodeUsageEvent;
|
||||
import core.game.interaction.UseWithHandler;
|
||||
import core.game.node.entity.player.Player;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
|
||||
/**
|
||||
* @author 'Vexia
|
||||
*/
|
||||
@Initializable
|
||||
public class SilverCastingInterfacePlugin extends UseWithHandler {
|
||||
|
||||
public SilverCastingInterfacePlugin() {
|
||||
super(2355);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handle(NodeUsageEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
event.getPlayer().getInterfaceManager().open(new Component(438));
|
||||
player.getPacketDispatch().sendItemOnInterface(1718, 1, 438, 17);
|
||||
player.getPacketDispatch().sendItemOnInterface(1724, 1, 438, 24);
|
||||
player.getPacketDispatch().sendItemOnInterface(2961, 1, 438, 31);
|
||||
player.getPacketDispatch().sendItemOnInterface(4201, 1, 438, 38);
|
||||
player.getPacketDispatch().sendItemOnInterface(5525, 1, 438, 45);
|
||||
player.getPacketDispatch().sendItemOnInterface(7637, 1, 438, 53);
|
||||
player.getPacketDispatch().sendItemOnInterface(6748, 1, 438, 60);
|
||||
player.getPacketDispatch().sendItemOnInterface(9382, 10, 438, 67);
|
||||
player.getPacketDispatch().sendItemOnInterface(13154, 10, 438, 74);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Plugin<Object> newInstance(Object arg) throws Throwable {
|
||||
addHandler(2966, OBJECT_TYPE, this);
|
||||
addHandler(3044, OBJECT_TYPE, this);
|
||||
addHandler(3294, OBJECT_TYPE, this);
|
||||
addHandler(4304, OBJECT_TYPE, this);
|
||||
addHandler(6189, OBJECT_TYPE, this);
|
||||
addHandler(11009, OBJECT_TYPE, this);
|
||||
addHandler(11010, OBJECT_TYPE, this);
|
||||
addHandler(11666, OBJECT_TYPE, this);
|
||||
addHandler(12100, OBJECT_TYPE, this);
|
||||
addHandler(12809, OBJECT_TYPE, this);
|
||||
addHandler(18497, OBJECT_TYPE, this);
|
||||
addHandler(18525, OBJECT_TYPE, this);
|
||||
addHandler(18526, OBJECT_TYPE, this);
|
||||
addHandler(21879, OBJECT_TYPE, this);
|
||||
addHandler(22721, OBJECT_TYPE, this);
|
||||
addHandler(26814, OBJECT_TYPE, this);
|
||||
addHandler(28433, OBJECT_TYPE, this);
|
||||
addHandler(28434, OBJECT_TYPE, this);
|
||||
addHandler(30021, OBJECT_TYPE, this);
|
||||
addHandler(30510, OBJECT_TYPE, this);
|
||||
addHandler(36956, OBJECT_TYPE, this);
|
||||
addHandler(37651, OBJECT_TYPE, this);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
+26
-28
@@ -1,6 +1,7 @@
|
||||
package core.game.node.entity.skill.construction;
|
||||
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.ObjectDefinition;
|
||||
import core.game.content.dialogue.DialogueInterpreter;
|
||||
import core.game.content.dialogue.DialoguePlugin;
|
||||
@@ -13,6 +14,7 @@ import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import core.plugin.PluginManifest;
|
||||
import core.plugin.PluginType;
|
||||
import kotlin.Unit;
|
||||
import rs09.game.world.repository.Repository;
|
||||
import rs09.plugin.PluginManager;
|
||||
|
||||
@@ -118,35 +120,31 @@ public final class PortalOptionPlugin extends OptionHandler {
|
||||
player.getHouseManager().enter(player, buttonId == 2, true);
|
||||
break;
|
||||
case 3:
|
||||
player.getDialogueInterpreter().sendInput(true, "Enter friend's name:");
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
Player p = Repository.getPlayerByName((String) getValue());
|
||||
if (p == null || !p.isActive()) {
|
||||
player.getPacketDispatch().sendMessage("This player is not online.");
|
||||
return true;
|
||||
}
|
||||
if (p.getUsername().equals(player.getUsername())) {
|
||||
player.getPacketDispatch().sendMessage("You aren't a friend of yourself!");
|
||||
return true;
|
||||
}
|
||||
if (!p.getHouseManager().isLoaded()) {
|
||||
player.getPacketDispatch().sendMessage("This player is not at home right now.");
|
||||
return true;
|
||||
}
|
||||
if (p.getHouseManager().isBuildingMode()) {
|
||||
player.getPacketDispatch().sendMessage("This player is in building mode.");
|
||||
return true;
|
||||
}
|
||||
if (p.getHouseManager().isLocked()) {
|
||||
player.getPacketDispatch().sendMessage("The other player has locked their house.");
|
||||
return true;
|
||||
}
|
||||
p.setAttribute("poh_owner", getValue());
|
||||
p.getHouseManager().enter(player, false, false);
|
||||
return true;
|
||||
ContentAPI.sendInputDialogue(player, false, "Enter friend's name:", (value) -> {
|
||||
Player p = Repository.getPlayerByName((String) value);
|
||||
if (p == null || !p.isActive()) {
|
||||
player.getPacketDispatch().sendMessage("This player is not online.");
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
if (p.getUsername().equals(player.getUsername())) {
|
||||
player.getPacketDispatch().sendMessage("You aren't a friend of yourself!");
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
if (!p.getHouseManager().isLoaded()) {
|
||||
player.getPacketDispatch().sendMessage("This player is not at home right now.");
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
if (p.getHouseManager().isBuildingMode()) {
|
||||
player.getPacketDispatch().sendMessage("This player is in building mode.");
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
if (p.getHouseManager().isLocked()) {
|
||||
player.getPacketDispatch().sendMessage("The other player has locked their house.");
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
p.setAttribute("poh_owner", (String) value);
|
||||
p.getHouseManager().enter(player, false, false);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
+5
-7
@@ -1,5 +1,6 @@
|
||||
package core.game.node.entity.skill.summoning;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.cache.def.impl.ItemDefinition;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
@@ -10,6 +11,7 @@ import core.game.node.entity.player.Player;
|
||||
import core.game.node.entity.player.link.RunScript;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import kotlin.Unit;
|
||||
import rs09.plugin.PluginManager;
|
||||
|
||||
/**
|
||||
@@ -47,14 +49,10 @@ public final class SummoningCreationPlugin extends ComponentPlugin {
|
||||
SummoningCreator.create(player, getItemAmount(opcode), component.getId() == 669 ? SummoningPouch.forSlot(slot > 50 ? slot -1 : slot) : SummoningScroll.forId(slot > 50 ? slot -1 : slot));
|
||||
break;
|
||||
case 234:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
SummoningCreator.create(player, (int) getValue(), component.getId() == 669 ? SummoningPouch.forSlot(slot > 50 ? slot -1 : slot) : SummoningScroll.forId(slot > 50 ? slot -1 : slot));
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
SummoningCreator.create(player, (int) value, component.getId() == 669 ? SummoningPouch.forSlot(slot > 50 ? slot -1 : slot) : SummoningScroll.forId(slot > 50 ? slot -1 : slot));
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount:");
|
||||
return true;
|
||||
case 166:
|
||||
SummoningCreator.list(player, SummoningPouch.forSlot(slot > 50 ? slot -1 : slot));
|
||||
|
||||
+5
-7
@@ -1,5 +1,6 @@
|
||||
package core.game.node.entity.skill.summoning.familiar;
|
||||
|
||||
import api.ContentAPI;
|
||||
import core.game.component.Component;
|
||||
import core.game.component.ComponentDefinition;
|
||||
import core.game.component.ComponentPlugin;
|
||||
@@ -9,6 +10,7 @@ import core.game.node.entity.player.link.RunScript;
|
||||
import core.game.node.item.Item;
|
||||
import core.plugin.Initializable;
|
||||
import core.plugin.Plugin;
|
||||
import kotlin.Unit;
|
||||
|
||||
/**
|
||||
* Handles the beast of burden interface.
|
||||
@@ -54,14 +56,10 @@ public final class BurdenInterfacePlugin extends ComponentPlugin {
|
||||
beast.transfer(item, container.getAmount(item), withdraw);
|
||||
return true;
|
||||
case 234:
|
||||
player.setAttribute("runscript", new RunScript() {
|
||||
@Override
|
||||
public boolean handle() {
|
||||
beast.transfer(item, (int) getValue(), withdraw);
|
||||
return true;
|
||||
}
|
||||
ContentAPI.sendInputDialogue(player, true, "Enter the amount:", (value) -> {
|
||||
beast.transfer(item, (int) value, withdraw);
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
player.getDialogueInterpreter().sendInput(false, "Enter the amount:");
|
||||
break;
|
||||
case 168:
|
||||
player.getPacketDispatch().sendMessage(item.getDefinition().getExamine());
|
||||
|
||||
@@ -5,6 +5,7 @@ import core.game.node.entity.player.link.RunScript;
|
||||
import core.net.packet.IncomingPacket;
|
||||
import core.net.packet.IoBuffer;
|
||||
import core.tools.StringUtils;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
|
||||
/**
|
||||
* Represents the incoming packet to handle a run script.
|
||||
@@ -14,7 +15,7 @@ public class RunScriptPacketHandler implements IncomingPacket {
|
||||
|
||||
@Override
|
||||
public void decode(Player player, int opcode, IoBuffer buffer) {
|
||||
final RunScript script = player.getAttribute("runscript", null);
|
||||
final Function1 script = player.getAttribute("runscript", null);
|
||||
if (script == null || player.getLocks().isInteractionLocked()) {
|
||||
return;
|
||||
}
|
||||
@@ -28,9 +29,7 @@ public class RunScriptPacketHandler implements IncomingPacket {
|
||||
} else {
|
||||
value = buffer.getInt();
|
||||
}
|
||||
script.setValue(value);
|
||||
script.setPlayer(player);
|
||||
script.invoke(value);
|
||||
player.removeAttribute("runscript");
|
||||
script.handle();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user