8384c47e53
This commit introduces a Component system focused around Games, which is completely backwards compatible, as well as designed to be flexible enough for later improvements such as dependency injection. Each GameState is associated with a phase of the PhasedLifetime that each Game has. Components can be registered with a specific phased or the entirety of the Lifetime. Refer to the javadocs for Lifetime and PhasedLifetime for more details. Currently the main two Component types are ICommand and ListenerComponent. This commit includes the first refactoring into using this system, which is replacing the Wizards minigame's usage of Miniplugin with a Lifetimed Component, allowing for the shop to be appropriately registered and unregistered. This change allows for Wizards to be run more than once on the same server instance. Previously, attempting to register the Miniplugin twice would result in the minigame failing to start after the initial registration. This commit additionally includes slight refactoring within GameCreationManager as required for the Lifetime system to function correctly. These changes ensure that Games are only disabled once, whereas before they could be repeatedly disabled. The previous implementation of disable(), along with the classes that override it, functioned correctly despite being called several times. Finally, this commit adds in changes to the pom to allow for unit testing.
82 lines
2.7 KiB
XML
82 lines
2.7 KiB
XML
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>com.mineplex</groupId>
|
|
<artifactId>mineplex-parent</artifactId>
|
|
<version>dev-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<artifactId>mineplex-core</artifactId>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>mineplex-cache</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>mineplex-core-common</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>mineplex-database</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>mineplex-serverdata</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-dbcp2</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.mineplex</groupId>
|
|
<artifactId>anticheat</artifactId>
|
|
<version>1.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.tukaani</groupId>
|
|
<artifactId>xz</artifactId>
|
|
<version>1.5</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.warrenstrange</groupId>
|
|
<artifactId>googleauth</artifactId>
|
|
<version>1.1.1</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.zxing</groupId>
|
|
<artifactId>core</artifactId>
|
|
<version>3.3.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<resources>
|
|
<resource>
|
|
<directory/>
|
|
<includes>
|
|
<include>version.properties</include>
|
|
</includes>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
</resources>
|
|
</build>
|
|
</project>
|