diff --git a/data/plugins/run/run.rb b/data/plugins/run/run.rb index 5e1d176e..f6a3cad5 100644 --- a/data/plugins/run/run.rb +++ b/data/plugins/run/run.rb @@ -2,16 +2,9 @@ WALK_BUTTON_ID = 152 RUN_BUTTON_ID = 153 on :button, WALK_BUTTON_ID do |player| - player.running = false + player.toggle_running end on :button, RUN_BUTTON_ID do |player| - player.running = true -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.") + player.toggle_running end \ No newline at end of file diff --git a/src/net/burtleburtle/bob/rand/IsaacRandom.java b/src/net/burtleburtle/bob/rand/IsaacRandom.java index c2c4a0cd..89175afd 100644 --- a/src/net/burtleburtle/bob/rand/IsaacRandom.java +++ b/src/net/burtleburtle/bob/rand/IsaacRandom.java @@ -33,12 +33,12 @@ public final class IsaacRandom { /** * 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. */ - private static final int SIZE = 1 << SIZEL; + private static final int SIZE = 1 << LOG_SIZE; /** * A mask for pseudorandom lookup. @@ -241,25 +241,25 @@ public final class IsaacRandom { a ^= a << 13; a += mem[j++]; 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]; a ^= a >>> 6; a += mem[j++]; 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]; a ^= a << 2; a += mem[j++]; 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]; a ^= a >>> 16; a += mem[j++]; 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;) { @@ -267,25 +267,25 @@ public final class IsaacRandom { a ^= a << 13; a += mem[j++]; 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]; a ^= a >>> 6; a += mem[j++]; 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]; a ^= a << 2; a += mem[j++]; 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]; a ^= a >>> 16; a += mem[j++]; 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; } } diff --git a/src/org/apollo/game/command/Command.java b/src/org/apollo/game/command/Command.java index 5ddfa33a..b5bf90b4 100644 --- a/src/org/apollo/game/command/Command.java +++ b/src/org/apollo/game/command/Command.java @@ -46,4 +46,4 @@ public final class Command { return name; } -} +} \ No newline at end of file diff --git a/src/org/apollo/game/command/CommandDispatcher.java b/src/org/apollo/game/command/CommandDispatcher.java index 8c02c3a4..8831894d 100644 --- a/src/org/apollo/game/command/CommandDispatcher.java +++ b/src/org/apollo/game/command/CommandDispatcher.java @@ -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 listener The listener. @@ -48,4 +48,4 @@ public final class CommandDispatcher { listeners.put(command.toLowerCase(), listener); } -} +} \ No newline at end of file diff --git a/src/org/apollo/game/command/CommandListener.java b/src/org/apollo/game/command/CommandListener.java index 59bd758a..f6d8ee05 100644 --- a/src/org/apollo/game/command/CommandListener.java +++ b/src/org/apollo/game/command/CommandListener.java @@ -17,4 +17,4 @@ public interface CommandListener { */ public void execute(Player player, Command command); -} +} \ No newline at end of file diff --git a/src/org/apollo/game/command/CreditsCommandListener.java b/src/org/apollo/game/command/CreditsCommandListener.java index 3dc0e400..9ecdb8e4 100644 --- a/src/org/apollo/game/command/CreditsCommandListener.java +++ b/src/org/apollo/game/command/CreditsCommandListener.java @@ -1,11 +1,11 @@ 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.World; -import org.apollo.game.model.inter.quest.QuestConstants; import org.apollo.util.plugin.PluginManager; /** @@ -27,36 +27,26 @@ public final class CreditsCommandListener implements CommandListener { @Override public void execute(Player player, Command command) { PluginManager mgr = World.getWorld().getPluginManager(); - Iterator it = mgr.createAuthorsIterator(); + final Set authors = mgr.getAuthors(); - int pos = 0; - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Apollo")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "@dre@Introduction")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], - "This server is based on Apollo, a lightweight, fast, secure")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], - "and open-source RuneScape emulator. For more")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], - "information about Apollo, visit the website at:")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], - "@dbl@https://github.com/apollo-rsps/apollo")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], "")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], - "Apollo is released under the terms of the ISC")); - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos++], - "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++], "")); + List text = new ArrayList(14 + authors.size()); + text.add("@dre@Apollo"); + text.add("@dre@Introduction"); + text.add(""); + text.add("This server is based on Apollo, a lightweight, fast, secure"); + text.add("and open-source RuneScape emulator. For more"); + text.add("information about Apollo, visit the website at:"); + text.add("@dbl@https://github.com/apollo-rsps/apollo"); + text.add(""); + text.add("Apollo is released under the terms of the ISC"); + text.add("license, details can be found in the root folder of the"); + text.add("Apollo distribution."); + text.add(""); + text.add("@dre@Credits"); + text.add(""); + text.addAll(authors); - for (; pos < QuestConstants.QUEST_TEXT.length; pos++) { - String text = it.hasNext() ? it.next() : ""; - player.send(new SetWidgetTextEvent(QuestConstants.QUEST_TEXT[pos], text)); - } - - player.getInterfaceSet().openWindow(QuestConstants.QUEST_INTERFACE); + player.sendQuestInterface(text); } } \ No newline at end of file diff --git a/src/org/apollo/game/command/PrivilegedCommandListener.java b/src/org/apollo/game/command/PrivilegedCommandListener.java index 3699954f..d969c3de 100644 --- a/src/org/apollo/game/command/PrivilegedCommandListener.java +++ b/src/org/apollo/game/command/PrivilegedCommandListener.java @@ -39,4 +39,4 @@ public abstract class PrivilegedCommandListener implements CommandListener { */ public abstract void executePrivileged(Player player, Command command); -} +} \ No newline at end of file diff --git a/src/org/apollo/game/event/handler/impl/ItemVerificationHandler.java b/src/org/apollo/game/event/handler/impl/ItemVerificationHandler.java index 79b14b39..81825d99 100644 --- a/src/org/apollo/game/event/handler/impl/ItemVerificationHandler.java +++ b/src/org/apollo/game/event/handler/impl/ItemVerificationHandler.java @@ -5,9 +5,9 @@ import org.apollo.game.event.handler.EventHandlerContext; import org.apollo.game.event.impl.InventoryItemEvent; import org.apollo.game.model.Inventory; 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.inv.SynchronizationInventoryListener; -import org.apollo.game.model.Player; /** * An {@link EventHandler} which verifies {@link InventoryItemEvent}s. diff --git a/src/org/apollo/game/event/handler/impl/WalkEventHandler.java b/src/org/apollo/game/event/handler/impl/WalkEventHandler.java index 49710f3e..59b92538 100644 --- a/src/org/apollo/game/event/handler/impl/WalkEventHandler.java +++ b/src/org/apollo/game/event/handler/impl/WalkEventHandler.java @@ -3,9 +3,9 @@ package org.apollo.game.event.handler.impl; import org.apollo.game.event.handler.EventHandler; import org.apollo.game.event.handler.EventHandlerContext; import org.apollo.game.event.impl.WalkEvent; +import org.apollo.game.model.Player; import org.apollo.game.model.Position; import org.apollo.game.model.WalkingQueue; -import org.apollo.game.model.Player; /** * A handler for the {@link WalkEvent}. diff --git a/src/org/apollo/game/event/impl/ItemOnItemEvent.java b/src/org/apollo/game/event/impl/ItemOnItemEvent.java index 6704946f..bd6c1c95 100644 --- a/src/org/apollo/game/event/impl/ItemOnItemEvent.java +++ b/src/org/apollo/game/event/impl/ItemOnItemEvent.java @@ -7,16 +7,16 @@ package org.apollo.game.event.impl; */ public final class ItemOnItemEvent extends InventoryItemEvent { - /** - * The interface id of the target item. - */ - private final int targetInterface; - /** * The id of the target item. */ private final int targetId; + /** + * The interface id of the target item. + */ + private final int targetInterface; + /** * The slot of the target item. */ @@ -40,15 +40,6 @@ public final class ItemOnItemEvent extends InventoryItemEvent { 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. * @@ -58,6 +49,15 @@ public final class ItemOnItemEvent extends InventoryItemEvent { 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. * diff --git a/src/org/apollo/game/model/inter/quest/QuestConstants.java b/src/org/apollo/game/model/InterfaceConstants.java similarity index 54% rename from src/org/apollo/game/model/inter/quest/QuestConstants.java rename to src/org/apollo/game/model/InterfaceConstants.java index 25141188..2fd3fc2f 100644 --- a/src/org/apollo/game/model/inter/quest/QuestConstants.java +++ b/src/org/apollo/game/model/InterfaceConstants.java @@ -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. @@ -13,12 +27,17 @@ public final class QuestConstants { 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, 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, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223 }; - /** - * Default private constructor to prevent instantiation. - */ - private QuestConstants() { - - } - -} +} \ No newline at end of file diff --git a/src/org/apollo/game/model/InterfaceSet.java b/src/org/apollo/game/model/InterfaceSet.java index 54e8f01f..76f61c77 100644 --- a/src/org/apollo/game/model/InterfaceSet.java +++ b/src/org/apollo/game/model/InterfaceSet.java @@ -36,7 +36,6 @@ public final class InterfaceSet { */ private EnterAmountListener amountListener; - // TODO: maybe store the current inventory tab ids here?? /** * A map of open interfaces. */ @@ -174,4 +173,13 @@ public final class InterfaceSet { player.send(new OpenInterfaceSidebarEvent(windowId, sidebarId)); } -} + /** + * Gets the size of the interface set. + * + * @return The size. + */ + public int size() { + return interfaces.size(); + } + +} \ No newline at end of file diff --git a/src/org/apollo/game/model/InterfaceType.java b/src/org/apollo/game/model/InterfaceType.java index 5b70eac1..8e4a18f3 100644 --- a/src/org/apollo/game/model/InterfaceType.java +++ b/src/org/apollo/game/model/InterfaceType.java @@ -38,4 +38,4 @@ public enum InterfaceType { */ WINDOW; -} +} \ No newline at end of file diff --git a/src/org/apollo/game/model/Player.java b/src/org/apollo/game/model/Player.java index aaa3f251..f2a1cf43 100644 --- a/src/org/apollo/game/model/Player.java +++ b/src/org/apollo/game/model/Player.java @@ -1,12 +1,15 @@ package org.apollo.game.model; import java.util.ArrayDeque; +import java.util.List; import java.util.Queue; 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.LogoutEvent; 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.model.inter.bank.BankConstants; import org.apollo.game.model.inv.AppearanceInventoryListener; @@ -105,6 +108,11 @@ public final class Player extends Character { */ 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. */ @@ -173,7 +181,7 @@ public final class Player extends Character { /** * 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}. @@ -191,7 +199,7 @@ public final class Player extends Character { * Decrements this player's viewing distance if it is greater than 1. */ public void decrementViewingDistance() { - if (viewingDistance > 1) { // TODO should it be 0? + if (viewingDistance > 1) { viewingDistance--; } } @@ -496,27 +504,19 @@ public final class Player extends Character { send(new IdAssignmentEvent(getIndex(), members)); // TODO should this be sent when we reconnect? sendMessage("Welcome to RuneScape."); - // character design screen 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 = { - // 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, }; + int[] tabs = InterfaceConstants.DEFAULT_INVENTORY_TABS; for (int i = 0; i < tabs.length; i++) { send(new SwitchTabInterfaceEvent(i, tabs[i])); } - // force inventories to update getInventory().forceRefresh(); getEquipment().forceRefresh(); getBank().forceRefresh(); - // force skills to update getSkillSet().forceRefresh(); } @@ -529,6 +529,23 @@ public final class Player extends Character { send(new ServerMessageEvent(message)); } + /** + * Sends the quest interface + * + * @param text The text to display on the interface. + */ + public void sendQuestInterface(List 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. * @@ -602,16 +619,6 @@ public final class Player extends Character { 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}. * @@ -638,7 +645,18 @@ public final class Player extends Character { @Override public void teleport(Position position) { 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 @@ -647,4 +665,22 @@ public final class Player extends Character { + 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; + } + } \ No newline at end of file diff --git a/src/org/apollo/game/model/inter/quest/package-info.java b/src/org/apollo/game/model/inter/quest/package-info.java deleted file mode 100644 index 75803a02..00000000 --- a/src/org/apollo/game/model/inter/quest/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Contains classes related to the quest interfaces. - */ -package org.apollo.game.model.inter.quest; - diff --git a/src/org/apollo/net/release/r317/Release317.java b/src/org/apollo/net/release/r317/Release317.java index e657f347..80a507d4 100644 --- a/src/org/apollo/net/release/r317/Release317.java +++ b/src/org/apollo/net/release/r317/Release317.java @@ -75,29 +75,34 @@ public final class Release317 extends Release { */ private void init() { // register decoders - register(0, new KeepAliveEventDecoder()); - register(101, new CharacterDesignEventDecoder()); WalkEventDecoder walkEventDecoder = new WalkEventDecoder(); register(248, walkEventDecoder); register(164, walkEventDecoder); register(98, walkEventDecoder); + + register(0, new KeepAliveEventDecoder()); + register(101, new CharacterDesignEventDecoder()); register(4, new ChatEventDecoder()); - register(185, new ButtonEventDecoder()); register(103, new CommandEventDecoder()); register(214, new SwitchItemEventDecoder()); + register(132, new FirstObjectActionEventDecoder()); register(252, new SecondObjectActionEventDecoder()); register(70, new ThirdObjectActionEventDecoder()); + register(122, new FirstItemOptionEventDecoder()); register(41, new SecondItemOptionEventDecoder()); register(16, new ThirdItemOptionEventDecoder()); register(75, new FourthItemOptionEventDecoder()); register(87, new FifthItemOptionEventDecoder()); + register(145, new FirstItemActionEventDecoder()); register(117, new SecondItemActionEventDecoder()); register(43, new ThirdItemActionEventDecoder()); register(129, new FourthItemActionEventDecoder()); register(135, new FifthItemActionEventDecoder()); + + register(185, new ButtonEventDecoder()); register(130, new ClosedInterfaceEventDecoder()); register(208, new EnteredAmountEventDecoder()); register(53, new ItemOnItemEventDecoder()); diff --git a/src/org/apollo/net/release/r377/Release377.java b/src/org/apollo/net/release/r377/Release377.java index 7861d6fc..7d3ed614 100644 --- a/src/org/apollo/net/release/r377/Release377.java +++ b/src/org/apollo/net/release/r377/Release377.java @@ -75,29 +75,34 @@ public final class Release377 extends Release { */ private void init() { // register decoders - register(248, new KeepAliveEventDecoder()); - register(163, new CharacterDesignEventDecoder()); WalkEventDecoder walkEventDecoder = new WalkEventDecoder(); register(213, walkEventDecoder); register(28, walkEventDecoder); register(247, walkEventDecoder); + + register(248, new KeepAliveEventDecoder()); + register(163, new CharacterDesignEventDecoder()); register(49, new ChatEventDecoder()); - register(79, new ButtonEventDecoder()); register(56, new CommandEventDecoder()); register(123, new SwitchItemEventDecoder()); + register(181, new FirstObjectActionEventDecoder()); register(241, new SecondObjectActionEventDecoder()); register(50, new ThirdObjectActionEventDecoder()); + register(203, new FirstItemOptionEventDecoder()); register(24, new SecondItemOptionEventDecoder()); register(161, new ThirdItemOptionEventDecoder()); register(228, new FourthItemOptionEventDecoder()); register(4, new FifthItemOptionEventDecoder()); + register(3, new FirstItemActionEventDecoder()); register(177, new SecondItemActionEventDecoder()); register(91, new ThirdItemActionEventDecoder()); register(231, new FourthItemActionEventDecoder()); register(158, new FifthItemActionEventDecoder()); + + register(79, new ButtonEventDecoder()); register(110, new ClosedInterfaceEventDecoder()); register(75, new EnteredAmountEventDecoder()); register(1, new ItemOnItemEventDecoder()); diff --git a/src/org/apollo/util/plugin/PluginManager.java b/src/org/apollo/util/plugin/PluginManager.java index 225e537e..b25af056 100644 --- a/src/org/apollo/util/plugin/PluginManager.java +++ b/src/org/apollo/util/plugin/PluginManager.java @@ -9,7 +9,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.Map; import java.util.Set; 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 createAuthorsIterator() { - return authors.iterator(); + public Set getAuthors() { + return Collections.unmodifiableSortedSet(authors); } /**