mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-22 07:37:43 +00:00
23f1298d6c
Fix whitespace [skip actions] [BREAKING] Item Usage Overhaul Updated MAX_FRIENDS (#1852) Refactor GameData, remove deprecated getGsonFactory - Fix day-of-week dungeons - AvatarSkill max level enforcement from excels - Partial fix to bonus levels (need packet on talent update) Lombokify and sort GameData Extend talent command "all" (#1850) fix: Solar Isotoma Elevator doesn't work in multiplayer mode (#1848) fix: ConcurrentModificationError by removing gadget (#1849) Add DynamicFloat class fix: albedo elevator doesn't work (#1845) Update GM Handbook with Spincrystal names and Monster strings feat: unlock homeworld bgm and set homeworld bgm. (#1844) Flatten language translation keys in-memory feat: set namecards in profile editing. (#1843) fix costumes are unable to be unlocked. (#1842) Fix food decreasing (#1834) Fix showing ban message box (#1826) Don't need full Java stacktrace on Lua errors Move Data, Plugin, Script, Packet access from Strings to Paths (#1839) Add `shutdown` alias to StopCommand Update Banners.json (#1813) [BREAKING] Deobfuscate codex field, slight refactor (#1809) 3.1 Support (#1808) refactor HandlerWidgetDoBagReq Update README.md Fixed a tons of errors to make the drop system to accord with that in the actual game Allow loading Resources from zip files Move Resources loading from String filenames to Paths Add zip support Add `-game` and `-dispatch` startup arguments that override the run mode in the config Use reflection to map database classes and add missing mapped classes to the dispatch datastore Version 1.3.2-dev [skip actions]
280 lines
8.3 KiB
Groovy
280 lines
8.3 KiB
Groovy
/*
|
|
* This file was generated by the Gradle 'init' task.
|
|
*
|
|
* This generated file contains a sample Java project to get you started.
|
|
* For more details take a look at the Java Quickstart chapter in the Gradle
|
|
* User Manual available at https://docs.gradle.org/5.6.3/userguide/tutorial_java_projects.html
|
|
*/
|
|
|
|
buildscript {
|
|
repositories {
|
|
maven { url "https://plugins.gradle.org/m2/" }
|
|
}
|
|
dependencies {
|
|
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
// Apply the application plugin to add support for building a CLI application
|
|
id 'application'
|
|
|
|
// Apply the java plugin to add support for Java
|
|
id 'java'
|
|
|
|
// Apply the protobuf auto generator
|
|
id 'com.google.protobuf' version "0.8.18"
|
|
|
|
// Eclipse Support
|
|
id 'eclipse'
|
|
|
|
// IntelliJ Support
|
|
id 'idea'
|
|
|
|
// Maven
|
|
id 'maven-publish'
|
|
id 'signing'
|
|
}
|
|
|
|
compileJava.options.encoding = "UTF-8"
|
|
compileTestJava.options.encoding = "UTF-8"
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
|
|
group = 'xyz.grasscutters'
|
|
version = '1.4.0'
|
|
|
|
sourceCompatibility = 17
|
|
targetCompatibility = 17
|
|
|
|
java {
|
|
withJavadocJar()
|
|
withSourcesJar()
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'lib', include: ['*.jar'])
|
|
|
|
implementation group: 'it.unimi.dsi', name: 'fastutil', version: '8.5.8'
|
|
|
|
implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.36'
|
|
implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.2.11'
|
|
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.11'
|
|
|
|
implementation group: 'org.jline', name: 'jline', version: '3.21.0'
|
|
implementation group: 'org.jline', name: 'jline-terminal-jna', version: '3.21.0'
|
|
implementation group: 'net.java.dev.jna', name: 'jna', version: '5.10.0'
|
|
|
|
implementation group: 'io.netty', name: 'netty-common', version: '4.1.79.Final'
|
|
implementation group: 'io.netty', name: 'netty-handler', version: '4.1.79.Final'
|
|
implementation group: 'io.netty', name: 'netty-transport-native-epoll', version: '4.1.79.Final'
|
|
implementation group: 'io.netty', name: 'netty-transport-native-kqueue', version: '4.1.79.Final'
|
|
|
|
implementation group: 'com.google.code.gson', name: 'gson', version: '2.9.0'
|
|
implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.18.2'
|
|
|
|
implementation group: 'org.reflections', name: 'reflections', version: '0.10.2'
|
|
|
|
implementation group: 'dev.morphia.morphia', name: 'morphia-core', version: '2.2.7'
|
|
|
|
implementation group: 'org.greenrobot', name: 'eventbus-java', version: '3.3.1'
|
|
//implementation group: 'org.danilopianini', name: 'java-quadtree', version: '0.1.9'
|
|
|
|
implementation group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.2'
|
|
implementation group: 'org.quartz-scheduler', name: 'quartz-jobs', version: '2.3.2'
|
|
|
|
implementation group: 'org.luaj', name: 'luaj-jse', version: '3.0.1'
|
|
|
|
implementation group: 'com.esotericsoftware', name : 'reflectasm', version: '1.11.9'
|
|
implementation group: 'com.github.davidmoten', name : 'rtree-multi', version: '0.1'
|
|
|
|
implementation group: 'io.javalin', name: 'javalin', version: '4.6.4'
|
|
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.13.3'
|
|
|
|
protobuf files('proto/')
|
|
|
|
compileOnly 'org.projectlombok:lombok:1.18.24'
|
|
annotationProcessor 'org.projectlombok:lombok:1.18.24'
|
|
testCompileOnly 'org.projectlombok:lombok:1.18.24'
|
|
testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'
|
|
}
|
|
|
|
configurations.all {
|
|
exclude group: 'org.slf4j', module: 'slf4j'
|
|
}
|
|
|
|
application {
|
|
// Define the main class for the application
|
|
getMainClass().set('emu.grasscutter.Grasscutter')
|
|
}
|
|
|
|
|
|
jar {
|
|
exclude '*.proto'
|
|
|
|
manifest {
|
|
attributes 'Main-Class': 'emu.grasscutter.Grasscutter'
|
|
}
|
|
|
|
archiveBaseName = 'grasscutter'
|
|
if (project.hasProperty('jarFilename')) {
|
|
archiveFileName = "${jarFilename}.${extension}"
|
|
}
|
|
|
|
from {
|
|
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
|
}
|
|
|
|
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
|
|
|
from('src/main/java') {
|
|
include '*.xml'
|
|
}
|
|
|
|
destinationDirectory = file(".")
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifactId = 'grasscutter'
|
|
from components.java
|
|
versionMapping {
|
|
usage('java-api') {
|
|
fromResolutionOf('runtimeClasspath')
|
|
}
|
|
usage('java-runtime') {
|
|
fromResolutionResult()
|
|
}
|
|
}
|
|
pom {
|
|
name = 'Grasscutter'
|
|
description = 'A server software reimplementation for an anime game.'
|
|
url = 'https://github.com/Grasscutters/Grasscutter'
|
|
licenses {
|
|
license {
|
|
name = 'The Apache License, Version 2.0'
|
|
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
|
}
|
|
}
|
|
developers {
|
|
developer {
|
|
id = 'meledy'
|
|
name = 'Meledy'
|
|
email = 'meledy@grasscutter.io' // not a real email kek
|
|
}
|
|
}
|
|
scm {
|
|
connection = 'scm:git:git@github.com:Grasscutters/Grasscutter.git'
|
|
developerConnection = 'scm:git:ssh://github.com:Grasscutters/Grasscutter.git'
|
|
url = 'https://github.com/Grasscutters/Grasscutter'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
repositories {
|
|
maven {
|
|
if(version.endsWith('-dev')) {
|
|
println ("Publishing to 4benj-maven")
|
|
url 'https://repo.4benj.com/releases'
|
|
name '4benj-maven'
|
|
credentials {
|
|
username System.getenv('benj_maven_username')
|
|
password System.getenv('benj_maven_token')
|
|
}
|
|
} else {
|
|
println ("Publishing to sonatype")
|
|
def releasesRepoUrl = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
|
|
def snapshotsRepoUrl = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
|
|
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
|
|
|
|
name = 'sonatype'
|
|
credentials(PasswordCredentials)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
clean {
|
|
delete protobuf.generatedFilesBaseDir
|
|
}
|
|
|
|
protobuf {
|
|
protoc {
|
|
// The artifact spec for the Protobuf Compiler
|
|
artifact = 'com.google.protobuf:protoc:3.18.1'
|
|
}
|
|
// generatedFilesBaseDir = "$projectDir/src/main/java/emu/grasscutter/net/proto/"
|
|
generatedFilesBaseDir = "$projectDir/src/generated/"
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
proto {
|
|
// In addition to the default 'src/main/proto'
|
|
srcDir 'src/generated'
|
|
}
|
|
java {
|
|
srcDir 'src/java'
|
|
}
|
|
}
|
|
}
|
|
|
|
idea {
|
|
module {
|
|
// proto files and generated Java files are automatically added as
|
|
// source dirs.
|
|
// If you have additional sources, add them here:
|
|
sourceDirs += file("/proto/");
|
|
}
|
|
}
|
|
|
|
eclipse {
|
|
classpath {
|
|
file.whenMerged { cp ->
|
|
cp.entries.add( new org.gradle.plugins.ide.eclipse.model.SourceFolder('src/generated/main/java', null) )
|
|
}
|
|
}
|
|
}
|
|
|
|
signing {
|
|
if(!version.endsWith('-dev')) {
|
|
sign publishing.publications.mavenJava
|
|
}
|
|
}
|
|
|
|
javadoc {
|
|
options.encoding = 'UTF-8'
|
|
if(JavaVersion.current().isJava9Compatible()) {
|
|
options.addBooleanOption('html5', true)
|
|
}
|
|
}
|
|
|
|
task injectGitHash {
|
|
def gitCommitHash = {
|
|
try {
|
|
return 'git rev-parse --verify --short HEAD'.execute().text.trim()
|
|
} catch (ignored) {
|
|
return "GIT_NOT_FOUND"
|
|
}
|
|
}
|
|
|
|
new File(projectDir, "src/main/java/emu/grasscutter/BuildConfig.java").text =
|
|
"""package emu.grasscutter;
|
|
|
|
public final class BuildConfig {
|
|
public static final String VERSION = \"${version}\";
|
|
public static final String GIT_HASH = \"${gitCommitHash()}\";
|
|
}"""
|
|
|
|
}
|
|
|
|
processResources {
|
|
dependsOn "generateProto"
|
|
}
|