Change interface management (see commit notes).

This commit is contained in:
Major-
2013-11-03 19:16:51 +00:00
parent e6bf527dff
commit 43c5a23851
18 changed files with 171 additions and 128 deletions
+2 -9
View File
@@ -2,16 +2,9 @@ WALK_BUTTON_ID = 152
RUN_BUTTON_ID = 153 RUN_BUTTON_ID = 153
on :button, WALK_BUTTON_ID do |player| on :button, WALK_BUTTON_ID do |player|
player.running = false player.toggle_running
end end
on :button, RUN_BUTTON_ID do |player| on :button, RUN_BUTTON_ID do |player|
player.running = true player.toggle_running
end
on :command, :run do |player, command|
running = player.is_running
player.running = !running
player.send_message(running ? "You are now running." : "You are no longer running.")
end end
+10 -10
View File
@@ -33,12 +33,12 @@ public final class IsaacRandom {
/** /**
* The log of the size of the result and memory arrays. * The log of the size of the result and memory arrays.
*/ */
private static final int SIZEL = 8; private static final int LOG_SIZE = 8;
/** /**
* The size of the result and memory arrays. * The size of the result and memory arrays.
*/ */
private static final int SIZE = 1 << SIZEL; private static final int SIZE = 1 << LOG_SIZE;
/** /**
* A mask for pseudorandom lookup. * A mask for pseudorandom lookup.
@@ -241,25 +241,25 @@ public final class IsaacRandom {
a ^= a << 13; a ^= a << 13;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
x = mem[i]; x = mem[i];
a ^= a >>> 6; a ^= a >>> 6;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
x = mem[i]; x = mem[i];
a ^= a << 2; a ^= a << 2;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
x = mem[i]; x = mem[i];
a ^= a >>> 16; a ^= a >>> 16;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
} }
for (j = 0; j < SIZE / 2;) { for (j = 0; j < SIZE / 2;) {
@@ -267,25 +267,25 @@ public final class IsaacRandom {
a ^= a << 13; a ^= a << 13;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
x = mem[i]; x = mem[i];
a ^= a >>> 6; a ^= a >>> 6;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
x = mem[i]; x = mem[i];
a ^= a << 2; a ^= a << 2;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
x = mem[i]; x = mem[i];
a ^= a >>> 16; a ^= a >>> 16;
a += mem[j++]; a += mem[j++];
mem[i] = y = mem[(x & MASK) >> 2] + a + b; mem[i] = y = mem[(x & MASK) >> 2] + a + b;
rsl[i++] = b = mem[(y >> SIZEL & MASK) >> 2] + x; rsl[i++] = b = mem[(y >> LOG_SIZE & MASK) >> 2] + x;
} }
} }
+1 -1
View File
@@ -46,4 +46,4 @@ public final class Command {
return name; return name;
} }
} }
@@ -39,7 +39,7 @@ public final class CommandDispatcher {
} }
/** /**
* Registers a listener with the * Registers a listener with the dispatcher.
* *
* @param command The command's name. * @param command The command's name.
* @param listener The listener. * @param listener The listener.
@@ -48,4 +48,4 @@ public final class CommandDispatcher {
listeners.put(command.toLowerCase(), listener); listeners.put(command.toLowerCase(), listener);
} }
} }
@@ -17,4 +17,4 @@ public interface CommandListener {
*/ */
public void execute(Player player, Command command); public void execute(Player player, Command command);
} }
@@ -1,11 +1,11 @@
package org.apollo.game.command; package org.apollo.game.command;
import java.util.Iterator; import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.apollo.game.event.impl.SetWidgetTextEvent;
import org.apollo.game.model.Player; import org.apollo.game.model.Player;
import org.apollo.game.model.World; import org.apollo.game.model.World;
import org.apollo.game.model.inter.quest.QuestConstants;
import org.apollo.util.plugin.PluginManager; import org.apollo.util.plugin.PluginManager;
/** /**
@@ -27,36 +27,26 @@ public final class CreditsCommandListener implements CommandListener {
@Override @Override
public void execute(Player player, Command command) { public void execute(Player player, Command command) {
PluginManager mgr = World.getWorld().getPluginManager(); PluginManager mgr = World.getWorld().getPluginManager();
Iterator<String> it = mgr.createAuthorsIterator(); final Set<String> authors = mgr.getAuthors();
int pos = 0; List<String> text = new ArrayList<String>(14 + authors.size());
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Apollo")); text.add("@dre@Apollo");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Introduction")); text.add("@dre@Introduction");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); text.add("");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], text.add("This server is based on Apollo, a lightweight, fast, secure");
"This server is based on Apollo, a lightweight, fast, secure")); text.add("and open-source RuneScape emulator. For more");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], text.add("information about Apollo, visit the website at:");
"and open-source RuneScape emulator. For more")); text.add("@dbl@https://github.com/apollo-rsps/apollo");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], text.add("");
"information about Apollo, visit the website at:")); text.add("Apollo is released under the terms of the ISC");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], text.add("license, details can be found in the root folder of the");
"@dbl@https://github.com/apollo-rsps/apollo")); text.add("Apollo distribution.");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); text.add("");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], text.add("@dre@Credits");
"Apollo is released under the terms of the ISC")); text.add("");
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], text.addAll(authors);
"license, details can be found in the root folder of the "));
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "Apollo distribution."));
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], ""));
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Credits"));
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], ""));
for (; pos < QuestConstants.QUEST_TEXT.length; pos++) { player.sendQuestInterface(text);
String text = it.hasNext() ? it.next() : "";
player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos], text));
}
player.getInterfaceSet().openWindow(QuestConstants.QUEST_INTERFACE);
} }
} }
@@ -39,4 +39,4 @@ public abstract class PrivilegedCommandListener implements CommandListener {
*/ */
public abstract void executePrivileged(Player player, Command command); public abstract void executePrivileged(Player player, Command command);
} }
@@ -5,9 +5,9 @@ import org.apollo.game.event.handler.EventHandlerContext;
import org.apollo.game.event.impl.InventoryItemEvent; import org.apollo.game.event.impl.InventoryItemEvent;
import org.apollo.game.model.Inventory; import org.apollo.game.model.Inventory;
import org.apollo.game.model.Item; import org.apollo.game.model.Item;
import org.apollo.game.model.Player;
import org.apollo.game.model.inter.bank.BankConstants; import org.apollo.game.model.inter.bank.BankConstants;
import org.apollo.game.model.inv.SynchronizationInventoryListener; import org.apollo.game.model.inv.SynchronizationInventoryListener;
import org.apollo.game.model.Player;
/** /**
* An {@link EventHandler} which verifies {@link InventoryItemEvent}s. * An {@link EventHandler} which verifies {@link InventoryItemEvent}s.
@@ -3,9 +3,9 @@ package org.apollo.game.event.handler.impl;
import org.apollo.game.event.handler.EventHandler; import org.apollo.game.event.handler.EventHandler;
import org.apollo.game.event.handler.EventHandlerContext; import org.apollo.game.event.handler.EventHandlerContext;
import org.apollo.game.event.impl.WalkEvent; import org.apollo.game.event.impl.WalkEvent;
import org.apollo.game.model.Player;
import org.apollo.game.model.Position; import org.apollo.game.model.Position;
import org.apollo.game.model.WalkingQueue; import org.apollo.game.model.WalkingQueue;
import org.apollo.game.model.Player;
/** /**
* A handler for the {@link WalkEvent}. * A handler for the {@link WalkEvent}.
@@ -7,16 +7,16 @@ package org.apollo.game.event.impl;
*/ */
public final class ItemOnItemEvent extends InventoryItemEvent { public final class ItemOnItemEvent extends InventoryItemEvent {
/**
* The interface id of the target item.
*/
private final int targetInterface;
/** /**
* The id of the target item. * The id of the target item.
*/ */
private final int targetId; private final int targetId;
/**
* The interface id of the target item.
*/
private final int targetInterface;
/** /**
* The slot of the target item. * The slot of the target item.
*/ */
@@ -40,15 +40,6 @@ public final class ItemOnItemEvent extends InventoryItemEvent {
this.targetId = targetId; this.targetId = targetId;
} }
/**
* Gets the interface id of the target item.
*
* @return The target item's interface id.
*/
public int getTargetInterfaceId() {
return targetInterface;
}
/** /**
* Gets the id of the target item. * Gets the id of the target item.
* *
@@ -58,6 +49,15 @@ public final class ItemOnItemEvent extends InventoryItemEvent {
return targetId; return targetId;
} }
/**
* Gets the interface id of the target item.
*
* @return The target item's interface id.
*/
public int getTargetInterfaceId() {
return targetInterface;
}
/** /**
* Gets the slot of the target item. * Gets the slot of the target item.
* *
@@ -1,11 +1,25 @@
package org.apollo.game.model.inter.quest; package org.apollo.game.model;
/** /**
* Contains quest-related constants. * Contains interface-related constants.
* *
* @author Graham * @author Major
*/ */
public final class QuestConstants { public class InterfaceConstants {
/**
* The character design interface id.
*/
public static final int CHARACTER_DESIGN = 3559;
/**
* The default inventory tab ids.
*/
public static final int[] DEFAULT_INVENTORY_TABS = { 2423, 3917, 638, 3213, 1644, 5608, 1151, -1, 5065, 5715, 2449,
904, 147, 962, };
// 6299 = music tab, music disabled
// 4445 = settings tab, music disabled
// 12855 = ancients magic
/** /**
* The quest interface id. * The quest interface id.
@@ -13,12 +27,17 @@ public final class QuestConstants {
public static final int QUEST_INTERFACE = 8134; public static final int QUEST_INTERFACE = 8134;
/** /**
* The part of the quest interface that contains the scroll bar. * The scroll bar widget.
*/ */
public static final int QUEST_SCROLL_PANE = 8143; // 8144 = title public static final int QUEST_SCROLL_PANE = 8143;
/** /**
* The array of sub interfaces which display the text. * The quest title widget id.
*/
public static final int QUEST_TITLE = 8144;
/**
* The array of widgets that display the text.
*/ */
public static final int[] QUEST_TEXT = { 8144, 8145, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, public static final int[] QUEST_TEXT = { 8144, 8145, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174,
@@ -28,11 +47,4 @@ public final class QuestConstants {
12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215,
12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223 }; 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223 };
/** }
* Default private constructor to prevent instantiation.
*/
private QuestConstants() {
}
}
+10 -2
View File
@@ -36,7 +36,6 @@ public final class InterfaceSet {
*/ */
private EnterAmountListener amountListener; private EnterAmountListener amountListener;
// TODO: maybe store the current inventory tab ids here??
/** /**
* A map of open interfaces. * A map of open interfaces.
*/ */
@@ -174,4 +173,13 @@ public final class InterfaceSet {
player.send(new OpenInterfaceSidebarEvent(windowId, sidebarId)); player.send(new OpenInterfaceSidebarEvent(windowId, sidebarId));
} }
} /**
* Gets the size of the interface set.
*
* @return The size.
*/
public int size() {
return interfaces.size();
}
}
+1 -1
View File
@@ -38,4 +38,4 @@ public enum InterfaceType {
*/ */
WINDOW; WINDOW;
} }
+59 -23
View File
@@ -1,12 +1,15 @@
package org.apollo.game.model; package org.apollo.game.model;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.List;
import java.util.Queue; import java.util.Queue;
import org.apollo.game.event.Event; import org.apollo.game.event.Event;
import org.apollo.game.event.impl.ConfigEvent;
import org.apollo.game.event.impl.IdAssignmentEvent; import org.apollo.game.event.impl.IdAssignmentEvent;
import org.apollo.game.event.impl.LogoutEvent; import org.apollo.game.event.impl.LogoutEvent;
import org.apollo.game.event.impl.ServerMessageEvent; import org.apollo.game.event.impl.ServerMessageEvent;
import org.apollo.game.event.impl.SetWidgetTextEvent;
import org.apollo.game.event.impl.SwitchTabInterfaceEvent; import org.apollo.game.event.impl.SwitchTabInterfaceEvent;
import org.apollo.game.model.inter.bank.BankConstants; import org.apollo.game.model.inter.bank.BankConstants;
import org.apollo.game.model.inv.AppearanceInventoryListener; import org.apollo.game.model.inv.AppearanceInventoryListener;
@@ -105,6 +108,11 @@ public final class Player extends Character {
*/ */
private boolean designedCharacter = false; private boolean designedCharacter = false;
/**
* The player's run energy.
*/
private int runEnergy = 100;
/** /**
* A flag which indicates there are npcs that couldn't be added. * A flag which indicates there are npcs that couldn't be added.
*/ */
@@ -173,7 +181,7 @@ public final class Player extends Character {
/** /**
* A flag indicating if the player is withdrawing items as notes. * A flag indicating if the player is withdrawing items as notes.
*/ */
private boolean withdrawingNotes = false; // TODO find a better place! private boolean withdrawingNotes = false;
/** /**
* Creates the {@link Player}. * Creates the {@link Player}.
@@ -191,7 +199,7 @@ public final class Player extends Character {
* Decrements this player's viewing distance if it is greater than 1. * Decrements this player's viewing distance if it is greater than 1.
*/ */
public void decrementViewingDistance() { public void decrementViewingDistance() {
if (viewingDistance > 1) { // TODO should it be 0? if (viewingDistance > 1) {
viewingDistance--; viewingDistance--;
} }
} }
@@ -496,27 +504,19 @@ public final class Player extends Character {
send(new IdAssignmentEvent(getIndex(), members)); // TODO should this be sent when we reconnect? send(new IdAssignmentEvent(getIndex(), members)); // TODO should this be sent when we reconnect?
sendMessage("Welcome to RuneScape."); sendMessage("Welcome to RuneScape.");
// character design screen
if (!designedCharacter) { if (!designedCharacter) {
interfaceSet.openWindow(3559); // TODO make the interface id a constant or something? interfaceSet.openWindow(InterfaceConstants.CHARACTER_DESIGN);
} }
// tabs TODO make a constant? look at player settings int[] tabs = InterfaceConstants.DEFAULT_INVENTORY_TABS;
int[] tabs = {
// 6299 = music tab, music disabled
// 4445 = settings tab, music disabled
// 12855 = ancients magic
2423, 3917, 638, 3213, 1644, 5608, 1151, -1, 5065, 5715, 2449, 904, 147, 962, };
for (int i = 0; i < tabs.length; i++) { for (int i = 0; i < tabs.length; i++) {
send(new SwitchTabInterfaceEvent(i, tabs[i])); send(new SwitchTabInterfaceEvent(i, tabs[i]));
} }
// force inventories to update
getInventory().forceRefresh(); getInventory().forceRefresh();
getEquipment().forceRefresh(); getEquipment().forceRefresh();
getBank().forceRefresh(); getBank().forceRefresh();
// force skills to update
getSkillSet().forceRefresh(); getSkillSet().forceRefresh();
} }
@@ -529,6 +529,23 @@ public final class Player extends Character {
send(new ServerMessageEvent(message)); send(new ServerMessageEvent(message));
} }
/**
* Sends the quest interface
*
* @param text The text to display on the interface.
*/
public void sendQuestInterface(List<String> text) {
int size = text.size(), lines = InterfaceConstants.QUEST_TEXT.length;
if (size > lines) {
throw new IllegalArgumentException("List contains too much text for the interface.");
}
for (int pos = 0; pos < lines; pos++) {
send(new SetWidgetTextEvent(InterfaceConstants.QUEST_TEXT[pos], pos < size ? text.get(pos) : ""));
}
interfaceSet.openWindow(InterfaceConstants.QUEST_INTERFACE);
}
/** /**
* Sets the player's appearance. * Sets the player's appearance.
* *
@@ -602,16 +619,6 @@ public final class Player extends Character {
this.regionChanged = regionChanged; this.regionChanged = regionChanged;
} }
/**
* Sets whether the running toggle is enabled.
*
* @param running The toggle.
*/
public void setRunning(boolean running) {
this.running = running;
getWalkingQueue().setRunningQueue(running);
}
/** /**
* Sets the player's {@link GameSession}. * Sets the player's {@link GameSession}.
* *
@@ -638,7 +645,18 @@ public final class Player extends Character {
@Override @Override
public void teleport(Position position) { public void teleport(Position position) {
super.teleport(position); // TODO put this in the same place as Character#teleport and WalkEventHandler!! super.teleport(position); // TODO put this in the same place as Character#teleport and WalkEventHandler!!
interfaceSet.close(); // TODO: should this be done if size == 0? if (interfaceSet.size() > 0) {
interfaceSet.close();
}
}
/**
* Toggles whether the player is running or not.
*/
public void toggleRunning() {
running = !running;
getWalkingQueue().setRunningQueue(running);
send(new ConfigEvent(173, running ? 1 : 0));
} }
@Override @Override
@@ -647,4 +665,22 @@ public final class Player extends Character {
+ privilegeLevel + "]"; + privilegeLevel + "]";
} }
/**
* Gets the player's run energy.
*
* @return The run energy.
*/
public int getRunEnergy() {
return runEnergy;
}
/**
* Sets the player's run energy.
*
* @param runEnergy The energy.
*/
public void setRunEnergy(int runEnergy) {
this.runEnergy = runEnergy;
}
} }
@@ -1,5 +0,0 @@
/**
* Contains classes related to the quest interfaces.
*/
package org.apollo.game.model.inter.quest;
@@ -75,29 +75,34 @@ public final class Release317 extends Release {
*/ */
private void init() { private void init() {
// register decoders // register decoders
register(0, new KeepAliveEventDecoder());
register(101, new CharacterDesignEventDecoder());
WalkEventDecoder walkEventDecoder = new WalkEventDecoder(); WalkEventDecoder walkEventDecoder = new WalkEventDecoder();
register(248, walkEventDecoder); register(248, walkEventDecoder);
register(164, walkEventDecoder); register(164, walkEventDecoder);
register(98, walkEventDecoder); register(98, walkEventDecoder);
register(0, new KeepAliveEventDecoder());
register(101, new CharacterDesignEventDecoder());
register(4, new ChatEventDecoder()); register(4, new ChatEventDecoder());
register(185, new ButtonEventDecoder());
register(103, new CommandEventDecoder()); register(103, new CommandEventDecoder());
register(214, new SwitchItemEventDecoder()); register(214, new SwitchItemEventDecoder());
register(132, new FirstObjectActionEventDecoder()); register(132, new FirstObjectActionEventDecoder());
register(252, new SecondObjectActionEventDecoder()); register(252, new SecondObjectActionEventDecoder());
register(70, new ThirdObjectActionEventDecoder()); register(70, new ThirdObjectActionEventDecoder());
register(122, new FirstItemOptionEventDecoder()); register(122, new FirstItemOptionEventDecoder());
register(41, new SecondItemOptionEventDecoder()); register(41, new SecondItemOptionEventDecoder());
register(16, new ThirdItemOptionEventDecoder()); register(16, new ThirdItemOptionEventDecoder());
register(75, new FourthItemOptionEventDecoder()); register(75, new FourthItemOptionEventDecoder());
register(87, new FifthItemOptionEventDecoder()); register(87, new FifthItemOptionEventDecoder());
register(145, new FirstItemActionEventDecoder()); register(145, new FirstItemActionEventDecoder());
register(117, new SecondItemActionEventDecoder()); register(117, new SecondItemActionEventDecoder());
register(43, new ThirdItemActionEventDecoder()); register(43, new ThirdItemActionEventDecoder());
register(129, new FourthItemActionEventDecoder()); register(129, new FourthItemActionEventDecoder());
register(135, new FifthItemActionEventDecoder()); register(135, new FifthItemActionEventDecoder());
register(185, new ButtonEventDecoder());
register(130, new ClosedInterfaceEventDecoder()); register(130, new ClosedInterfaceEventDecoder());
register(208, new EnteredAmountEventDecoder()); register(208, new EnteredAmountEventDecoder());
register(53, new ItemOnItemEventDecoder()); register(53, new ItemOnItemEventDecoder());
@@ -75,29 +75,34 @@ public final class Release377 extends Release {
*/ */
private void init() { private void init() {
// register decoders // register decoders
register(248, new KeepAliveEventDecoder());
register(163, new CharacterDesignEventDecoder());
WalkEventDecoder walkEventDecoder = new WalkEventDecoder(); WalkEventDecoder walkEventDecoder = new WalkEventDecoder();
register(213, walkEventDecoder); register(213, walkEventDecoder);
register(28, walkEventDecoder); register(28, walkEventDecoder);
register(247, walkEventDecoder); register(247, walkEventDecoder);
register(248, new KeepAliveEventDecoder());
register(163, new CharacterDesignEventDecoder());
register(49, new ChatEventDecoder()); register(49, new ChatEventDecoder());
register(79, new ButtonEventDecoder());
register(56, new CommandEventDecoder()); register(56, new CommandEventDecoder());
register(123, new SwitchItemEventDecoder()); register(123, new SwitchItemEventDecoder());
register(181, new FirstObjectActionEventDecoder()); register(181, new FirstObjectActionEventDecoder());
register(241, new SecondObjectActionEventDecoder()); register(241, new SecondObjectActionEventDecoder());
register(50, new ThirdObjectActionEventDecoder()); register(50, new ThirdObjectActionEventDecoder());
register(203, new FirstItemOptionEventDecoder()); register(203, new FirstItemOptionEventDecoder());
register(24, new SecondItemOptionEventDecoder()); register(24, new SecondItemOptionEventDecoder());
register(161, new ThirdItemOptionEventDecoder()); register(161, new ThirdItemOptionEventDecoder());
register(228, new FourthItemOptionEventDecoder()); register(228, new FourthItemOptionEventDecoder());
register(4, new FifthItemOptionEventDecoder()); register(4, new FifthItemOptionEventDecoder());
register(3, new FirstItemActionEventDecoder()); register(3, new FirstItemActionEventDecoder());
register(177, new SecondItemActionEventDecoder()); register(177, new SecondItemActionEventDecoder());
register(91, new ThirdItemActionEventDecoder()); register(91, new ThirdItemActionEventDecoder());
register(231, new FourthItemActionEventDecoder()); register(231, new FourthItemActionEventDecoder());
register(158, new FifthItemActionEventDecoder()); register(158, new FifthItemActionEventDecoder());
register(79, new ButtonEventDecoder());
register(110, new ClosedInterfaceEventDecoder()); register(110, new ClosedInterfaceEventDecoder());
register(75, new EnteredAmountEventDecoder()); register(75, new EnteredAmountEventDecoder());
register(1, new ItemOnItemEventDecoder()); register(1, new ItemOnItemEventDecoder());
@@ -9,7 +9,6 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.SortedSet; import java.util.SortedSet;
@@ -46,12 +45,12 @@ public final class PluginManager {
} }
/** /**
* Creates an iterator for the set of authors. * Creates an unmodifiable {@link Set} containing the authors.
* *
* @return The iterator. * @return The set.
*/ */
public Iterator<String> createAuthorsIterator() { public Set<String> getAuthors() {
return authors.iterator(); return Collections.unmodifiableSortedSet(authors);
} }
/** /**