mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-01 07:25:51 +00:00
move base project to 'core'
add build script for nms add build script for core add build script for project move existing nms references to nms/v1_20_R1 add 1.19 and 1.20.2 compatibility
This commit is contained in:
parent
3dff96152c
commit
8bacc8128b
2
.gitignore
vendored
2
.gitignore
vendored
@ -10,4 +10,4 @@ libs/
|
|||||||
|
|
||||||
collection/
|
collection/
|
||||||
|
|
||||||
src/main/java/com/volmit/iris/util/uniques/
|
/core/src/main/java/com/volmit/iris/util/uniques/
|
||||||
|
436
build.gradle
436
build.gradle
@ -19,18 +19,12 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'java-library'
|
id 'java-library'
|
||||||
id "io.freefair.lombok" version "6.3.0"
|
|
||||||
id "com.github.johnrengelman.shadow" version "7.1.2"
|
id "com.github.johnrengelman.shadow" version "7.1.2"
|
||||||
id "de.undercouch.download" version "5.0.1"
|
id "de.undercouch.download" version "5.0.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
version '2.8.1-1.20.1'
|
version '2.8.0'
|
||||||
def nmsVersion = '1.20.1' //[NMS]
|
|
||||||
def apiVersion = '1.20'
|
|
||||||
def specialSourceVersion = '1.11.0' //[NMS]
|
def specialSourceVersion = '1.11.0' //[NMS]
|
||||||
def spigotJarVersion = '1.20.1-R0.1-SNAPSHOT' //[NMS]
|
|
||||||
def name = getRootProject().getName() // Defined in settings.gradle
|
|
||||||
def main = 'com.volmit.iris.Iris'
|
|
||||||
|
|
||||||
// ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED
|
// ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED
|
||||||
// ======================== WINDOWS =============================
|
// ======================== WINDOWS =============================
|
||||||
@ -47,59 +41,157 @@ registerCustomOutputTaskUnix('CyberpwnLT', '/Users/danielmills/development/serve
|
|||||||
registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Desktop/REMOTES/RemoteMinecraft/plugins')
|
registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Desktop/REMOTES/RemoteMinecraft/plugins')
|
||||||
// ==============================================================
|
// ==============================================================
|
||||||
|
|
||||||
/**
|
def NMS_BINDINGS = Map.of(
|
||||||
* Gradle is weird sometimes, we need to delete the plugin yml from the build folder to actually filter properly.
|
"v1_20_R2", "1.20.2-R0.1-SNAPSHOT",
|
||||||
*/
|
"v1_20_R1", "1.20.1-R0.1-SNAPSHOT",
|
||||||
file(jar.archiveFile.get().getAsFile().getParentFile().getParentFile().getParentFile().getAbsolutePath() + '/build/resources/main/plugin.yml').delete()
|
"v1_19_R3", "1.19.4-R0.1-SNAPSHOT",
|
||||||
|
"v1_19_R2", "1.19.3-R0.1-SNAPSHOT",
|
||||||
|
"v1_19_R1", "1.19.2-R0.1-SNAPSHOT"
|
||||||
|
)
|
||||||
|
NMS_BINDINGS.each {
|
||||||
|
def key = it.key
|
||||||
|
def value = it.value
|
||||||
|
def nms = value.split("-")[0];
|
||||||
|
project(":nms:${key}") {
|
||||||
|
apply plugin: 'java'
|
||||||
|
apply plugin: 'java-library'
|
||||||
|
apply plugin: 'de.undercouch.download'
|
||||||
|
|
||||||
/**
|
dependencies {
|
||||||
* Expand properties into plugin yml
|
implementation project(":core")
|
||||||
*/
|
implementation "org.spigotmc:spigot-api:${value}"
|
||||||
processResources {
|
implementation "org.bukkit:craftbukkit:${value}:remapped-mojang" //[NMS]
|
||||||
filesMatching('**/plugin.yml') {
|
|
||||||
expand(
|
|
||||||
'name': name.toString(),
|
|
||||||
'version': version.toString(),
|
|
||||||
'main': main.toString(),
|
|
||||||
'apiversion': apiVersion.toString()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unified repo
|
|
||||||
*/
|
|
||||||
repositories {
|
|
||||||
mavenLocal {
|
|
||||||
content {
|
|
||||||
includeGroup("org.bukkit")
|
|
||||||
includeGroup("org.spigotmc")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def buildToolsJar = new File(rootProject.buildDir, "tools/BuildTools.jar")
|
||||||
|
def specialSourceJar = new File(rootProject.buildDir, "tools/SpecialSource.jar")
|
||||||
|
|
||||||
|
def buildToolsFolder = new File(buildDir, "buildtools")
|
||||||
|
def specialSourceFolder = new File(buildDir, "specialsource")
|
||||||
|
def buildToolsHint = new File(buildDir, "buildtools/craftbukkit-" + nms + ".jar")
|
||||||
|
|
||||||
|
def outputJar = new File(buildDir, "libs/${key}.jar")
|
||||||
|
def ssiJar = new File(buildDir, "specialsource/${key}.jar")
|
||||||
|
def ssobfJar = new File(buildDir, "specialsource/${key}-rmo.jar")
|
||||||
|
def ssJar = new File(buildDir, "specialsource/${key}-rma.jar")
|
||||||
|
|
||||||
|
def homePath = System.properties['user.home']
|
||||||
|
def m2 = new File(homePath + "/.m2/repository")
|
||||||
|
def m2s = m2.getAbsolutePath();
|
||||||
|
|
||||||
|
// ======================== Building Mapped Jars =============================
|
||||||
|
Runnable downloadBuildtools = () -> {
|
||||||
|
if (!buildToolsJar.exists()) {
|
||||||
|
download.run {
|
||||||
|
src 'https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar'
|
||||||
|
dest buildToolsJar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Runnable downloadSpecialSource = () -> {
|
||||||
|
if (!specialSourceJar.exists()) {
|
||||||
|
download.run {
|
||||||
|
src 'https://repo.maven.apache.org/maven2/net/md-5/SpecialSource/' + specialSourceVersion + '/SpecialSource-'+specialSourceVersion+'-shaded.jar'
|
||||||
|
dest specialSourceJar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Runnable executeBuildTools = () -> {
|
||||||
|
if (!buildToolsHint.exists()) {
|
||||||
|
downloadBuildtools.run()
|
||||||
|
buildToolsFolder.mkdirs()
|
||||||
|
javaexec {
|
||||||
|
classpath = files(buildToolsJar)
|
||||||
|
workingDir = buildToolsFolder
|
||||||
|
args = [
|
||||||
|
"--rev",
|
||||||
|
nms,
|
||||||
|
"--compile",
|
||||||
|
"craftbukkit",
|
||||||
|
"--remap"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("executeBuildTools") {
|
||||||
|
doFirst {
|
||||||
|
executeBuildTools.run()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("copyBuildToSpecialSource", Copy) {
|
||||||
|
doFirst {
|
||||||
|
downloadSpecialSource.run()
|
||||||
|
specialSourceFolder.mkdirs();
|
||||||
|
}
|
||||||
|
|
||||||
|
group "remapping"
|
||||||
|
from outputJar
|
||||||
|
into specialSourceFolder
|
||||||
|
dependsOn(jar)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("specialSourceRemapObfuscate", JavaExec) {
|
||||||
|
group "remapping"
|
||||||
|
dependsOn(copyBuildToSpecialSource)
|
||||||
|
workingDir = specialSourceFolder
|
||||||
|
classpath = files(specialSourceJar,
|
||||||
|
new File(m2s + "/org/spigotmc/spigot/" + value + "/spigot-" + value + "-remapped-mojang.jar"))
|
||||||
|
mainClass = "net.md_5.specialsource.SpecialSource"
|
||||||
|
args = [
|
||||||
|
"--live",
|
||||||
|
"-i",
|
||||||
|
ssiJar.getName(),
|
||||||
|
"-o",
|
||||||
|
ssobfJar.getName(),
|
||||||
|
"-m",
|
||||||
|
m2s + "/org/spigotmc/minecraft-server/" + value + "/minecraft-server-" + value + "-maps-mojang.txt",
|
||||||
|
"--reverse",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("specialSourceRemap", JavaExec) {
|
||||||
|
group "remapping"
|
||||||
|
dependsOn(specialSourceRemapObfuscate)
|
||||||
|
workingDir = specialSourceFolder
|
||||||
|
classpath = files(specialSourceJar,
|
||||||
|
new File(m2s + "/org/spigotmc/spigot/" + value + "/spigot-" + value + "-remapped-obf.jar"))
|
||||||
|
mainClass = "net.md_5.specialsource.SpecialSource"
|
||||||
|
args = [
|
||||||
|
"--live",
|
||||||
|
"-i",
|
||||||
|
ssobfJar.getName(),
|
||||||
|
"-o",
|
||||||
|
ssJar.getName(),
|
||||||
|
"-m",
|
||||||
|
m2s + "/org/spigotmc/minecraft-server/" + value + "/minecraft-server-" + value + "-maps-spigot.csrg"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("copySpecialSourceToBuild", Copy) {
|
||||||
|
group "remapping"
|
||||||
|
from ssJar
|
||||||
|
into outputJar.getParentFile()
|
||||||
|
rename {
|
||||||
|
outputJar.getName()
|
||||||
|
}
|
||||||
|
dependsOn(specialSourceRemap)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.build.dependsOn(copySpecialSourceToBuild)
|
||||||
|
executeBuildTools.run()
|
||||||
}
|
}
|
||||||
mavenCentral()
|
|
||||||
maven { url "https://repo.papermc.io/repository/maven-public/"}
|
|
||||||
maven { url "https://repo.codemc.org/repository/maven-public" }
|
|
||||||
maven { url "https://mvn.lumine.io/repository/maven-public/" }
|
|
||||||
maven { url "https://jitpack.io"}
|
|
||||||
|
|
||||||
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots" }
|
|
||||||
maven { url "https://mvn.lumine.io/repository/maven/" }
|
|
||||||
maven { url "https://repo.triumphteam.dev/snapshots" }
|
|
||||||
maven { url "https://repo.mineinabyss.com/releases" }
|
|
||||||
maven { url = 'https://hub.jeff-media.com/nexus/repository/jeff-media-public/' }
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We need parameter meta for the decree command system
|
|
||||||
*/
|
|
||||||
compileJava {
|
|
||||||
options.compilerArgs << '-parameters'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure Iris for shading
|
* Configure Iris for shading
|
||||||
*/
|
*/
|
||||||
shadowJar {
|
shadowJar {
|
||||||
|
NMS_BINDINGS.each {dependsOn(":nms:${it.key}:build")}
|
||||||
|
|
||||||
//minimize()
|
//minimize()
|
||||||
append("plugin.yml")
|
append("plugin.yml")
|
||||||
relocate 'com.dfsek.paralithic', 'com.volmit.iris.util.paralithic'
|
relocate 'com.dfsek.paralithic', 'com.volmit.iris.util.paralithic'
|
||||||
@ -109,6 +201,16 @@ shadowJar {
|
|||||||
include(dependency('io.papermc:paperlib'))
|
include(dependency('io.papermc:paperlib'))
|
||||||
include(dependency('com.dfsek:Paralithic'))
|
include(dependency('com.dfsek:Paralithic'))
|
||||||
include(dependency('net.kyori:'))
|
include(dependency('net.kyori:'))
|
||||||
|
include(project(":core"))
|
||||||
|
NMS_BINDINGS.each {include(project(":nms:${it.key}"))}
|
||||||
|
}
|
||||||
|
archiveFileName.set("Iris-${project.version}.jar")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation project(':core')
|
||||||
|
NMS_BINDINGS.each {
|
||||||
|
implementation project(":nms:${it.key}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,52 +219,78 @@ configurations.all {
|
|||||||
resolutionStrategy.cacheDynamicVersionsFor 60, 'minutes'
|
resolutionStrategy.cacheDynamicVersionsFor 60, 'minutes'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
allprojects {
|
||||||
* Dependencies.
|
getPlugins().apply("java")
|
||||||
*
|
|
||||||
* Provided or classpath dependencies are not shaded and are available on the runtime classpath
|
|
||||||
*
|
|
||||||
* Shaded dependencies are not available at runtime, nor are they available on mvn central so they
|
|
||||||
* need to be shaded into the jar (increasing binary size)
|
|
||||||
*
|
|
||||||
* Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
|
|
||||||
* plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
|
|
||||||
* these dependencies if they are available on mvn central.
|
|
||||||
*/
|
|
||||||
dependencies {
|
|
||||||
// Provided or Classpath
|
|
||||||
compileOnly 'org.projectlombok:lombok:1.18.24'
|
|
||||||
annotationProcessor 'org.projectlombok:lombok:1.18.24'
|
|
||||||
implementation 'org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT'
|
|
||||||
implementation 'org.bukkit:craftbukkit:1.20.1-R0.1-SNAPSHOT:remapped-mojang' //[NMS]
|
|
||||||
|
|
||||||
// Third Party Integrations
|
/**
|
||||||
implementation 'com.ticxo.playeranimator:PlayerAnimator:R1.2.7'
|
* Unified repo
|
||||||
implementation 'com.github.oraxen:oraxen:1.158.0'
|
*/
|
||||||
implementation 'com.github.LoneDev6:api-itemsadder:3.4.1-r4'
|
repositories {
|
||||||
implementation 'com.github.PlaceholderAPI:placeholderapi:2.11.3'
|
mavenLocal {
|
||||||
//implementation files('libs/CustomItems.jar')
|
content {
|
||||||
|
includeGroup("org.bukkit")
|
||||||
|
includeGroup("org.spigotmc")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mavenCentral()
|
||||||
|
maven { url "https://repo.papermc.io/repository/maven-public/"}
|
||||||
|
maven { url "https://repo.codemc.org/repository/maven-public" }
|
||||||
|
maven { url "https://mvn.lumine.io/repository/maven-public/" }
|
||||||
|
maven { url "https://jitpack.io"}
|
||||||
|
|
||||||
// Shaded
|
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots" }
|
||||||
implementation 'com.dfsek:Paralithic:0.4.0'
|
maven { url "https://mvn.lumine.io/repository/maven/" }
|
||||||
implementation 'io.papermc:paperlib:1.0.5'
|
maven { url "https://repo.triumphteam.dev/snapshots" }
|
||||||
implementation "net.kyori:adventure-text-minimessage:4.13.1"
|
maven { url "https://repo.mineinabyss.com/releases" }
|
||||||
implementation 'net.kyori:adventure-platform-bukkit:4.3.0'
|
maven { url 'https://hub.jeff-media.com/nexus/repository/jeff-media-public/' }
|
||||||
implementation 'net.kyori:adventure-api:4.13.1'
|
}
|
||||||
implementation 'io.lumine:Mythic-Dist:5.2.1'
|
|
||||||
|
|
||||||
// Dynamically Loaded
|
/**
|
||||||
implementation 'io.timeandspace:smoothie-map:2.0.2'
|
* Dependencies.
|
||||||
implementation 'it.unimi.dsi:fastutil:8.5.8'
|
*
|
||||||
implementation 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2'
|
* Provided or classpath dependencies are not shaded and are available on the runtime classpath
|
||||||
implementation 'org.zeroturnaround:zt-zip:1.14'
|
*
|
||||||
implementation 'com.google.code.gson:gson:2.9.0'
|
* Shaded dependencies are not available at runtime, nor are they available on mvn central so they
|
||||||
implementation 'org.ow2.asm:asm:9.2'
|
* need to be shaded into the jar (increasing binary size)
|
||||||
implementation 'com.google.guava:guava:31.1-jre'
|
*
|
||||||
implementation 'bsf:bsf:2.4.0'
|
* Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
|
||||||
implementation 'rhino:js:1.7R2'
|
* plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
|
||||||
implementation 'com.github.ben-manes.caffeine:caffeine:3.0.6'
|
* these dependencies if they are available on mvn central.
|
||||||
implementation 'org.apache.commons:commons-lang3:3.12.0'
|
*/
|
||||||
|
dependencies {
|
||||||
|
// Provided or Classpath
|
||||||
|
compileOnly 'org.projectlombok:lombok:1.18.24'
|
||||||
|
annotationProcessor 'org.projectlombok:lombok:1.18.24'
|
||||||
|
|
||||||
|
// Shaded
|
||||||
|
implementation 'com.dfsek:Paralithic:0.4.0'
|
||||||
|
implementation 'io.papermc:paperlib:1.0.5'
|
||||||
|
implementation "net.kyori:adventure-text-minimessage:4.13.1"
|
||||||
|
implementation 'net.kyori:adventure-platform-bukkit:4.3.0'
|
||||||
|
implementation 'net.kyori:adventure-api:4.13.1'
|
||||||
|
implementation 'io.lumine:Mythic-Dist:5.2.1'
|
||||||
|
|
||||||
|
// Dynamically Loaded
|
||||||
|
implementation 'io.timeandspace:smoothie-map:2.0.2'
|
||||||
|
implementation 'it.unimi.dsi:fastutil:8.5.8'
|
||||||
|
implementation 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2'
|
||||||
|
implementation 'org.zeroturnaround:zt-zip:1.14'
|
||||||
|
implementation 'com.google.code.gson:gson:2.9.0'
|
||||||
|
implementation 'org.ow2.asm:asm:9.2'
|
||||||
|
implementation 'com.google.guava:guava:31.1-jre'
|
||||||
|
implementation 'bsf:bsf:2.4.0'
|
||||||
|
implementation 'rhino:js:1.7R2'
|
||||||
|
implementation 'com.github.ben-manes.caffeine:caffeine:3.0.6'
|
||||||
|
implementation 'org.apache.commons:commons-lang3:3.12.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We need parameter meta for the decree command system
|
||||||
|
*/
|
||||||
|
compileJava {
|
||||||
|
options.compilerArgs << '-parameters'
|
||||||
|
options.encoding = "UTF-8"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (JavaVersion.current().toString() != "17") {
|
if (JavaVersion.current().toString() != "17") {
|
||||||
@ -183,123 +311,11 @@ if (JavaVersion.current().toString() != "17") {
|
|||||||
System.exit(69);
|
System.exit(69);
|
||||||
}
|
}
|
||||||
|
|
||||||
def buildToolsJar = new File(buildDir, "buildtools/BuildTools.jar");
|
task iris(type: Copy) {
|
||||||
def specialSourceJar = new File(buildDir, "specialsource/SpecialSource.jar");
|
|
||||||
def buildToolsFolder = new File(buildDir, "buildtools");
|
|
||||||
def specialSourceFolder = new File(buildDir, "specialsource");
|
|
||||||
def buildToolsHint = new File(buildDir, "buildtools/craftbukkit-" + nmsVersion + ".jar");
|
|
||||||
def outputShadeJar = new File(buildDir, "libs/Iris-" + version + "-all.jar");
|
|
||||||
def ssiJar = new File(buildDir, "specialsource/Iris-" + version + "-all.jar");
|
|
||||||
def ssobfJar = new File(buildDir, "specialsource/Iris-" + version + "-rmo.jar");
|
|
||||||
def ssJar = new File(buildDir, "specialsource/Iris-" + version + "-rma.jar");
|
|
||||||
def homePath = System.properties['user.home']
|
|
||||||
def m2 = new File(homePath + "/.m2/repository")
|
|
||||||
def m2s = m2.getAbsolutePath();
|
|
||||||
|
|
||||||
// ======================== Building Mapped Jars =============================
|
|
||||||
task downloadBuildtools(type: Download) {
|
|
||||||
group "remapping"
|
|
||||||
src 'https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar'
|
|
||||||
dest buildToolsJar
|
|
||||||
onlyIf {
|
|
||||||
!buildToolsJar.exists()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task downloadSpecialSource(type: Download) {
|
|
||||||
group "remapping"
|
|
||||||
src 'https://repo.maven.apache.org/maven2/net/md-5/SpecialSource/' + specialSourceVersion + '/SpecialSource-'+specialSourceVersion+'-shaded.jar'
|
|
||||||
dest specialSourceJar
|
|
||||||
onlyIf {
|
|
||||||
!specialSourceJar.exists()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task executeBuildTools(dependsOn: downloadBuildtools, type: JavaExec)
|
|
||||||
{
|
|
||||||
group "remapping"
|
|
||||||
classpath = files(buildToolsJar)
|
|
||||||
workingDir = buildToolsFolder
|
|
||||||
args = [
|
|
||||||
"--rev",
|
|
||||||
nmsVersion,
|
|
||||||
"--compile",
|
|
||||||
"craftbukkit",
|
|
||||||
"--remap"
|
|
||||||
]
|
|
||||||
onlyIf {
|
|
||||||
!buildToolsHint.exists()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task copyBuildToSpecialSource(type: Copy)
|
|
||||||
{
|
|
||||||
group "remapping"
|
|
||||||
from outputShadeJar
|
|
||||||
into specialSourceFolder
|
|
||||||
dependsOn(downloadSpecialSource, shadowJar)
|
|
||||||
}
|
|
||||||
|
|
||||||
task specialSourceRemapObfuscate(type: JavaExec)
|
|
||||||
{
|
|
||||||
group "remapping"
|
|
||||||
dependsOn(copyBuildToSpecialSource, downloadSpecialSource, shadowJar)
|
|
||||||
workingDir = specialSourceFolder
|
|
||||||
classpath = files(specialSourceJar,
|
|
||||||
new File(m2s + "/org/spigotmc/spigot/" + spigotJarVersion + "/spigot-" + spigotJarVersion + "-remapped-mojang.jar"))
|
|
||||||
mainClass = "net.md_5.specialsource.SpecialSource"
|
|
||||||
args = [
|
|
||||||
"--live",
|
|
||||||
"-i",
|
|
||||||
ssiJar.getName(),
|
|
||||||
"-o",
|
|
||||||
ssobfJar.getName(),
|
|
||||||
"-m",
|
|
||||||
m2s + "/org/spigotmc/minecraft-server/" + spigotJarVersion + "/minecraft-server-" + spigotJarVersion + "-maps-mojang.txt",
|
|
||||||
"--reverse",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
task specialSourceRemap(type: JavaExec)
|
|
||||||
{
|
|
||||||
group "remapping"
|
|
||||||
dependsOn(specialSourceRemapObfuscate)
|
|
||||||
workingDir = specialSourceFolder
|
|
||||||
classpath = files(specialSourceJar,
|
|
||||||
new File(m2s + "/org/spigotmc/spigot/" + spigotJarVersion + "/spigot-" + spigotJarVersion + "-remapped-obf.jar"))
|
|
||||||
mainClass = "net.md_5.specialsource.SpecialSource"
|
|
||||||
args = [
|
|
||||||
"--live",
|
|
||||||
"-i",
|
|
||||||
ssobfJar.getName(),
|
|
||||||
"-o",
|
|
||||||
ssJar.getName(),
|
|
||||||
"-m",
|
|
||||||
m2s + "/org/spigotmc/minecraft-server/" + spigotJarVersion + "/minecraft-server-" + spigotJarVersion + "-maps-spigot.csrg"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.compileJava.dependsOn(executeBuildTools)
|
|
||||||
|
|
||||||
compileJava {
|
|
||||||
options.encoding = "UTF-8"
|
|
||||||
}
|
|
||||||
|
|
||||||
task setup()
|
|
||||||
{
|
|
||||||
group("iris")
|
|
||||||
dependsOn(clean, executeBuildTools)
|
|
||||||
}
|
|
||||||
|
|
||||||
task iris(type: Copy)
|
|
||||||
{
|
|
||||||
group "iris"
|
group "iris"
|
||||||
from ssJar
|
from new File(buildDir, "Iris-${version}.jar")
|
||||||
into buildDir
|
into buildDir
|
||||||
rename { String fileName ->
|
dependsOn(build)
|
||||||
fileName.replace('Iris-' + version + '-rma.jar', "Iris-" + version + ".jar")
|
|
||||||
}
|
|
||||||
dependsOn(specialSourceRemap)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def registerCustomOutputTask(name, path) {
|
def registerCustomOutputTask(name, path) {
|
||||||
@ -335,3 +351,5 @@ def registerCustomOutputTaskUnix(name, path) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.build.dependsOn(shadowJar)
|
84
core/build.gradle
Normal file
84
core/build.gradle
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Iris is a World Generator for Minecraft Bukkit Servers
|
||||||
|
* Copyright (c) 2021 Arcane Arts (Volmit Software)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id 'java'
|
||||||
|
id 'java-library'
|
||||||
|
id "io.freefair.lombok" version "6.3.0"
|
||||||
|
}
|
||||||
|
|
||||||
|
def apiVersion = '1.19'
|
||||||
|
def main = 'com.volmit.iris.Iris'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We need parameter meta for the decree command system
|
||||||
|
*/
|
||||||
|
compileJava {
|
||||||
|
options.compilerArgs << '-parameters'
|
||||||
|
options.encoding = "UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependencies.
|
||||||
|
*
|
||||||
|
* Provided or classpath dependencies are not shaded and are available on the runtime classpath
|
||||||
|
*
|
||||||
|
* Shaded dependencies are not available at runtime, nor are they available on mvn central so they
|
||||||
|
* need to be shaded into the jar (increasing binary size)
|
||||||
|
*
|
||||||
|
* Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
|
||||||
|
* plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
|
||||||
|
* these dependencies if they are available on mvn central.
|
||||||
|
*/
|
||||||
|
dependencies {
|
||||||
|
// Provided or Classpath
|
||||||
|
implementation 'org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT'
|
||||||
|
implementation 'org.apache.logging.log4j:log4j-api:2.19.0'
|
||||||
|
implementation 'org.apache.logging.log4j:log4j-core:2.19.0'
|
||||||
|
implementation 'commons-lang:commons-lang:2.6'
|
||||||
|
implementation 'com.github.oshi:oshi-core:5.8.5'
|
||||||
|
|
||||||
|
// Third Party Integrations
|
||||||
|
implementation 'com.ticxo.playeranimator:PlayerAnimator:R1.2.7'
|
||||||
|
implementation 'com.github.oraxen:oraxen:1.158.0'
|
||||||
|
implementation 'com.github.LoneDev6:api-itemsadder:3.4.1-r4'
|
||||||
|
implementation 'com.github.PlaceholderAPI:placeholderapi:2.11.3'
|
||||||
|
//implementation files('libs/CustomItems.jar')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gradle is weird sometimes, we need to delete the plugin yml from the build folder to actually filter properly.
|
||||||
|
*/
|
||||||
|
file(jar.archiveFile.get().getAsFile().getParentFile().getParentFile().getParentFile().getAbsolutePath() + '/build/resources/main/plugin.yml').delete()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expand properties into plugin yml
|
||||||
|
*/
|
||||||
|
processResources {
|
||||||
|
filesMatching('**/plugin.yml') {
|
||||||
|
expand(
|
||||||
|
'name': rootProject.name.toString(),
|
||||||
|
'version': rootProject.version.toString(),
|
||||||
|
'main': main.toString(),
|
||||||
|
'apiversion': apiVersion.toString()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.compileJava.dependsOn(delombok)
|
@ -28,7 +28,7 @@ import com.volmit.iris.core.link.MultiverseCoreLink;
|
|||||||
import com.volmit.iris.core.link.MythicMobsLink;
|
import com.volmit.iris.core.link.MythicMobsLink;
|
||||||
import com.volmit.iris.core.loader.IrisData;
|
import com.volmit.iris.core.loader.IrisData;
|
||||||
import com.volmit.iris.core.nms.INMS;
|
import com.volmit.iris.core.nms.INMS;
|
||||||
import com.volmit.iris.core.nms.v20.NMSBinding1_20_1;
|
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
|
||||||
import com.volmit.iris.core.pregenerator.LazyPregenerator;
|
import com.volmit.iris.core.pregenerator.LazyPregenerator;
|
||||||
import com.volmit.iris.core.service.StudioSVC;
|
import com.volmit.iris.core.service.StudioSVC;
|
||||||
import com.volmit.iris.core.tools.IrisToolbelt;
|
import com.volmit.iris.core.tools.IrisToolbelt;
|
||||||
@ -593,13 +593,13 @@ public class Iris extends VolmitPlugin implements Listener {
|
|||||||
private boolean setupChecks() {
|
private boolean setupChecks() {
|
||||||
boolean passed = true;
|
boolean passed = true;
|
||||||
Iris.info("Version Information: " + instance.getServer().getVersion() + " | " + instance.getServer().getBukkitVersion());
|
Iris.info("Version Information: " + instance.getServer().getVersion() + " | " + instance.getServer().getBukkitVersion());
|
||||||
if (!instance.getServer().getBukkitVersion().contains(NMSBinding1_20_1.NMS_VERSION)) {
|
if (INMS.get() instanceof NMSBinding1X) {
|
||||||
passed = false;
|
passed = false;
|
||||||
Iris.warn("============================================");
|
Iris.warn("============================================");
|
||||||
Iris.warn("=");
|
Iris.warn("=");
|
||||||
Iris.warn("=");
|
Iris.warn("=");
|
||||||
Iris.warn("=");
|
Iris.warn("=");
|
||||||
Iris.warn("Iris is not compatible with this version of Minecraft.\nPlease use " + NMSBinding1_20_1.NMS_VERSION + " or use an older version of Iris.");
|
Iris.warn("Iris is not compatible with this version of Minecraft.");
|
||||||
Iris.warn("=");
|
Iris.warn("=");
|
||||||
Iris.warn("=");
|
Iris.warn("=");
|
||||||
Iris.warn("=");
|
Iris.warn("=");
|
@ -1,77 +1,74 @@
|
|||||||
/*
|
/*
|
||||||
* Iris is a World Generator for Minecraft Bukkit Servers
|
* Iris is a World Generator for Minecraft Bukkit Servers
|
||||||
* Copyright (c) 2022 Arcane Arts (Volmit Software)
|
* Copyright (c) 2022 Arcane Arts (Volmit Software)
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.volmit.iris.core.nms;
|
package com.volmit.iris.core.nms;
|
||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.core.IrisSettings;
|
import com.volmit.iris.core.IrisSettings;
|
||||||
import com.volmit.iris.core.nms.v20.NMSBinding1_20_1;
|
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
|
||||||
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
|
import org.bukkit.Bukkit;
|
||||||
import com.volmit.iris.util.collection.KMap;
|
|
||||||
import org.bukkit.Bukkit;
|
public class INMS {
|
||||||
|
//@done
|
||||||
public class INMS {
|
private static final INMSBinding binding = bind();
|
||||||
//@builder
|
|
||||||
private static final KMap<String, Class<? extends INMSBinding>> bindings = new KMap<String, Class<? extends INMSBinding>>()
|
public static INMSBinding get() {
|
||||||
.qput("v1_20_R1", NMSBinding1_20_1.class);
|
return binding;
|
||||||
//@done
|
}
|
||||||
private static final INMSBinding binding = bind();
|
|
||||||
|
public static String getNMSTag() {
|
||||||
public static INMSBinding get() {
|
if (IrisSettings.get().getGeneral().isDisableNMS()) {
|
||||||
return binding;
|
return "BUKKIT";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getNMSTag() {
|
try {
|
||||||
if (IrisSettings.get().getGeneral().isDisableNMS()) {
|
return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
|
||||||
return "BUKKIT";
|
} catch (Throwable e) {
|
||||||
}
|
Iris.reportError(e);
|
||||||
|
Iris.error("Failed to determine server nms version!");
|
||||||
try {
|
e.printStackTrace();
|
||||||
return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
|
}
|
||||||
} catch (Throwable e) {
|
|
||||||
Iris.reportError(e);
|
return "BUKKIT";
|
||||||
Iris.error("Failed to determine server nms version!");
|
}
|
||||||
e.printStackTrace();
|
|
||||||
}
|
private static INMSBinding bind() {
|
||||||
|
String code = getNMSTag();
|
||||||
return "BUKKIT";
|
Iris.info("Locating NMS Binding for " + code);
|
||||||
}
|
|
||||||
|
try {
|
||||||
private static INMSBinding bind() {
|
Class<?> clazz = Class.forName("com.volmit.iris.core.nms."+code+".NMSBinding");
|
||||||
String code = getNMSTag();
|
try {
|
||||||
Iris.info("Locating NMS Binding for " + code);
|
Object b = clazz.getConstructor().newInstance();
|
||||||
|
if (b instanceof INMSBinding binding) {
|
||||||
if (bindings.containsKey(code)) {
|
Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
|
||||||
try {
|
return binding;
|
||||||
INMSBinding b = bindings.get(code).getConstructor().newInstance();
|
}
|
||||||
Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
|
} catch (Throwable e) {
|
||||||
|
Iris.reportError(e);
|
||||||
return b;
|
e.printStackTrace();
|
||||||
} catch (Throwable e) {
|
}
|
||||||
Iris.reportError(e);
|
} catch (ClassNotFoundException|NoClassDefFoundError classNotFoundException) {}
|
||||||
e.printStackTrace();
|
|
||||||
}
|
Iris.info("Craftbukkit " + code + " <-> " + NMSBinding1X.class.getSimpleName() + " Successfully Bound");
|
||||||
}
|
Iris.warn("Note: Some features of Iris may not work the same since you are on an unsupported version of Minecraft.");
|
||||||
|
Iris.warn("Note: If this is a new version, expect an update soon.");
|
||||||
Iris.info("Craftbukkit " + code + " <-> " + NMSBinding1X.class.getSimpleName() + " Successfully Bound");
|
|
||||||
Iris.warn("Note: Some features of Iris may not work the same since you are on an unsupported version of Minecraft.");
|
return new NMSBinding1X();
|
||||||
Iris.warn("Note: If this is a new version, expect an update soon.");
|
}
|
||||||
|
}
|
||||||
return new NMSBinding1X();
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package com.volmit.iris.core.nms;
|
package com.volmit.iris.core.nms;
|
||||||
|
|
||||||
|
import com.volmit.iris.engine.framework.Engine;
|
||||||
|
import com.volmit.iris.util.collection.KMap;
|
||||||
import com.volmit.iris.util.mantle.Mantle;
|
import com.volmit.iris.util.mantle.Mantle;
|
||||||
import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer;
|
import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer;
|
||||||
import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess;
|
import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess;
|
||||||
@ -27,8 +29,10 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.WorldCreator;
|
import org.bukkit.WorldCreator;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
|
import org.bukkit.entity.Dolphin;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public interface INMSBinding {
|
public interface INMSBinding {
|
||||||
boolean hasTile(Location l);
|
boolean hasTile(Location l);
|
||||||
@ -90,4 +94,10 @@ public interface INMSBinding {
|
|||||||
MCAPaletteAccess createPalette();
|
MCAPaletteAccess createPalette();
|
||||||
|
|
||||||
void injectBiomesFromMantle(Chunk e, Mantle mantle);
|
void injectBiomesFromMantle(Chunk e, Mantle mantle);
|
||||||
|
|
||||||
|
ItemStack applyCustomNbt(ItemStack itemStack, KMap<String, Object> customNbt) throws IllegalArgumentException;
|
||||||
|
|
||||||
|
void setTreasurePos(Dolphin dolphin, com.volmit.iris.core.nms.container.BlockPos pos);
|
||||||
|
|
||||||
|
void inject(long seed, Engine engine, World world) throws NoSuchFieldException, IllegalAccessException;
|
||||||
}
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.volmit.iris.core.nms.container;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class BlockPos {
|
||||||
|
private int x;
|
||||||
|
private int y;
|
||||||
|
private int z;
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.volmit.iris.core.nms.container;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class Pair<A, B> {
|
||||||
|
private A a;
|
||||||
|
private B b;
|
||||||
|
}
|
@ -20,6 +20,9 @@ package com.volmit.iris.core.nms.v1X;
|
|||||||
|
|
||||||
import com.volmit.iris.Iris;
|
import com.volmit.iris.Iris;
|
||||||
import com.volmit.iris.core.nms.INMSBinding;
|
import com.volmit.iris.core.nms.INMSBinding;
|
||||||
|
import com.volmit.iris.core.nms.container.BlockPos;
|
||||||
|
import com.volmit.iris.engine.framework.Engine;
|
||||||
|
import com.volmit.iris.util.collection.KMap;
|
||||||
import com.volmit.iris.util.mantle.Mantle;
|
import com.volmit.iris.util.mantle.Mantle;
|
||||||
import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer;
|
import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer;
|
||||||
import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess;
|
import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess;
|
||||||
@ -28,8 +31,10 @@ import org.bukkit.Chunk;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
|
import org.bukkit.entity.Dolphin;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class NMSBinding1X implements INMSBinding {
|
public class NMSBinding1X implements INMSBinding {
|
||||||
private static final boolean supportsCustomHeight = testCustomHeight();
|
private static final boolean supportsCustomHeight = testCustomHeight();
|
||||||
@ -64,6 +69,21 @@ public class NMSBinding1X implements INMSBinding {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack applyCustomNbt(ItemStack itemStack, KMap<String, Object> customNbt) throws IllegalArgumentException {
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTreasurePos(Dolphin dolphin, BlockPos pos) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void inject(long seed, Engine engine, World world) throws NoSuchFieldException, IllegalAccessException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deserializeTile(CompoundTag s, Location newPosition) {
|
public void deserializeTile(CompoundTag s, Location newPosition) {
|
||||||
|
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
package com.volmit.iris.core.service;
|
package com.volmit.iris.core.service;
|
||||||
|
|
||||||
|
import com.volmit.iris.core.nms.INMS;
|
||||||
|
import com.volmit.iris.core.nms.container.BlockPos;
|
||||||
import com.volmit.iris.core.tools.IrisToolbelt;
|
import com.volmit.iris.core.tools.IrisToolbelt;
|
||||||
import com.volmit.iris.engine.framework.Engine;
|
import com.volmit.iris.engine.framework.Engine;
|
||||||
import com.volmit.iris.util.documentation.ChunkCoordinates;
|
import com.volmit.iris.util.documentation.ChunkCoordinates;
|
||||||
@ -25,11 +27,9 @@ import com.volmit.iris.util.function.Consumer4;
|
|||||||
import com.volmit.iris.util.math.Spiraler;
|
import com.volmit.iris.util.math.Spiraler;
|
||||||
import com.volmit.iris.util.matter.MatterStructurePOI;
|
import com.volmit.iris.util.matter.MatterStructurePOI;
|
||||||
import com.volmit.iris.util.plugin.IrisService;
|
import com.volmit.iris.util.plugin.IrisService;
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.SoundCategory;
|
import org.bukkit.SoundCategory;
|
||||||
import org.bukkit.craftbukkit.v1_20_R1.entity.CraftDolphin;
|
|
||||||
import org.bukkit.entity.Dolphin;
|
import org.bukkit.entity.Dolphin;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -62,10 +62,8 @@ public class DolphinSVC implements IrisService {
|
|||||||
searchNearestTreasure(e, event.getPlayer().getLocation().getBlockX() >> 4, event.getPlayer().getLocation().getBlockZ() >> 4, e.getMantle().getRadius() - 1, StructureType.BURIED_TREASURE, (x, y, z, p) -> {
|
searchNearestTreasure(e, event.getPlayer().getLocation().getBlockX() >> 4, event.getPlayer().getLocation().getBlockZ() >> 4, e.getMantle().getRadius() - 1, StructureType.BURIED_TREASURE, (x, y, z, p) -> {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
Dolphin d = (Dolphin) event.getRightClicked();
|
Dolphin d = (Dolphin) event.getRightClicked();
|
||||||
CraftDolphin cd = (CraftDolphin) d;
|
INMS.get().setTreasurePos(d, new BlockPos(x, y, z));
|
||||||
d.getWorld().playSound(d, Sound.ENTITY_DOLPHIN_EAT, SoundCategory.NEUTRAL, 1, 1);
|
d.getWorld().playSound(d, Sound.ENTITY_DOLPHIN_EAT, SoundCategory.NEUTRAL, 1, 1);
|
||||||
cd.getHandle().setTreasurePos(new BlockPos(x, y, z));
|
|
||||||
cd.getHandle().setGotFish(true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
@ -24,6 +24,8 @@ import com.volmit.iris.Iris;
|
|||||||
import com.volmit.iris.core.ServerConfigurator;
|
import com.volmit.iris.core.ServerConfigurator;
|
||||||
import com.volmit.iris.core.events.IrisEngineHotloadEvent;
|
import com.volmit.iris.core.events.IrisEngineHotloadEvent;
|
||||||
import com.volmit.iris.core.gui.PregeneratorJob;
|
import com.volmit.iris.core.gui.PregeneratorJob;
|
||||||
|
import com.volmit.iris.core.nms.container.BlockPos;
|
||||||
|
import com.volmit.iris.core.nms.container.Pair;
|
||||||
import com.volmit.iris.core.project.IrisProject;
|
import com.volmit.iris.core.project.IrisProject;
|
||||||
import com.volmit.iris.core.service.PreservationSVC;
|
import com.volmit.iris.core.service.PreservationSVC;
|
||||||
import com.volmit.iris.engine.data.cache.AtomicCache;
|
import com.volmit.iris.engine.data.cache.AtomicCache;
|
||||||
@ -48,12 +50,10 @@ import com.volmit.iris.util.scheduling.ChronoLatch;
|
|||||||
import com.volmit.iris.util.scheduling.J;
|
import com.volmit.iris.util.scheduling.J;
|
||||||
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
|
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import oshi.util.tuples.Pair;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user