diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..ea6691a3b
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,4 @@
+* text=auto
+/gradlew text eol=lf
+*.bat text eol=crlf
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 0fc71210d..e731668e0 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,6 +1,10 @@
version: 2
updates:
- - package-ecosystem: "maven"
+ - package-ecosystem: "gradle"
directory: "/"
schedule:
- interval: daily
\ No newline at end of file
+ interval: daily
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
\ No newline at end of file
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3f206dbe1..a1a7c8256 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,117 +12,90 @@ jobs:
setup:
runs-on: ubuntu-latest
- name: Maven Setup
+ name: Gradle Setup
steps:
- uses: actions/checkout@v3
+ - uses: gradle/wrapper-validation-action@v1
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- cache: 'maven'
+ cache: 'gradle'
+ - name: Change Permissions
+ run: chmod +x ./gradlew
- name: Setup Project
- run: mvn clean install dependency:tree -DskipTests
+ run: ./gradlew project tasks :mobchip-bukkit:dependencies
- build-16:
- needs: setup
+ build:
runs-on: ubuntu-latest
- name: Build Java 16
- steps:
- - uses: actions/checkout@v3
-
- - name: Set up JDK ${{ matrix.java-version }}
- uses: actions/setup-java@v3
- with:
- distribution: 'temurin'
- java-version: '16'
- cache: 'maven'
- - name: Build Project
- run: mvn clean package -DskipTests -Dmaven.javadoc.skip=true -pl "base,abstraction,nms/1_13_R1,nms/1_13_R2,nms/1_14_R1,nms/1_15_R1,nms/1_16_R1,nms/1_16_R2,nms/1_16_R3,nms/1_17_R1,bukkit"
-
- build-8_11:
needs: setup
- strategy:
- matrix:
- java-version: [8, 11]
-
- runs-on: ubuntu-latest
- name: Build Java ${{ matrix.java-version }}
- steps:
- - uses: actions/checkout@v3
-
- - name: Set up JDK ${{ matrix.java-version }}
- uses: actions/setup-java@v3
- with:
- distribution: 'temurin'
- java-version: ${{ matrix.java-version }}
- cache: 'maven'
- - name: Build Project
- run: mvn clean package -DskipTests -Dmaven.javadoc.skip=true -pl "base,abstraction,nms/1_13_R1,nms/1_13_R2,nms/1_14_R1,nms/1_15_R1,nms/1_16_R1,nms/1_16_R2,nms/1_16_R3,bukkit"
-
+ timeout-minutes: 10
- build:
- needs: setup
strategy:
matrix:
- java-version: [17, 18]
+ java-version: [17, 18, 19]
- runs-on: ubuntu-latest
name: Build Java ${{ matrix.java-version }}
steps:
- uses: actions/checkout@v3
-
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v3
with:
- distribution: 'temurin'
- java-version: ${{ matrix.java-version }}
- cache: 'maven'
- - name: Build Project
- run: mvn clean package -Dmaven.javadoc.skip=true
+ distribution: ${{ matrix.java-vendor }}
+ java-version: 'temurin'
+ cache: 'gradle'
+ - name: Change Permissions
+ run: chmod +x ./gradlew
+ - name: Build with Gradle
+ run: ./gradlew clean assemble publishToMavenLocal
test:
runs-on: ubuntu-latest
+ timeout-minutes: 10
needs: setup
+
name: Test Project
steps:
- uses: actions/checkout@v3
- - name: Set up JDK 17
+ - name: Setup JDK 17
uses: actions/setup-java@v3
with:
- distribution: 'temurin'
java-version: '17'
- cache: 'maven'
- - name: Test Project
- run: mvn test
+ distribution: 'temurin'
+ cache: 'gradle'
+ - name: Change Permissions
+ run: chmod +x ./gradlew
+ - name: Gradle Test
+ run: ./gradlew test
deploy:
runs-on: ubuntu-latest
- needs: setup
+ needs: build
name: Deploy JavaDocs
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }}
steps:
- uses: actions/checkout@v3
-
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- cache: 'maven'
-
- - name: Build Project
- run: mvn install -DskipTests
-
+ cache: 'gradle'
+ - name: Change Permissions
+ run: chmod +x ./gradlew
- name: Build JavaDocs
+ run: ./gradlew clean allJavadoc
+ - name: Deploy JavaDoc
run: bash javadoc.sh ${GITHUB_SHA::7}
analyze:
runs-on: ubuntu-latest
- needs: setup
+ needs: build
if: github.event_name != 'pull_request'
- name: Analyze Project
+ timeout-minutes: 10
+ name: Analyze Project
steps:
- uses: actions/checkout@v3
with:
@@ -132,18 +105,17 @@ jobs:
with:
distribution: 'temurin'
java-version: '17'
- cache: 'maven'
-
+ cache: 'gradle'
- name: Cache SonarCloud packages
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
-
+ - name: Change Permissions
+ run: chmod +x ./gradlew
- name: Build and Analyze
-
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=GamerCoder215_MobChip
\ No newline at end of file
+ run: ./gradlew clean assemble sonar --info
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 5eaeb8da7..f7751e876 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,11 @@
.gitpod.yml
*.iml
-
.vscode/
*.class
.apt_generated_tests/
build.sh
.idea/
-
-**/target/
-target/
-
logs/*.log
**/logs/*.log
+.gradle/
+build/
diff --git a/abstraction/build.gradle.kts b/abstraction/build.gradle.kts
new file mode 100644
index 000000000..4741fc23b
--- /dev/null
+++ b/abstraction/build.gradle.kts
@@ -0,0 +1,4 @@
+dependencies {
+ api(project(":mobchip-base"))
+ compileOnly("org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/abstraction/pom.xml b/abstraction/pom.xml
deleted file mode 100644
index b432e13ce..000000000
--- a/abstraction/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
-
-
- mobchip-abstraction
- MobChip-Abstraction
-
-
- src/main/java
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.5.0
-
- false
-
-
-
-
-
-
-
- org.spigotmc
- spigot-api
- ${minecraft.version}
- provided
-
-
- ${project.groupId}
- mobchip-base
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/base/build.gradle.kts b/base/build.gradle.kts
new file mode 100644
index 000000000..84ddca4b8
--- /dev/null
+++ b/base/build.gradle.kts
@@ -0,0 +1,27 @@
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+
+dependencies {
+ compileOnly("org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT")
+}
+
+java {
+ withSourcesJar()
+ withJavadocJar()
+}
+
+tasks {
+ javadoc {
+ enabled = true
+
+ options {
+ require(this is StandardJavadocDocletOptions)
+
+ links("https://hub.spigotmc.org/javadocs/spigot/")
+ links("https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/")
+ }
+ }
+
+ withType {
+ dependsOn("sourcesJar", "javadocJar")
+ }
+}
\ No newline at end of file
diff --git a/base/pom.xml b/base/pom.xml
deleted file mode 100644
index 7e757ee0f..000000000
--- a/base/pom.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
-
-
- mobchip-base
- MobChip
-
-
-
- sonatype
- https://oss.sonatype.org/content/repositories/releases/
-
-
-
-
- src/main/java/
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.5.0
-
-
- https://hub.spigotmc.org/javadocs/spigot/
- https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/
-
-
-
-
- javadoc-jar
- package
-
- jar
-
-
- false
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.2.1
-
- true
-
-
-
- attach-sources
-
- jar
-
-
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-install-plugin
- 3.1.1
-
-
- install
- default-install
-
- install
-
-
- true
-
-
-
- install
- install
-
- install-file
-
-
- ${project.basedir}/pom.xml
- ${project.build.directory}/${project.build.finalName}.jar
- ${project.groupId}
- ${project.artifactId}
- ${project.version}
- ${project.packaging}
- ${project.build.directory}/${project.build.finalName}-javadoc.jar
- ${project.build.directory}/${project.build.finalName}-sources.jar
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot-api
- ${minecraft.version}
- provided
-
-
-
-
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 000000000..d73f8f2b2
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,238 @@
+@file:Suppress("UnstableApiUsage")
+
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+
+plugins {
+ id("org.sonarqube") version "4.0.0.2929"
+ id("com.github.johnrengelman.shadow") version "8.1.1" apply false
+
+ java
+ `maven-publish`
+ `java-library`
+ jacoco
+}
+
+val pGroup = "me.gamercoder215"
+val pVersion = "1.9.0-SNAPSHOT"
+val pAuthor = "GamerCoder215"
+
+val github = "$pAuthor/MobChip"
+
+sonarqube {
+ properties {
+ property("sonar.projectKey", "${pAuthor}_MobChip")
+ property("sonar.organization", "gamercoder215")
+ property("sonar.host.url", "https://sonarcloud.io")
+ }
+}
+
+val jdProjects = listOf(
+ ":mobchip-bukkit",
+ ":mobchip-base",
+ ":mobchip-1_14_R1"
+)
+
+tasks {
+ register("allJavadoc", Javadoc::class.java) {
+ jdProjects.forEach { dependsOn(project(it).tasks["javadoc"]) }
+
+ enabled = true
+ title = "MobChip $version API"
+
+ source = files(jdProjects.map { project(it).sourceSets["main"].allJava }).asFileTree
+ classpath = files(jdProjects.map { project(it).sourceSets["main"].compileClasspath })
+
+ options {
+ require(this is StandardJavadocDocletOptions)
+
+ overview = "bukkit/src/main/javadoc/overview.html"
+
+ links("https://hub.spigotmc.org/javadocs/spigot/")
+ links("https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/")
+ }
+ }
+}
+
+allprojects {
+ group = pGroup
+ version = pVersion
+ description = "PathfinderGoal and Behavior NMS Wrapper"
+
+ apply(plugin = "maven-publish")
+ apply()
+ apply()
+
+ repositories {
+ mavenCentral()
+ mavenLocal()
+
+ maven("https://jitpack.io")
+ maven("https://plugins.gradle.org/m2/")
+ maven("https://oss.sonatype.org/content/repositories/snapshots")
+ maven("https://oss.sonatype.org/content/repositories/central")
+
+ maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
+ maven("https://repo.codemc.org/repository/nms/")
+ maven("https://repo.papermc.io/repository/maven-public/")
+ }
+
+ publishing {
+ publications {
+ create("maven") {
+ groupId = pGroup
+ artifactId = project.name
+ version = pVersion
+
+ pom {
+ description.set(project.description)
+ url.set("https://github.com/$github")
+
+ licenses {
+ license {
+ name.set("GPL-3.0")
+ url.set("https://github.com/$github/blob/master/LICENSE")
+ distribution.set("repo")
+ }
+ }
+
+ developers {
+ developer {
+ id.set(pAuthor)
+ roles.add("Owner")
+ email.set("gamer@gamercoder.me")
+ organization.set("Team Inceptus")
+ organizationUrl.set("https://teaminceptus.us")
+ }
+ }
+
+ scm {
+ connection.set("scm:git:git://$github.git")
+ developerConnection.set("scm:git:ssh://$github.git")
+ url.set("https://github.com/$github")
+ }
+
+ inceptionYear.set("2022")
+
+ ciManagement {
+ system.set("Github Actions")
+ url.set("https://github.com/$github/actions")
+ }
+
+ issueManagement {
+ system.set("Github")
+ url.set("https://github.com/$github/issues/")
+ }
+ }
+
+ from(components["java"])
+ }
+ }
+
+ repositories {
+ maven {
+ credentials {
+ username = System.getenv("JENKINS_USERNAME")
+ password = System.getenv("JENKINS_PASSWORD")
+ }
+
+ val releases = "https://repo.codemc.io/repository/maven-releases/"
+ val snapshots = "https://repo.codemc.io/repository/maven-snapshots/"
+ url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshots else releases)
+ }
+ }
+ }
+}
+
+publishing {
+ publications {
+ getByName("maven") {
+ pom {
+ packaging = "pom"
+ }
+ }
+ }
+}
+
+val jvmVersion = JavaVersion.VERSION_1_8
+
+subprojects {
+ apply()
+ apply(plugin = "org.sonarqube")
+ apply(plugin = "com.github.johnrengelman.shadow")
+
+ dependencies {
+ testImplementation("org.mockito:mockito-core:5.3.1")
+ testImplementation("org.junit.jupiter:junit-jupiter:5.9.3")
+
+ testImplementation("org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT")
+ testImplementation("net.md-5:bungeecord-chat:1.16-R0.4")
+
+ compileOnly("org.jetbrains:annotations:24.0.1")
+ }
+
+ java {
+ sourceCompatibility = jvmVersion
+ targetCompatibility = jvmVersion
+ }
+
+ publishing {
+ publications {
+ getByName("maven") {
+ artifact(tasks["shadowJar"])
+ }
+ }
+ }
+
+ tasks {
+ compileJava {
+ options.encoding = "UTF-8"
+ options.isDeprecation = false
+ options.isWarnings = false
+ options.compilerArgs.addAll(listOf("-Xlint:all", "-Xlint:-processing"))
+ }
+
+ jacocoTestReport {
+ dependsOn(test)
+
+ reports {
+ xml.required.set(false)
+ csv.required.set(false)
+
+ html.required.set(true)
+ html.outputLocation.set(layout.buildDirectory.dir("jacocoHtml"))
+ }
+ }
+
+ test {
+ useJUnitPlatform()
+ testLogging {
+ events("passed", "skipped", "failed")
+ }
+ finalizedBy(jacocoTestReport)
+ }
+
+ javadoc {
+ enabled = false
+ options.encoding = "UTF-8"
+ options.memberLevel = JavadocMemberLevel.PROTECTED
+ }
+
+ jar.configure {
+ enabled = false
+ dependsOn("shadowJar")
+ }
+
+ withType {
+ manifest {
+ attributes(
+ "Implementation-Title" to project.name,
+ "Implementation-Version" to project.version,
+ "Implementation-Vendor" to pAuthor
+ )
+ }
+ exclude("META-INF", "META-INF/**")
+
+ archiveClassifier.set("")
+ }
+ }
+}
\ No newline at end of file
diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts
new file mode 100644
index 000000000..de57effdc
--- /dev/null
+++ b/bukkit/build.gradle.kts
@@ -0,0 +1,50 @@
+dependencies {
+ compileOnly("org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT") {
+ version {
+ strictly("1.13-R0.1-SNAPSHOT")
+ }
+ }
+
+ // API
+
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+
+ listOf(
+ "1_13_R1",
+ "1_13_R2",
+ "1_14_R1",
+ "1_15_R1",
+ "1_16_R1",
+ "1_16_R2",
+ "1_16_R3",
+ "1_17_R1",
+ "1_18_R1",
+ "1_18_R2",
+ "1_19_R1",
+ "1_19_R2",
+ "1_19_R3"
+ ).forEach {
+ api(project(":mobchip-$it"))
+ }
+}
+
+java {
+ withSourcesJar()
+ withJavadocJar()
+}
+
+sourceSets["main"].allJava.srcDir("src/main/javadoc")
+
+tasks {
+ javadoc {
+ enabled = true
+
+ options {
+ require(this is StandardJavadocDocletOptions)
+
+ links("https://hub.spigotmc.org/javadocs/spigot/")
+ links("https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/")
+ }
+ }
+}
\ No newline at end of file
diff --git a/bukkit/pom.xml b/bukkit/pom.xml
deleted file mode 100644
index 084e5b7f1..000000000
--- a/bukkit/pom.xml
+++ /dev/null
@@ -1,199 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
-
- mobchip-bukkit
- MobChip-Bukkit
-
-
- src/main/java
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.2.1
-
- true
-
-
-
- attach-sources
-
- jar
-
-
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-install-plugin
- 3.1.1
-
-
- install
- default-install
-
- install
-
-
- true
-
-
-
- install
- install
-
- install-file
-
-
- ${project.basedir}/pom.xml
- ${project.build.directory}/${project.build.finalName}.jar
- ${project.groupId}
- ${project.artifactId}
- ${project.version}
- ${project.packaging}
- ${project.build.directory}/${project.build.finalName}-javadoc.jar
- ${project.build.directory}/${project.build.finalName}-sources.jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.5.0
-
-
- https://hub.spigotmc.org/javadocs/spigot/
- https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/
-
-
-
-
- javadoc-jar
- package
-
- jar
-
-
- true
-
-
- net.minecraft.*
- org.*
- me.gamercoder215.mobchip.abstraction.*
- me.gamercoder215.mobchip.abstraction.*.*
-
-
-
- **/me/gamercoder215/mobchip/abstraction/**/*.java
-
-
-
-
-
-
-
-
-
-
- ${project.groupId}
- mobchip-base
- ${project.parent.version}
- compile
-
-
- org.spigotmc
- spigot-api
- 1.19-R0.1-SNAPSHOT
- provided
-
-
-
- ${project.groupId}
- mobchip-1_13_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_13_R2
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_15_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_16_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_16_R2
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_16_R3
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_17_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_18_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_18_R2
- ${project.version}
- compile
-
-
-
- ${project.groupId}
- mobchip-1_19_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_19_R2
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_19_R3
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 000000000..6fd187404
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,4 @@
+kotlin.code.style=official
+org.gradle.daemon=true
+org.gradle.jvmargs=-Xmx2G -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+compileJava.options.encoding=UTF-8
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..ccebba771
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..37aef8d3f
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
+networkTimeout=10000
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100644
index 000000000..79a61d421
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,244 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 000000000..93e3f59f1
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,92 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/javadoc.sh b/javadoc.sh
index 34ba4de21..0232bd578 100644
--- a/javadoc.sh
+++ b/javadoc.sh
@@ -12,7 +12,7 @@ mkdir ./docs
echo "[MobChip JavaDoc Builder] Injecting..."
-cp -R bukkit/target/apidocs/* docs/
+cp -R build/docs/javadoc/* docs/
git checkout gh-pages
diff --git a/nms/1_13_R1/build.gradle.kts b/nms/1_13_R1/build.gradle.kts
new file mode 100644
index 000000000..047165a53
--- /dev/null
+++ b/nms/1_13_R1/build.gradle.kts
@@ -0,0 +1,9 @@
+val mcVersion = "1.13"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/nms/1_13_R1/pom.xml b/nms/1_13_R1/pom.xml
deleted file mode 100644
index 195677ebb..000000000
--- a/nms/1_13_R1/pom.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_13_R1
- MobChip-1.13
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- 1.13-R0.1-SNAPSHOT
- provided
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_13_R2/build.gradle.kts b/nms/1_13_R2/build.gradle.kts
new file mode 100644
index 000000000..d8950f1cc
--- /dev/null
+++ b/nms/1_13_R2/build.gradle.kts
@@ -0,0 +1,9 @@
+val mcVersion = "1.13.2"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/nms/1_13_R2/pom.xml b/nms/1_13_R2/pom.xml
deleted file mode 100644
index 53e05d5d7..000000000
--- a/nms/1_13_R2/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_13_R2
- MobChip-1.13.2
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- 1.13.2-R0.1-SNAPSHOT
- provided
-
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_14_R1/build.gradle.kts b/nms/1_14_R1/build.gradle.kts
new file mode 100644
index 000000000..533f65b56
--- /dev/null
+++ b/nms/1_14_R1/build.gradle.kts
@@ -0,0 +1,24 @@
+val mcVersion = "1.14.4"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
+
+tasks {
+ javadoc {
+ enabled = true
+
+ source.removeAll { it.path.contains("abstraction") }
+
+ options {
+ require(this is StandardJavadocDocletOptions)
+
+ links("https://hub.spigotmc.org/javadocs/spigot/")
+ links("https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/")
+ }
+ }
+}
\ No newline at end of file
diff --git a/nms/1_14_R1/pom.xml b/nms/1_14_R1/pom.xml
deleted file mode 100644
index 7d1ffd676..000000000
--- a/nms/1_14_R1/pom.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_14_R1
- MobChip-1.14.4
-
-
- src/main/java
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.5.0
-
-
- https://hub.spigotmc.org/javadocs/spigot/
- https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/
-
-
- me.gamercoder215.mobchip.abstraction.v1_14_R1.ChipUtil1_14_R1
-
-
-
-
- javadoc-jar
- package
-
- jar
-
-
-
- me.gamercoder215.mobchip.abstraction.v1_14_R1.ChipUtil1_14_R1
-
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot
- 1.14.4-R0.1-SNAPSHOT
- provided
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_15_R1/build.gradle.kts b/nms/1_15_R1/build.gradle.kts
new file mode 100644
index 000000000..6ca135b48
--- /dev/null
+++ b/nms/1_15_R1/build.gradle.kts
@@ -0,0 +1,10 @@
+val mcVersion = "1.15.2"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/nms/1_15_R1/pom.xml b/nms/1_15_R1/pom.xml
deleted file mode 100644
index 873641d5b..000000000
--- a/nms/1_15_R1/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_15_R1
- MobChip-1.15
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- 1.15-R0.1-SNAPSHOT
- provided
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_16_R1/build.gradle.kts b/nms/1_16_R1/build.gradle.kts
new file mode 100644
index 000000000..cde9f064b
--- /dev/null
+++ b/nms/1_16_R1/build.gradle.kts
@@ -0,0 +1,10 @@
+val mcVersion = "1.16.1"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/nms/1_16_R1/pom.xml b/nms/1_16_R1/pom.xml
deleted file mode 100644
index 41b783aae..000000000
--- a/nms/1_16_R1/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_16_R1
- MobChip-1.16
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- 1.16.1-R0.1-SNAPSHOT
- provided
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_16_R2/build.gradle.kts b/nms/1_16_R2/build.gradle.kts
new file mode 100644
index 000000000..f2b3839f0
--- /dev/null
+++ b/nms/1_16_R2/build.gradle.kts
@@ -0,0 +1,10 @@
+val mcVersion = "1.16.2"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/nms/1_16_R2/pom.xml b/nms/1_16_R2/pom.xml
deleted file mode 100644
index 553323c75..000000000
--- a/nms/1_16_R2/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_16_R2
- MobChip-1.16.2
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- 1.16.2-R0.1-SNAPSHOT
- provided
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_16_R3/build.gradle.kts b/nms/1_16_R3/build.gradle.kts
new file mode 100644
index 000000000..28435a900
--- /dev/null
+++ b/nms/1_16_R3/build.gradle.kts
@@ -0,0 +1,10 @@
+val mcVersion = "1.16.4"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
\ No newline at end of file
diff --git a/nms/1_16_R3/pom.xml b/nms/1_16_R3/pom.xml
deleted file mode 100644
index 832461fea..000000000
--- a/nms/1_16_R3/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_16_R3
- MobChip-1.16.4
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- 1.16.4-R0.1-SNAPSHOT
- provided
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_17_R1/build.gradle.kts b/nms/1_17_R1/build.gradle.kts
new file mode 100644
index 000000000..8563f3780
--- /dev/null
+++ b/nms/1_17_R1/build.gradle.kts
@@ -0,0 +1,15 @@
+val mcVersion = "1.17.1"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT")
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_16
+ targetCompatibility = JavaVersion.VERSION_16
+}
\ No newline at end of file
diff --git a/nms/1_17_R1/pom.xml b/nms/1_17_R1/pom.xml
deleted file mode 100644
index f162deec2..000000000
--- a/nms/1_17_R1/pom.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_17_R1
- MobChip-1.17
-
-
- 16
- 16
- 16
-
- 1.17.1-R0.1-SNAPSHOT
-
-
-
- src/main/java
-
-
-
-
- org.spigotmc
- spigot
- ${minecraft.version}
- provided
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_18_R1/build.gradle.kts b/nms/1_18_R1/build.gradle.kts
new file mode 100644
index 000000000..53085c0d1
--- /dev/null
+++ b/nms/1_18_R1/build.gradle.kts
@@ -0,0 +1,35 @@
+import io.github.patrick.gradle.remapper.RemapTask
+
+plugins {
+ id("io.github.patrick.remapper") version "1.4.0"
+}
+
+val mcVersion = "1.18.1"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+tasks {
+ assemble {
+ dependsOn("remap")
+ }
+
+ remap {
+ dependsOn("shadowJar")
+
+ version.set(mcVersion)
+ action.set(RemapTask.Action.MOJANG_TO_SPIGOT)
+ archiveClassifier.set("")
+ }
+}
\ No newline at end of file
diff --git a/nms/1_18_R1/pom.xml b/nms/1_18_R1/pom.xml
deleted file mode 100644
index 282d82e03..000000000
--- a/nms/1_18_R1/pom.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_18_R1
- MobChip-1.18
-
-
- 17
- 17
- 17
-
- 1.18-R0.1-SNAPSHOT
-
-
-
- src/main/java
-
-
- net.md-5
- specialsource-maven-plugin
- 1.2.5
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:${minecraft.version}:txt:maps-mojang
- true
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-mojang
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
- org.spigotmc:minecraft-server:${minecraft.version}:csrg:maps-spigot
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-obf
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot
- ${minecraft.version}
- provided
- remapped-mojang
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-base
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_18_R2/build.gradle.kts b/nms/1_18_R2/build.gradle.kts
new file mode 100644
index 000000000..749415e97
--- /dev/null
+++ b/nms/1_18_R2/build.gradle.kts
@@ -0,0 +1,35 @@
+import io.github.patrick.gradle.remapper.RemapTask
+
+plugins {
+ id("io.github.patrick.remapper") version "1.4.0"
+}
+
+val mcVersion = "1.18.2"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+tasks {
+ assemble {
+ dependsOn("remap")
+ }
+
+ remap {
+ dependsOn("shadowJar")
+
+ version.set(mcVersion)
+ action.set(RemapTask.Action.MOJANG_TO_SPIGOT)
+ archiveClassifier.set("")
+ }
+}
\ No newline at end of file
diff --git a/nms/1_18_R2/pom.xml b/nms/1_18_R2/pom.xml
deleted file mode 100644
index 8be95695d..000000000
--- a/nms/1_18_R2/pom.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_18_R2
- MobChip-1.18.2
-
-
- 17
- 17
- 17
-
- 1.18.2-R0.1-SNAPSHOT
-
-
-
- src/main/java
-
-
- net.md-5
- specialsource-maven-plugin
- 1.2.5
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:${minecraft.version}:txt:maps-mojang
- true
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-mojang
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
- org.spigotmc:minecraft-server:${minecraft.version}:csrg:maps-spigot
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-obf
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot
- ${minecraft.version}
- provided
- remapped-mojang
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-base
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_19_R1/build.gradle.kts b/nms/1_19_R1/build.gradle.kts
new file mode 100644
index 000000000..c7b7c91ca
--- /dev/null
+++ b/nms/1_19_R1/build.gradle.kts
@@ -0,0 +1,35 @@
+import io.github.patrick.gradle.remapper.RemapTask
+
+plugins {
+ id("io.github.patrick.remapper") version "1.4.0"
+}
+
+val mcVersion = "1.19.2"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+tasks {
+ assemble {
+ dependsOn("remap")
+ }
+
+ remap {
+ dependsOn("shadowJar")
+
+ version.set(mcVersion)
+ action.set(RemapTask.Action.MOJANG_TO_SPIGOT)
+ archiveClassifier.set("")
+ }
+}
\ No newline at end of file
diff --git a/nms/1_19_R1/pom.xml b/nms/1_19_R1/pom.xml
deleted file mode 100644
index 920cc2143..000000000
--- a/nms/1_19_R1/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_19_R1
- MobChip-1.19
-
-
- 17
- 17
- 17
-
- 1.19.2-R0.1-SNAPSHOT
-
-
-
- src/main/java
-
-
- net.md-5
- specialsource-maven-plugin
- 1.2.5
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:${minecraft.version}:txt:maps-mojang
- true
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-mojang
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
- org.spigotmc:minecraft-server:${minecraft.version}:csrg:maps-spigot
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-obf
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot
- ${minecraft.version}
- provided
- remapped-mojang
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_19_R2/build.gradle.kts b/nms/1_19_R2/build.gradle.kts
new file mode 100644
index 000000000..5d191941a
--- /dev/null
+++ b/nms/1_19_R2/build.gradle.kts
@@ -0,0 +1,35 @@
+import io.github.patrick.gradle.remapper.RemapTask
+
+plugins {
+ id("io.github.patrick.remapper") version "1.4.0"
+}
+
+val mcVersion = "1.19.3"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+tasks {
+ assemble {
+ dependsOn("remap")
+ }
+
+ remap {
+ dependsOn("shadowJar")
+
+ version.set(mcVersion)
+ action.set(RemapTask.Action.MOJANG_TO_SPIGOT)
+ archiveClassifier.set("")
+ }
+}
\ No newline at end of file
diff --git a/nms/1_19_R2/pom.xml b/nms/1_19_R2/pom.xml
deleted file mode 100644
index b09a7706d..000000000
--- a/nms/1_19_R2/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_19_R2
- MobChip-1.19.3
-
-
- 17
- 17
- 17
-
- 1.19.3-R0.1-SNAPSHOT
-
-
-
- src/main/java
-
-
- net.md-5
- specialsource-maven-plugin
- 1.2.5
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:${minecraft.version}:txt:maps-mojang
- true
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-mojang
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
- org.spigotmc:minecraft-server:${minecraft.version}:csrg:maps-spigot
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-obf
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot
- ${minecraft.version}
- provided
- remapped-mojang
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_19_R3/build.gradle.kts b/nms/1_19_R3/build.gradle.kts
new file mode 100644
index 000000000..d24d2abdf
--- /dev/null
+++ b/nms/1_19_R3/build.gradle.kts
@@ -0,0 +1,35 @@
+import io.github.patrick.gradle.remapper.RemapTask
+
+plugins {
+ id("io.github.patrick.remapper") version "1.4.0"
+}
+
+val mcVersion = "1.19.4"
+
+dependencies {
+ api(project(":mobchip-base"))
+ api(project(":mobchip-abstraction"))
+ api(project(":mobchip-1_14_R1"))
+
+ compileOnly("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+ testImplementation("org.spigotmc:spigot:$mcVersion-R0.1-SNAPSHOT:remapped-mojang")
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+tasks {
+ assemble {
+ dependsOn("remap")
+ }
+
+ remap {
+ dependsOn("shadowJar")
+
+ version.set(mcVersion)
+ action.set(RemapTask.Action.MOJANG_TO_SPIGOT)
+ archiveClassifier.set("")
+ }
+}
\ No newline at end of file
diff --git a/nms/1_19_R3/pom.xml b/nms/1_19_R3/pom.xml
deleted file mode 100644
index 1c5e7cd85..000000000
--- a/nms/1_19_R3/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- ../../pom.xml
-
-
- mobchip-1_19_R3
- MobChip-1.19.4
-
-
- 17
- 17
- 17
-
- 1.19.4-R0.1-SNAPSHOT
-
-
-
- src/main/java
-
-
- net.md-5
- specialsource-maven-plugin
- 1.2.5
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:${minecraft.version}:txt:maps-mojang
- true
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-mojang
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
- org.spigotmc:minecraft-server:${minecraft.version}:csrg:maps-spigot
- org.spigotmc:spigot:${minecraft.version}:jar:remapped-obf
-
-
-
-
-
-
-
-
-
- org.spigotmc
- spigot
- ${minecraft.version}
- provided
- remapped-mojang
-
-
- ${project.groupId}
- mobchip-abstraction
- ${project.version}
- compile
-
-
- ${project.groupId}
- mobchip-1_14_R1
- ${project.version}
- compile
-
-
-
-
-
\ No newline at end of file
diff --git a/nms/1_19_R3/src/main/java/me/gamercoder215/mobchip/abstraction/v1_19_R3/ChipUtil1_19_R3.java b/nms/1_19_R3/src/main/java/me/gamercoder215/mobchip/abstraction/v1_19_R3/ChipUtil1_19_R3.java
index 134fe9783..fb5f8aa7b 100644
--- a/nms/1_19_R3/src/main/java/me/gamercoder215/mobchip/abstraction/v1_19_R3/ChipUtil1_19_R3.java
+++ b/nms/1_19_R3/src/main/java/me/gamercoder215/mobchip/abstraction/v1_19_R3/ChipUtil1_19_R3.java
@@ -41,7 +41,6 @@
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.Difficulty;
import net.minecraft.world.damagesource.DamageSource;
-import net.minecraft.world.damagesource.DamageSources;
import net.minecraft.world.damagesource.DamageType;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.NeutralMob;
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 7dae81e40..000000000
--- a/pom.xml
+++ /dev/null
@@ -1,197 +0,0 @@
-
- 4.0.0
-
- me.gamercoder215
- mobchip-parent
- 1.8.1-SNAPSHOT
- pom
-
- MobChip-Parent
- https://github.com/GamerCoder215/MobChip
- PathfinderGoal and Behavior NMS Wrapper
-
-
- 1.13-R0.1-SNAPSHOT
- UTF-8
- UTF-8
-
- 8
- 8
-
- GamerCoder215/MobChip
- gamercoder215
- https://sonarcloud.io
-
-
-
-
- GamerCoder
-
- Owner
-
- gamercoder215@teaminceptus.us
- Team Inceptus
-
-
-
-
-
- GPL-3.0
- https://www.gnu.org/licenses/gpl-3.0.en.html
- repo
-
-
-
-
- scm:git:${project.url}.git
- scm:git:git@github.com:${github}.git
- https://github.com/${github}
-
-
- 2022
-
-
- GitHub Actions
- https://github.com/${github}/actions
-
-
-
- GitHub
- https://github.com/${github}/issues/
-
-
-
- base
- bukkit
- abstraction
-
- nms/1_13_R1
- nms/1_13_R2
- nms/1_14_R1
- nms/1_15_R1
- nms/1_16_R1
- nms/1_16_R2
- nms/1_16_R3
- nms/1_17_R1
- nms/1_18_R1
- nms/1_18_R2
- nms/1_19_R1
- nms/1_19_R2
- nms/1_19_R3
-
-
-
-
- spigot-repo
- Spigot-API Repository
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
-
-
- nms-repo
- NMS Repository
- https://repo.codemc.org/repository/nms/
-
-
- papermc
- PaperMC Repository
- https://repo.papermc.io/repository/maven-public/
-
-
-
-
-
- codemc-releases
- https://repo.codemc.io/repository/maven-releases/
-
-
- codemc-snapshots
- https://repo.codemc.io/repository/maven-snapshots/
-
-
-
-
-
-
- org.mockito
- mockito-core
- 5.3.1
- test
-
-
- org.junit.jupiter
- junit-jupiter
- 5.9.3
- test
-
-
-
-
- org.jetbrains
- annotations
- 24.0.1
- provided
-
-
-
-
- ${project.name}-${project.version}
- clean install
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.11.0
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.1.0
-
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.10
-
-
-
- prepare-agent
-
-
-
- report
- prepare-package
-
- report
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.4.1
-
-
- package
-
- shade
-
-
- true
- false
-
-
- *:*
-
- META-INF/**/*
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 000000000..29522faf1
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1,32 @@
+rootProject.name = "mobchip-parent"
+
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ mavenCentral()
+ }
+}
+
+listOf("base", "abstraction", "bukkit").forEach {
+ include(":mobchip-$it")
+ project(":mobchip-$it").projectDir = rootDir.resolve(it)
+}
+
+listOf(
+ "1_13_R1",
+ "1_13_R2",
+ "1_14_R1",
+ "1_15_R1",
+ "1_16_R1",
+ "1_16_R2",
+ "1_16_R3",
+ "1_17_R1",
+ "1_18_R1",
+ "1_18_R2",
+ "1_19_R1",
+ "1_19_R2",
+ "1_19_R3"
+).forEach {
+ include(":mobchip-$it")
+ project(":mobchip-$it").projectDir = rootDir.resolve("nms/$it")
+}
\ No newline at end of file