RuneHive-Game
Loading...
Searching...
No Matches
com.runehive.game.plugin.extension.CommandExtension Class Referenceabstract
Inheritance diagram for com.runehive.game.plugin.extension.CommandExtension:
Collaboration diagram for com.runehive.game.plugin.extension.CommandExtension:

Public Member Functions

abstract boolean canAccess (Player player)
void onInit ()
Public Member Functions inherited from com.runehive.game.plugin.PluginContext
boolean accept (Player player, Event event)
 The method that allows an event listener to accept an event.
Public Member Functions inherited from com.runehive.game.event.listener.EventListener
default void accept (Event event)

Public Attributes

final Multimap< String, Commandmultimap = ArrayListMultimap.create()

Static Public Attributes

static final Logger logger = LogManager.getLogger(CommandExtension.class)
Static Public Attributes inherited from com.runehive.game.plugin.PluginContext
static final Logger logger = LogManager.getLogger(PluginContext.class)

Protected Member Functions

boolean handleCommand (Player player, CommandParser parser)
abstract void register ()
Protected Member Functions inherited from com.runehive.game.plugin.PluginContext
boolean allButOneItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean fifthClickItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean firstClickItem (Player player, ItemClickEvent event)
boolean firstClickItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean firstClickNpc (Player player, NpcClickEvent event)
boolean firstClickObject (Player player, ObjectClickEvent event)
boolean fourthClickItem (Player player, ItemClickEvent event)
boolean fourthClickItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean fourthClickNpc (Player player, NpcClickEvent event)
boolean itemOnItem (Player player, ItemOnItemEvent event)
boolean itemOnNpc (Player player, ItemOnNpcEvent event)
boolean itemOnObject (Player player, ItemOnObjectEvent event)
boolean itemOnPlayer (Player player, ItemOnPlayerEvent event)
boolean modifiableXItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean onClick (final Player player, final int button)
boolean onDropItem (Player player, DropItemEvent event)
boolean onMovement (Player player, MovementEvent event)
boolean onPickupItem (Player player, PickupItemEvent event)
boolean secondClickItem (Player player, ItemClickEvent event)
boolean secondClickItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean secondClickNpc (Player player, NpcClickEvent event)
boolean secondClickObject (Player player, ObjectClickEvent event)
boolean sixthClickItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean thirdClickItem (Player player, ItemClickEvent event)
boolean thirdClickItemContainer (Player player, ItemContainerContextMenuEvent event)
boolean thirdClickNpc (Player player, NpcClickEvent event)
boolean thirdClickObject (Player player, ObjectClickEvent event)

Protected Attributes

final Set< Commandcommands = new HashSet<>()

Static Protected Attributes

static final Set< CommandExtensionextensions = new HashSet<>()

Static Private Member Functions

static boolean canExecute (Player player, CommandParser parser)

Detailed Description

Definition at line 17 of file CommandExtension.java.

Member Function Documentation

◆ canAccess()

abstract boolean com.runehive.game.plugin.extension.CommandExtension.canAccess ( Player player)
abstract

◆ canExecute()

boolean com.runehive.game.plugin.extension.CommandExtension.canExecute ( Player player,
CommandParser parser )
staticprivate

Definition at line 53 of file CommandExtension.java.

53 {
54 return !player.locking.locked(PacketType.COMMANDS) || parser.getCommand().startsWith("key");
55 }

References com.runehive.game.world.entity.mob.data.PacketType.COMMANDS, com.runehive.game.world.entity.mob.player.command.CommandParser.getCommand(), com.runehive.game.world.entity.mob.Locking.locked(), and com.runehive.game.world.entity.mob.Mob.locking.

Referenced by handleCommand().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleCommand()

boolean com.runehive.game.plugin.extension.CommandExtension.handleCommand ( Player player,
CommandParser parser )
protected

Reimplemented from com.runehive.game.plugin.PluginContext.

Definition at line 58 of file CommandExtension.java.

58 {
59 if (!canExecute(player, parser)) {
60 return true;
61 }
62
63 for (CommandExtension extension : extensions) {
64
65 if (!extension.canAccess(player)) {
66 continue;
67 }
68
69 final Collection<Command> collection = extension.multimap.get(parser.getCommand().toLowerCase());
70
71 if (collection == null) {
72 continue;
73 }
74
75 if (collection.isEmpty()) {
76 continue;
77 }
78
79 final Command command = collection.toArray(new Command[0])[0];
80
81 // execute error
82 try {
83 command.execute(player, parser);
84 } catch (Exception ex) {
85 // but dont care about the exception
86 }
87
88 return true;
89
90 }
91 return false;
92 }

References canExecute(), com.runehive.game.world.entity.mob.player.command.Command.execute(), extensions, and com.runehive.game.world.entity.mob.player.command.CommandParser.getCommand().

Here is the call graph for this function:

◆ onInit()

void com.runehive.game.plugin.extension.CommandExtension.onInit ( )

Reimplemented from com.runehive.game.plugin.PluginContext.

Definition at line 26 of file CommandExtension.java.

26 {
27 extensions.add(this);
28 register();
29 multimap.clear();
30 for (Command command : commands) {
31 if (command.getNames().length == 0) {
32 logger.warn(String.format("plugin=%s command missing name.", this.getClass().getSimpleName()));
33 continue;
34 }
35
36 for (String name : command.getNames()) {
37 final String key = name.toLowerCase();
38 if (multimap.containsKey(key)) {
39 logger.warn(String.format("plugin=%s duplicate command=%s", this.getClass().getSimpleName(), key));
40 continue;
41 }
42
43 multimap.put(key, command);
44 }
45 }
46 commands.clear();
47 }

References commands, extensions, logger, multimap, and register().

Here is the call graph for this function:

◆ register()

abstract void com.runehive.game.plugin.extension.CommandExtension.register ( )
abstractprotected

Referenced by onInit().

Here is the caller graph for this function:

Member Data Documentation

◆ commands

final Set<Command> com.runehive.game.plugin.extension.CommandExtension.commands = new HashSet<>()
protected

Definition at line 22 of file CommandExtension.java.

Referenced by onInit().

◆ extensions

final Set<CommandExtension> com.runehive.game.plugin.extension.CommandExtension.extensions = new HashSet<>()
staticprotected

Definition at line 20 of file CommandExtension.java.

Referenced by handleCommand(), and onInit().

◆ logger

final Logger com.runehive.game.plugin.extension.CommandExtension.logger = LogManager.getLogger(CommandExtension.class)
static

Definition at line 19 of file CommandExtension.java.

Referenced by onInit().

◆ multimap

final Multimap<String, Command> com.runehive.game.plugin.extension.CommandExtension.multimap = ArrayListMultimap.create()

Definition at line 23 of file CommandExtension.java.

Referenced by onInit().


The documentation for this class was generated from the following file: