mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-11-26 04:35:43 +01:00
0e0c502e1d
* WIP - add GUI for teams. * WIP teams GUI * Moe WIP on team GUI * Modified file to avoid an NPE. * Minor refactor to prevent int to Integer warning. * Use latest dependencies for tests to pass. * Move to singleton pattern for RanksManager, * Team GUI WIP * Added support for kick, setowner, and leave. * Added support for accepting and rejecting an invite. * Fixed bugs with text and operations. * WIP for team invites. * Adds inviting to the GUI. * Fix tests * Fixed minor bugs reported by SonarCloud * Up Minecraft version and paper to 1.20.4 in POM * Added features based on Discord feedback. 1. added some lore to the invite button to explain the players shown are from the game world 2. removed the team state in chat 3. added a search to the invite panel * Added back button. Refactored some code and templates. * Fixed bugs with teams and uncoop untrust etc of Ops. * Return to name search GUI if name not found. * Added return to GUI for player search * Use Path.of
551 lines
22 KiB
XML
551 lines
22 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<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>
|
|
|
|
<groupId>world.bentobox</groupId>
|
|
<artifactId>bentobox</artifactId>
|
|
<version>${revision}</version>
|
|
|
|
<name>BentoBox</name>
|
|
<description>Highly scalable and customizable Minecraft Spigot plugin that enables you to run island-type gamemodes.</description>
|
|
<url>https://github.com/BentoBoxWorld/BentoBox</url>
|
|
<inceptionYear>2017</inceptionYear>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>Poslovitch</id>
|
|
<email>poslovitch@bentobox.world</email>
|
|
<timezone>1</timezone>
|
|
<roles>
|
|
<role>Project Manager</role>
|
|
<role>Developer</role>
|
|
</roles>
|
|
</developer>
|
|
<developer>
|
|
<id>tastybento</id>
|
|
<email>tastybento@bentobox.world</email>
|
|
<timezone>-8</timezone>
|
|
<roles>
|
|
<role>Developer</role>
|
|
</roles>
|
|
</developer>
|
|
</developers>
|
|
|
|
<scm>
|
|
<connection>scm:git:https://github.com/BentoBoxWorld/BentoBox.git</connection>
|
|
<developerConnection>scm:git:git@github.com:BentoBoxWorld/BentoBox.git</developerConnection>
|
|
<url>https://github.com/BentoBoxWorld/BentoBox</url>
|
|
</scm>
|
|
|
|
<ciManagement>
|
|
<system>jenkins</system>
|
|
<url>https://ci.codemc.org/job/BentoBoxWorld/job/BentoBox</url>
|
|
</ciManagement>
|
|
|
|
<issueManagement>
|
|
<system>GitHub</system>
|
|
<url>https://github.com/BentoBoxWorld/BentoBox/issues</url>
|
|
</issueManagement>
|
|
|
|
<distributionManagement>
|
|
<snapshotRepository>
|
|
<id>codemc-snapshots</id>
|
|
<url>https://repo.codemc.org/repository/maven-snapshots</url>
|
|
</snapshotRepository>
|
|
<repository>
|
|
<id>codemc-releases</id>
|
|
<url>https://repo.codemc.org/repository/maven-releases</url>
|
|
</repository>
|
|
</distributionManagement>
|
|
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
<java.version>17</java.version>
|
|
<!-- Non-minecraft related dependencies -->
|
|
<powermock.version>2.0.9</powermock.version>
|
|
<!-- Database related dependencies -->
|
|
<mongodb.version>3.12.12</mongodb.version>
|
|
<mariadb.version>3.0.5</mariadb.version>
|
|
<mysql.version>8.0.27</mysql.version>
|
|
<postgresql.version>42.2.18</postgresql.version>
|
|
<hikaricp.version>5.0.1</hikaricp.version>
|
|
<!-- More visible way to change dependency versions -->
|
|
<spigot.version>1.20.4-R0.1-SNAPSHOT</spigot.version>
|
|
<!-- Might differ from the last Spigot release for short periods
|
|
of time -->
|
|
<paper.version>1.20.4-R0.1-SNAPSHOT</paper.version>
|
|
<bstats.version>3.0.0</bstats.version>
|
|
<vault.version>1.7.1</vault.version>
|
|
<placeholderapi.version>2.10.9</placeholderapi.version>
|
|
<githubapi.version>d5f5e0bbd8</githubapi.version>
|
|
<dynmap.version>3.0-SNAPSHOT</dynmap.version>
|
|
<myworlds.version>1.19.3-v1</myworlds.version>
|
|
<!-- Revision variable removes warning about dynamic version -->
|
|
<revision>${build.version}-SNAPSHOT</revision>
|
|
<!-- Do not change unless you want different name for local builds. -->
|
|
<build.number>-LOCAL</build.number>
|
|
<!-- This allows to change between versions. -->
|
|
<build.version>2.0.0</build.version>
|
|
<sonar.organization>bentobox-world</sonar.organization>
|
|
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
|
|
<server.jars>${project.basedir}/lib</server.jars>
|
|
</properties>
|
|
|
|
<!-- Profiles will allow to automatically change build version. -->
|
|
<profiles>
|
|
<profile>
|
|
<!-- ci profile is activated if exist environment variable BUILD_NUMBER. -->
|
|
<!-- It replaces ${build.number} that is currently '-LOCAL' with
|
|
correct build number from JENKINS machine. -->
|
|
<id>ci</id>
|
|
<activation>
|
|
<property>
|
|
<name>env.BUILD_NUMBER</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<!-- Override only if necessary -->
|
|
<build.number>-b${env.BUILD_NUMBER}</build.number>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<!-- Master profile is activated if exist environment variable
|
|
GIT_BRANCH and its value is origin/master. -->
|
|
<!-- It will replace 'revision' with '${build.version}' so it
|
|
removes '-SNAPSHOT' string at the end. -->
|
|
<!-- Also, as this is release build, build number can be set
|
|
to empty string. -->
|
|
<!-- This profile will be used only if exist environment variable
|
|
GIT_BRANCH with value origin/master. -->
|
|
<id>master</id>
|
|
<activation>
|
|
<property>
|
|
<name>env.GIT_BRANCH</name>
|
|
<value>origin/master</value>
|
|
</property>
|
|
</activation>
|
|
<!--suppress CheckTagEmptyBody -->
|
|
<properties>
|
|
<!-- Override only if necessary -->
|
|
<revision>${build.version}</revision>
|
|
<!-- Empties build number variable. -->
|
|
<build.number></build.number>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<pluginRepositories>
|
|
<pluginRepository>
|
|
<id>apache.snapshots</id>
|
|
<url>https://repository.apache.org/snapshots/</url>
|
|
</pluginRepository>
|
|
</pluginRepositories>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>spigot-repo</id>
|
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
|
|
</repository>
|
|
<repository>
|
|
<id>codemc-repo</id>
|
|
<url>https://repo.codemc.org/repository/maven-public</url>
|
|
</repository>
|
|
<repository>
|
|
<id>jitpack.io</id>
|
|
<url>https://jitpack.io</url>
|
|
</repository>
|
|
<repository>
|
|
<id>placeholderapi-repo</id>
|
|
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
|
</repository>
|
|
<repository>
|
|
<id>dynmap-repo</id>
|
|
<url>https://repo.mikeprimm.com/</url>
|
|
</repository>
|
|
<repository>
|
|
<id>papermc</id>
|
|
<url>https://repo.papermc.io/repository/maven-public/</url>
|
|
</repository>
|
|
<repository>
|
|
<!-- This is a temporary reference as the Maven Shade plugin
|
|
that supports Java 16 is not released yet -->
|
|
<id>maven-snapshots</id>
|
|
<url>https://repository.apache.org/content/repositories/snapshots/</url>
|
|
</repository>
|
|
<repository>
|
|
<id>minecraft-repo</id>
|
|
<url>https://libraries.minecraft.net/</url>
|
|
</repository>
|
|
<!-- Spigot NMS required for world regeneration :( -->
|
|
<repository>
|
|
<id>nms-repo</id>
|
|
<url>https://repo.codemc.io/repository/nms/</url>
|
|
</repository>
|
|
<!-- Used for MyWorlds hook -->
|
|
<repository>
|
|
<id>MG-Dev Jenkins CI Maven Repository</id>
|
|
<url>https://ci.mg-dev.eu/plugin/repository/everything</url>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<dependencies>
|
|
<!-- Mockito (Unit testing) This goes at the top to ensure the dependencies are accurate. -->
|
|
<!-- This is required for PowerMockito to work and must be placed before it -->
|
|
<dependency>
|
|
<groupId>org.javassist</groupId>
|
|
<artifactId>javassist</artifactId>
|
|
<version>3.30.2-GA</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.powermock</groupId>
|
|
<artifactId>powermock-module-junit4</artifactId>
|
|
<version>${powermock.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.powermock</groupId>
|
|
<artifactId>powermock-api-mockito2</artifactId>
|
|
<version>${powermock.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-core</artifactId>
|
|
<version>3.11.1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- Spigot API -->
|
|
<dependency>
|
|
<groupId>org.spigotmc</groupId>
|
|
<artifactId>spigot-api</artifactId>
|
|
<version>${spigot.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Paper API -->
|
|
<dependency>
|
|
<groupId>io.papermc.paper</groupId>
|
|
<artifactId>paper-api</artifactId>
|
|
<version>${paper.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Metrics -->
|
|
<dependency>
|
|
<groupId>org.bstats</groupId>
|
|
<artifactId>bstats-bukkit</artifactId>
|
|
<version>${bstats.version}</version>
|
|
</dependency>
|
|
<!-- Database -->
|
|
<dependency>
|
|
<groupId>org.mongodb</groupId>
|
|
<artifactId>mongodb-driver</artifactId>
|
|
<version>${mongodb.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- HikariCP database handler -->
|
|
<dependency>
|
|
<groupId>com.zaxxer</groupId>
|
|
<artifactId>HikariCP</artifactId>
|
|
<version>${hikaricp.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Vault: as their maven repo is down, we need to get it from jitpack -->
|
|
<!-- See https://github.com/MilkBowl/VaultAPI/issues/69 -->
|
|
<dependency>
|
|
<groupId>com.github.MilkBowl</groupId>
|
|
<artifactId>VaultAPI</artifactId>
|
|
<version>${vault.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Placeholders -->
|
|
<dependency>
|
|
<groupId>me.clip</groupId>
|
|
<artifactId>placeholderapi</artifactId>
|
|
<version>${placeholderapi.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Hooks -->
|
|
<dependency>
|
|
<groupId>us.dynmap</groupId>
|
|
<artifactId>dynmap-api</artifactId>
|
|
<version>${dynmap.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.bergerkiller.bukkit</groupId>
|
|
<artifactId>MyWorlds</artifactId>
|
|
<version>${myworlds.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Shaded APIs -->
|
|
<dependency>
|
|
<groupId>com.github.TheBusyBiscuit</groupId>
|
|
<artifactId>GitHubWebAPI4Java</artifactId>
|
|
<version>${githubapi.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.Marcono1234</groupId>
|
|
<artifactId>gson-record-type-adapter-factory</artifactId>
|
|
<version>0.3.0</version>
|
|
</dependency>
|
|
<!-- Static analysis -->
|
|
<!-- We are using Eclipse's annotations. If you're using IDEA, update
|
|
your project settings to take these into account for in real time static
|
|
analysis -->
|
|
<dependency>
|
|
<groupId>org.eclipse.jdt</groupId>
|
|
<artifactId>org.eclipse.jdt.annotation</artifactId>
|
|
<version>2.2.600</version>
|
|
</dependency>
|
|
<!-- PaperLib -->
|
|
<dependency>
|
|
<groupId>io.papermc</groupId>
|
|
<artifactId>paperlib</artifactId>
|
|
<version>1.0.6</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
<!-- LangUtils -->
|
|
<dependency>
|
|
<groupId>com.github.apachezy</groupId>
|
|
<artifactId>LangUtils</artifactId>
|
|
<version>3.2.2</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Spigot NMS. Used for chunk deletion and pasting.-->
|
|
<dependency>
|
|
<groupId>org.spigotmc</groupId>
|
|
<artifactId>spigot</artifactId>
|
|
<version>${spigot.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Slimefun -->
|
|
<dependency>
|
|
<groupId>com.github.Slimefun</groupId>
|
|
<artifactId>Slimefun4</artifactId>
|
|
<version>RC-36</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- ItemsAdder -->
|
|
<dependency>
|
|
<groupId>com.github.LoneDev6</groupId>
|
|
<artifactId>api-itemsadder</artifactId>
|
|
<version>3.6.1</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<!-- By default ${revision} is ${build.version}-SNAPSHOT -->
|
|
<!-- If GIT_BRANCH variable is set to origin/master, then it will
|
|
be only ${build.version}. -->
|
|
|
|
<!-- By default ${build.number} is -LOCAL. -->
|
|
<!-- If the BUILD_NUMBER variable is set, then it will be -b[number]. -->
|
|
<!-- If GIT_BRANCH variable is set to origin/master, then it will
|
|
be the empty string. -->
|
|
<finalName>${project.name}-${revision}${build.number}</finalName>
|
|
|
|
<defaultGoal>clean package</defaultGoal>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
<resource>
|
|
<directory>src/main/resources/locales</directory>
|
|
<targetPath>./locales</targetPath>
|
|
<filtering>false</filtering>
|
|
</resource>
|
|
</resources>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.8.1</version>
|
|
<configuration>
|
|
<release>${java.version}</release>
|
|
<!-- <source>${java.version}</source> <target>${java.version}</target> -->
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.0.0-M5</version>
|
|
<!--suppress MavenModelInspection -->
|
|
<configuration>
|
|
<argLine>
|
|
${argLine}
|
|
--add-opens java.base/java.lang=ALL-UNNAMED
|
|
--add-opens java.base/java.math=ALL-UNNAMED
|
|
--add-opens java.base/java.io=ALL-UNNAMED
|
|
--add-opens java.base/java.util=ALL-UNNAMED
|
|
--add-opens java.base/java.util.stream=ALL-UNNAMED
|
|
--add-opens java.base/java.text=ALL-UNNAMED
|
|
--add-opens java.base/java.util.regex=ALL-UNNAMED
|
|
--add-opens java.base/java.nio.channels.spi=ALL-UNNAMED
|
|
--add-opens java.base/sun.nio.ch=ALL-UNNAMED
|
|
--add-opens java.base/java.net=ALL-UNNAMED
|
|
--add-opens java.base/java.util.concurrent=ALL-UNNAMED
|
|
--add-opens java.base/sun.nio.fs=ALL-UNNAMED
|
|
--add-opens java.base/sun.nio.cs=ALL-UNNAMED
|
|
--add-opens java.base/java.nio.file=ALL-UNNAMED
|
|
--add-opens java.base/java.nio.charset=ALL-UNNAMED
|
|
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
|
|
--add-opens java.logging/java.util.logging=ALL-UNNAMED
|
|
--add-opens java.base/java.lang.ref=ALL-UNNAMED
|
|
--add-opens java.base/java.util.jar=ALL-UNNAMED
|
|
--add-opens java.base/java.util.zip=ALL-UNNAMED
|
|
--add-opens=java.base/java.security=ALL-UNNAMED
|
|
</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>3.4.1</version>
|
|
<configuration>
|
|
<source>${java.version}</source>
|
|
<show>private</show>
|
|
<quiet>true</quiet>
|
|
<failOnError>false</failOnError>
|
|
<additionalJOption>-Xdoclint:none</additionalJOption>
|
|
<!-- To compile with Java 11, this tag may be required -->
|
|
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>3.0.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<phase>install</phase>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>3.3.1-SNAPSHOT</version>
|
|
<configuration>
|
|
<minimizeJar>true</minimizeJar>
|
|
<relocations>
|
|
<relocation>
|
|
<pattern>org.bstats</pattern>
|
|
<shadedPattern>world.bentobox.bentobox.util.metrics</shadedPattern>
|
|
</relocation>
|
|
<relocation>
|
|
<pattern>io.github.TheBusyBiscuit.GitHubWebAPI4Java</pattern>
|
|
<shadedPattern>world.bentobox.bentobox.api.github</shadedPattern>
|
|
</relocation>
|
|
<relocation>
|
|
<pattern>io.papermc.lib</pattern>
|
|
<shadedPattern>world.bentobox.bentobox.paperlib</shadedPattern> <!-- Replace this -->
|
|
</relocation>
|
|
</relocations>
|
|
<artifactSet>
|
|
<excludes>
|
|
<exclude>org.apache.maven.shared:*</exclude>
|
|
<exclude>org.apache.maven:*</exclude>
|
|
<exclude>com.google.code.gson:*</exclude>
|
|
<exclude>org.mongodb:*</exclude>
|
|
<exclude>org.eclipse.jdt:*</exclude>
|
|
</excludes>
|
|
</artifactSet>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-install-plugin</artifactId>
|
|
<version>2.5.2</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>2.8.2</version>
|
|
<executions>
|
|
<execution>
|
|
<id>default-deploy</id>
|
|
<phase>deploy</phase>
|
|
<goals>
|
|
<goal>deploy</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>0.8.10</version>
|
|
<configuration>
|
|
<append>true</append>
|
|
<excludes>
|
|
<!-- This is required to prevent Jacoco from adding
|
|
synthetic fields to a JavaBean class (causes errors in testing) -->
|
|
<exclude>**/*Names*</exclude>
|
|
<!-- Prevents the Material is too large to mock error -->
|
|
<exclude>org/bukkit/Material*</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>prepare-agent</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>report</id>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
<configuration>
|
|
<formats>
|
|
<format>XML</format>
|
|
</formats>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|