RuneHive-Game
Loading...
Searching...
No Matches
LMSLoadoutManager.java
Go to the documentation of this file.
1
package
com.runehive.content.lms.loadouts;
2
3
import
com.runehive.content.lms.lobby.LMSLobby;
4
import
com.runehive.util.Utility;
5
import
io.github.classgraph.*;
6
import
org.apache.logging.log4j.LogManager;
7
import
org.apache.logging.log4j.Logger;
8
9
import
java.lang.reflect.Constructor;
10
import
java.util.ArrayList;
11
import
java.util.List;
12
13
14
public
class
LMSLoadoutManager
{
15
private
static
final
Logger
logger
= LogManager.getLogger(
LMSLoadoutManager
.class);
16
17
private
static
List<LMSLoadout>
lmsLoadouts
=
new
ArrayList<LMSLoadout>();
18
19
public
static
List<LMSLoadout>
getLmsLoadouts
() {
20
return
lmsLoadouts
;
21
}
22
23
public
static
void
load
() {
24
try
(
final
ScanResult scanResult =
new
ClassGraph().enableClassInfo().enableMethodInfo().scan()) {
25
for
(
final
ClassInfo classInfo : scanResult.getSubclasses(
LMSLoadout
.class)) {
26
try
{
27
if
(!classInfo.isAbstract()) {
28
final
MethodInfoList constructorInfos = classInfo.getDeclaredConstructorInfo();
29
final
MethodInfo constructorInfo = constructorInfos.get(0);
30
final
Constructor<?> constructor = constructorInfo.loadClassAndGetConstructor();
31
32
final
Object instance = constructor.newInstance();
33
final
LMSLoadout
loadout = (
LMSLoadout
) instance;
34
35
loadout.
setup
();
36
lmsLoadouts
.add(loadout);
37
}
38
}
catch
(Exception ex) {
39
logger
.error(String.format(
"Error loading lms loadout=%s"
, classInfo.getSimpleName()), ex);
40
}
41
}
42
}
43
logger
.info(String.format(
"Loaded: %d lms loadouts."
,
lmsLoadouts
.size()));
44
45
LMSLobby.currentGameType
=
LMSLoadoutManager
.
getLmsLoadouts
().get(
Utility
.
random
(
LMSLoadoutManager
.
getLmsLoadouts
().size()));
46
}
47
48
}
com.runehive.content.lms.loadouts.LMSLoadout
Definition
LMSLoadout.java:8
com.runehive.content.lms.loadouts.LMSLoadout.setup
void setup()
Definition
LMSLoadout.java:24
com.runehive.content.lms.loadouts.LMSLoadoutManager
Definition
LMSLoadoutManager.java:14
com.runehive.content.lms.loadouts.LMSLoadoutManager.load
static void load()
Definition
LMSLoadoutManager.java:23
com.runehive.content.lms.loadouts.LMSLoadoutManager.logger
static final Logger logger
Definition
LMSLoadoutManager.java:15
com.runehive.content.lms.loadouts.LMSLoadoutManager.getLmsLoadouts
static List< LMSLoadout > getLmsLoadouts()
Definition
LMSLoadoutManager.java:19
com.runehive.content.lms.loadouts.LMSLoadoutManager.lmsLoadouts
static List< LMSLoadout > lmsLoadouts
Definition
LMSLoadoutManager.java:17
com.runehive.content.lms.lobby.LMSLobby.currentGameType
static LMSLoadout currentGameType
The current game type.
Definition
LMSLobby.java:43
com.runehive.util.Utility
Handles miscellaneous methods.
Definition
Utility.java:27
com.runehive.util.Utility.random
static int random(int bound)
Definition
Utility.java:239