[Refactoring] Moved annotations to the core repository and moved the gi protos into a sub project

This commit is contained in:
hartie95 2024-01-08 00:37:12 +01:00
parent cb458b49dc
commit b1d43d9f3a
893 changed files with 6788 additions and 6829 deletions

View File

@ -1,101 +1,42 @@
group = "org.anime_game_servers.multi_proto"
version = "0.1"
plugins {
kotlin("multiplatform") version "1.9.21"
id("com.google.devtools.ksp") version "1.9.21-1.0.16"
id("maven-publish")
kotlin("multiplatform") version "1.9.22" apply false
}
// until the rework for proto handlng is done, we use this to compile packages for specific game versions
val protoVersion = 32
group = "org.anime_game_servers"
version = "0.1.$protoVersion"
repositories {
mavenLocal()
mavenCentral()
}
kotlin {
jvm {
jvmToolchain(17)
withJava()
testRuns["test"].executionTask.configure {
useJUnitPlatform()
allprojects {
apply(plugin ="maven-publish")
repositories {
mavenLocal()
mavenCentral()
maven {
name = "ags-mvn-Releases"
url = uri("https://mvn.animegameservers.org/releases")
}
}
js(IR) {
browser {
commonWebpackConfig {
cssSupport {
enabled.set(true)
dependencies {
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
publishing {
repositories {
maven {
name = "agsmvnrelease"
url = uri("https://mvn.animegameservers.org/releases")
credentials(PasswordCredentials::class)
authentication {
create<BasicAuthentication>("basic")
}
}
}
}
val hostOs = System.getProperty("os.name")
val isMingwX64 = hostOs.startsWith("Windows")
val nativeTarget = when {
hostOs == "Mac OS X" -> macosX64("native")
hostOs == "Linux" -> linuxX64("native")
isMingwX64 -> mingwX64("native")
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("pro.streem.pbandk:pbandk-runtime:0.14.2")
implementation(project(":annotations"))
}
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin/")
sourceSets.configureEach {
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val jvmMain by getting {
getTasksByName("jvmJar", true).forEach{
it.setProperty("zip64", true)
}
}
val jvmTest by getting
val jsMain by getting
val jsTest by getting
val nativeMain by getting
val nativeTest by getting
}
}
dependencies {
add("kspCommonMainMetadata", project(":processor"))
}
tasks {
/*withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
if (name != "kspCommonMainKotlinMetadata")
dependsOn("kspCommonMainKotlinMetadata")
}*/
sourcesJar{
dependsOn("kspCommonMainKotlinMetadata")
}
}
publishing {
repositories {
maven {
name = "agsmvnrelease"
url = uri("https://mvn.animegameservers.org/releases")
credentials(PasswordCredentials::class)
authentication {
create<BasicAuthentication>("basic")
}
}
}
publications {
create<MavenPublication>("maven") {
from(components["kotlin"])
artifactId = "multi-proto"
}
}
}
}

View File

@ -1,74 +0,0 @@
plugins {
kotlin("multiplatform")
id("maven-publish")
}
repositories {
mavenCentral()
}
group = "org.anime_game_servers"
version = "0.1"
kotlin {
jvm {
jvmToolchain(11)
withJava()
testRuns["test"].executionTask.configure {
useJUnitPlatform()
}
}
js(IR) {
browser {
commonWebpackConfig {
cssSupport {
enabled.set(true)
}
}
}
}
val hostOs = System.getProperty("os.name")
val isMingwX64 = hostOs.startsWith("Windows")
val nativeTarget = when {
hostOs == "Mac OS X" -> macosX64("native")
hostOs == "Linux" -> linuxX64("native")
isMingwX64 -> mingwX64("native")
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
}
sourceSets {
val commonMain by getting
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val jvmMain by getting
val jvmTest by getting
val jsMain by getting
val jsTest by getting
val nativeMain by getting
val nativeTest by getting
}
}
publishing {
repositories {
maven {
name = "agsmvnrelease"
url = uri("https://mvn.animegameservers.org/releases")
credentials(PasswordCredentials::class)
authentication {
create<BasicAuthentication>("basic")
}
}
}
publications {
create<MavenPublication>("maven") {
from(components["kotlin"])
artifactId = "annotations"
}
}
}

View File

@ -1,5 +0,0 @@
package org.anime_game_servers.annotations
@Target(AnnotationTarget.FIELD)
@Retention(AnnotationRetention.SOURCE)
annotation class AltName(vararg val altNames: String)

View File

@ -1,9 +0,0 @@
package org.anime_game_servers.annotations
enum class CommandType {
REQUEST,
RESPONSE,
NOTIFY,
CLIENT,
BOTH
}

View File

@ -1,4 +0,0 @@
package org.anime_game_servers.annotations
@Target(AnnotationTarget.PROPERTY)
annotation class OneOf(vararg val types: OneOfEntry, val allowTypedBasedMapping: Boolean = true)

View File

@ -1,6 +0,0 @@
package org.anime_game_servers.annotations
import kotlin.reflect.KClass
@Target(AnnotationTarget.PROPERTY)
annotation class OneOfEntry(val type: KClass<*>, vararg val name: String, val addedIn: Int = 0, val removedIn: Int=99999)

View File

@ -1,4 +0,0 @@
package org.anime_game_servers.annotations
interface OneOfType {
}

View File

@ -1,7 +0,0 @@
package org.anime_game_servers.annotations
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class ProtoCommand(val type: CommandType, vararg val alternateNames: String){
}

View File

@ -1,5 +0,0 @@
package org.anime_game_servers.annotations
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class ProtoEnum(val parentClass: String = "")

View File

@ -1,5 +0,0 @@
package org.anime_game_servers.annotations
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class ProtoModel(val parentClass: String = "", vararg val alternativeNames: String)

View File

@ -1,5 +0,0 @@
package org.anime_game_servers.annotations
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class ProtoVersionEnum()

View File

@ -1,12 +1,22 @@
plugins {
kotlin("jvm")
kotlin("kapt")
}
repositories {
mavenCentral()
kotlin("multiplatform")
}
dependencies {
implementation(project(":annotations"))
implementation("com.google.devtools.ksp:symbol-processing-api:1.9.21-1.0.16")
kotlin {
jvm {
jvmToolchain(17)
withJava()
testRuns["test"].executionTask.configure {
useJUnitPlatform()
}
}
sourceSets {
val jvmMain by getting {
dependencies {
implementation("com.google.devtools.ksp:symbol-processing-api:1.9.21-1.0.16")
}
}
val jvmTest by getting
}
}

View File

@ -30,9 +30,9 @@ abstract class BaseGenerator(
}
open fun addImports(file:OutputStream, classInfo: ClassInfo){
file += "import messages.VERSION\n"+
"import annotations.AddedIn\n"+
"import annotations.RemovedIn\n"+
file += "import $VERSION_ENUM_CLASS\n"+
"import $BASE_ADDED_IN_ANNOTATION\n"+
"import $BASE_REMOVED_IN_ANNOTATION\n"+
"import kotlin.jvm.JvmStatic\n"+
"import kotlin.jvm.JvmOverloads\n"
}

View File

@ -1,13 +1,7 @@
import com.google.devtools.ksp.processing.KSPLogger
import com.google.devtools.ksp.processing.Resolver
import com.google.devtools.ksp.symbol.KSAnnotation
import com.google.devtools.ksp.symbol.KSDeclaration
import com.google.devtools.ksp.symbol.KSPropertyDeclaration
import com.google.devtools.ksp.symbol.KSType
import org.anime_game_servers.annotations.OneOf
import java.io.OutputStream
import kotlin.math.log
import kotlin.reflect.KClass
open class DataGenerator(
logger: KSPLogger,
@ -20,7 +14,7 @@ open class DataGenerator(
"import interfaces.ProtoModelDecoder\n" +
"import pbandk.decodeFromByteArray\n"+
"import pbandk.encodeToByteArray\n"+
"import org.anime_game_servers.annotations.OneOf\n"
"import $PROTO_ONE_OF_ANNOTATION\n"
}
override fun addConstructor(file: OutputStream, classInfo:ClassInfo){
@ -52,9 +46,9 @@ open class DataGenerator(
file.id(4) +="public sealed class ${it.wrapperName}<T>(val value: T) : ProtoModel {\n"
file.id(8) +="public class ${it.unknownName}() : ${it.wrapperName}<UnknownModel>(UnknownModel())\n"
file.id(8) +="public class UnknownModel() : ProtoModel{\n"
file.id(12) +="override fun encodeToByteArray(version: messages.VERSION): ByteArray? = null\n"
file.id(12) +="override fun encodeToByteArray(version: $VERSION_ENUM_CLASS): ByteArray? = null\n"
file.id(8) +="}\n"
file.id(8) +="override fun encodeToByteArray(version: messages.VERSION): ByteArray? {\n"
file.id(8) +="override fun encodeToByteArray(version: $VERSION_ENUM_CLASS): ByteArray? {\n"
file.id(12) +="return when(value) {\n"
file.id(16) += "is ProtoModel -> value.encodeToByteArray(version)\n"
// todo maybe add support for some internal classes like String and Int?
@ -111,7 +105,7 @@ open class DataGenerator(
}
override fun addEncodeMethods(file: OutputStream, classInfo: ClassInfo) {
file.id(4) +="override fun encodeToByteArray(version:VERSION) : ByteArray? {\n"
file.id(4) +="override fun encodeToByteArray(version:$VERSION_ENUM_CLASS_NAME) : ByteArray? {\n"
file.id(8) +="return when (version.namespace) {\n"
classInfo.protoSet.forEach { proto ->
file.id(12) +="\"${proto.versionPackage}\" -> " + "${proto.encodeFunctionName}().encodeToByteArray()\n"
@ -141,7 +135,7 @@ open class DataGenerator(
override fun addParsingMethods(file: OutputStream, classInfo: ClassInfo) {
file.id(8) +="@JvmStatic\n"
file.id(8) +="fun parseBy(data: ByteArray, version:VERSION): ${classInfo.name} {\n"
file.id(8) +="fun parseBy(data: ByteArray, version:$VERSION_ENUM_CLASS_NAME): ${classInfo.name} {\n"
file.id(12) +="return when(version.namespace) {\n"
classInfo.protoSet.forEach { proto ->
file.id(16) +="\"${proto.versionPackage}\" -> {\n"

View File

@ -33,7 +33,7 @@ class EnumGenerator(
override fun addEncodeMethods(file: OutputStream, classInfo: ClassInfo) {
//TODO add AltName handling
file.id(4) +="fun encodeToByteArray(version:VERSION) : Int? {\n"
file.id(4) +="fun encodeToByteArray(version:$VERSION_ENUM_CLASS_NAME) : Int? {\n"
file.id(8) +="return when (version.namespace) {\n"
classInfo.protoSet.forEach { proto ->
file.id(12) +="\"${proto.versionPackage}\" -> " + "${proto.encodeFunctionName}().value\n"
@ -63,7 +63,7 @@ class EnumGenerator(
override fun addParsingMethods(file: OutputStream, classInfo: ClassInfo) {
file.id(8) +="@JvmStatic\n"
file.id(8) +="fun parseBy(value: Int, version:VERSION): ${classInfo.name} {\n"
file.id(8) +="fun parseBy(value: Int, version:$VERSION_ENUM_CLASS_NAME): ${classInfo.name} {\n"
file.id(12) +="return when(version.namespace) {\n"
classInfo.protoSet.forEach { proto ->
file.id(16) +="\"${proto.versionPackage}\" -> {\n"

View File

@ -3,16 +3,22 @@ import com.google.devtools.ksp.processing.*
import com.google.devtools.ksp.symbol.*
import java.io.File
import java.io.OutputStream
import kotlin.math.log
const val BASE_ANNOTATION_PATH = "org.anime_game_servers.annotations"
const val PROTO_MODEL_ANNOTATION = "$BASE_ANNOTATION_PATH.ProtoModel"
const val PROTO_ENUM_ANNOTATION = "$BASE_ANNOTATION_PATH.ProtoEnum"
const val PROTO_COMMAND_ANNOTATION = "$BASE_ANNOTATION_PATH.ProtoCommand"
const val PROTO_VERSION_ENUM_ANNOTATION = "$BASE_ANNOTATION_PATH.ProtoVersionEnum"
const val BASE_ANNOTATION_PATH = "org.anime_game_servers.core.base.annotations"
const val BASE_PROTO_ANNOTATION_PATH = "$BASE_ANNOTATION_PATH.proto"
const val PROTO_MODEL_ANNOTATION = "$BASE_PROTO_ANNOTATION_PATH.ProtoModel"
const val PROTO_ENUM_ANNOTATION = "$BASE_PROTO_ANNOTATION_PATH.ProtoEnum"
const val PROTO_COMMAND_ANNOTATION = "$BASE_PROTO_ANNOTATION_PATH.ProtoCommand"
const val PROTO_VERSION_ENUM_ANNOTATION = "$BASE_PROTO_ANNOTATION_PATH.ProtoVersionEnum"
const val PROTO_ONE_OF_ANNOTATION = "$BASE_PROTO_ANNOTATION_PATH.OneOf"
const val BASE_ADDED_IN_ANNOTATION = "$BASE_ANNOTATION_PATH.AddedIn"
const val BASE_REMOVED_IN_ANNOTATION = "$BASE_ANNOTATION_PATH.RemovedIn"
const val COMPILED_PROTO_ANNOTATION = "pbandk.Export"
const val VERSION_ENUM_CLASS = "messages.VERSION"
//const val VERSION_ENUM_CLASS = "messages.VERSION"
const val VERSION_ENUM_CLASS_NAME = "Version"
const val VERSION_ENUM_CLASS = "org.anime_game_servers.core.base.$VERSION_ENUM_CLASS_NAME"
/**
@ -141,7 +147,7 @@ class FunctionProcessor(
prop.simpleName.asString()
}
val dependencies = mutableSetOf<KSFile>().apply{
add(versionClass.containingFile!!)
//add(versionClass.containingFile!!)
}
idFiles.forEach {
@ -182,11 +188,15 @@ class FunctionProcessor(
val compiledProtos = resolver.getClassSymbolsByAnnotation(COMPILED_PROTO_ANNOTATION)
val versionClass = resolver.getClassSymbolsByAnnotation(PROTO_VERSION_ENUM_ANNOTATION).firstOrNull()
val versionClassWorkaround = resolver.getClassSymbolsByAnnotation(PROTO_VERSION_ENUM_ANNOTATION).firstOrNull()
val versionClass = resolver.getClassDeclarationByName(VERSION_ENUM_CLASS) ?: run {
logger.error("[resources] Unable to find version class $VERSION_ENUM_CLASS")
return emptyList()
}
val resourcesPath = versionClass?.let {
val resourcesPath = versionClassWorkaround?.let {
it.containingFile?.let { file ->
val basePath = file.filePath.removeSuffix("kotlin/${VERSION_ENUM_CLASS.replace('.', '/')}.kt")
val basePath = file.filePath.removeSuffix("kotlin/messages/VERSION.kt")
logger.warn("[resources] BasePath: $basePath")
basePath+"resources"
}?: run {

View File

@ -57,7 +57,7 @@ class PackageIdGenerator(
fun addVersionMapperImports(file: OutputStream) {
file += "import kotlin.jvm.JvmStatic\n"
file += "import messages.VERSION\n\n"
file += "import $VERSION_ENUM_CLASS\n\n"
}
fun addVersionMapperBody(file: OutputStream, versions: Collection<String>) {
@ -68,9 +68,9 @@ class PackageIdGenerator(
fun generateVersionPackageMapperFun(file: OutputStream, versions: Collection<String>) {
file.id(4) += ("@JvmStatic\n")
file.id(4) += ("fun getMapper(version:VERSION) = when(version) {\n")
file.id(4) += ("fun getMapper(version:$VERSION_ENUM_CLASS_NAME) = when(version) {\n")
versions.forEach { version ->
file.id(8) += ("VERSION.$version -> $version()\n")
file.id(8) += ("$VERSION_ENUM_CLASS_NAME.$version -> $version()\n")
}
file.id(8) += ("else -> null\n")
file.id(4) += ("}\n")

96
gi/build.gradle.kts Normal file
View File

@ -0,0 +1,96 @@
plugins {
kotlin("multiplatform")
id("com.google.devtools.ksp")
}
// until the rework for proto handling is done, we use this to compile packages for specific game versions
val protoVersion = 32
group = "org.anime_game_servers.multi_proto"
version = "0.1.$protoVersion"
kotlin {
jvm {
jvmToolchain(17)
withJava()
testRuns["test"].executionTask.configure {
useJUnitPlatform()
}
}
js(IR) {
browser {
commonWebpackConfig {
cssSupport {
enabled.set(true)
}
}
}
}
val hostOs = System.getProperty("os.name")
val isMingwX64 = hostOs.startsWith("Windows")
val nativeTarget = when {
hostOs == "Mac OS X" -> macosX64("native")
hostOs == "Linux" -> linuxX64("native")
isMingwX64 -> mingwX64("native")
else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("pro.streem.pbandk:pbandk-runtime:0.14.2")
implementation("org.anime_game_servers.core:gi:0.1")
}
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin/")
sourceSets.configureEach {
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val jvmMain by getting {
getTasksByName("jvmJar", true).forEach{
it.setProperty("zip64", true)
}
}
val jvmTest by getting
val jsMain by getting
val jsTest by getting
val nativeMain by getting
val nativeTest by getting
}
}
dependencies {
add("kspCommonMainMetadata", project(":processor"))
//add("kspJvm", project(":processor"))
//add("kspJs", project(":processor"))
}
tasks {
sourcesJar{
dependsOn("kspCommonMainKotlinMetadata")
}
getTasksByName("jvmSourcesJar", false).forEach {
it.dependsOn("kspCommonMainKotlinMetadata")
}
getTasksByName("jsSourcesJar", false).forEach {
it.dependsOn("kspCommonMainKotlinMetadata")
}
getTasksByName("nativeSourcesJar", false).forEach {
it.dependsOn("kspCommonMainKotlinMetadata")
}
withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
if (name != "kspCommonMainKotlinMetadata")
dependsOn("kspCommonMainKotlinMetadata")
}
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["kotlin"])
artifactId = "gi-multi-proto"
}
}
}

View File

@ -0,0 +1,15 @@
package data.ability
import org.anime_game_servers.core.base.annotations.AddedIn
import data.general.ability.AbilityControlBlock
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AbilityChangeNotify {
var entityId: Int
var abilityControlBlock: AbilityControlBlock
}

View File

@ -0,0 +1,15 @@
package data.achievement
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_0_0)
@ProtoModel
interface Achievement {
var finishedTimestamp: Int
var status: Status
var curProgress: Int
var id: Int
var totalProgress: Int
}

View File

@ -0,0 +1,13 @@
package data.achievement
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.NOTIFY)
interface AchievementAllDataNotify {
var achievementList: List<Achievement>
var rewardTakenGoalIdList: List<Int>
}

View File

@ -0,0 +1,12 @@
package data.achievement
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.NOTIFY)
interface AchievementUpdateNotify {
var achievementList: List<Achievement>
}

View File

@ -0,0 +1,19 @@
package data.achievement
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.annotations.proto.AltName
import org.anime_game_servers.core.base.annotations.proto.ProtoEnum
@AddedIn(Version.GI_1_0_0)
@ProtoEnum("Achievement")
enum class Status {
@AltName("STATUS_INVALID")
INVALID,
@AltName("STATUS_UNFINISHED")
UNFINISHED,
@AltName("STATUS_FINISHED")
FINISHED,
@AltName("STATUS_REWARD_TAKEN")
REWARD_TAKEN
}

View File

@ -0,0 +1,13 @@
package data.achievement
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.REQUEST)
interface TakeAchievementGoalRewardReq {
var idList: List<Int>
}

View File

@ -0,0 +1,15 @@
package data.achievement
import org.anime_game_servers.core.base.annotations.AddedIn
import data.general.item.ItemParam
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.RESPONSE)
interface TakeAchievementGoalRewardRsp {
var idList: List<Int>
var itemList: List<ItemParam>
var retCode: Int
}

View File

@ -0,0 +1,13 @@
package data.achievement
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.REQUEST)
interface TakeAchievementRewardReq {
var idList: List<Int>
}

View File

@ -0,0 +1,15 @@
package data.achievement
import org.anime_game_servers.core.base.annotations.AddedIn
import data.general.item.ItemParam
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.RESPONSE)
interface TakeAchievementRewardRsp {
var idList: List<Int>
var itemList: List<ItemParam>
var retCode: Int
}

View File

@ -0,0 +1,14 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
interface ActivityCoinInfoNotify {
var scheduleId: Int
var activityId: Int
var activityCoinMap: Map<Int, Int>
}

View File

@ -0,0 +1,15 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface ActivityCondStateChangeNotify {
var scheduleId: Int
var activityId: Int
var meetCondList: List<Int>
var expireCondList: List<Int>
}

View File

@ -1,6 +1,6 @@
package data.activity
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@ProtoModel
internal interface ActivityDetailInfo{

View File

@ -1,6 +1,6 @@
package data.activity
import annotations.AddedIn
import org.anime_game_servers.core.base.annotations.AddedIn
import data.activity.aster.AsterActivityDetailInfo
import data.activity.crucible.CrucibleActivityDetailInfo
import data.activity.delivery.DeliveryActivityDetailInfo
@ -14,13 +14,27 @@ import data.activity.summer_time.SummerTimeDetailInfo
import data.activity.summer_time_v2.SummerTimeV2DetailInfo
import data.activity.trial.TrialAvatarActivityDetailInfo
import data.activity.user_generated_content.UgcActivityDetailInfo
import messages.*
import org.anime_game_servers.annotations.OneOf
import org.anime_game_servers.annotations.OneOfEntry
import org.anime_game_servers.annotations.OneOfType
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.proto.OneOf
import org.anime_game_servers.core.base.annotations.proto.OneOfEntry
import org.anime_game_servers.core.base.annotations.proto.OneOfType
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(VERSION.V0_9_0)
import org.anime_game_servers.core.base.Version.GI_0_9_0
import org.anime_game_servers.core.base.Version.GI_1_0_0
import org.anime_game_servers.core.base.Version.GI_1_1_0
import org.anime_game_servers.core.base.Version.GI_1_3_0
import org.anime_game_servers.core.base.Version.GI_1_4_0
import org.anime_game_servers.core.base.Version.GI_1_5_0
import org.anime_game_servers.core.base.Version.GI_1_6_0
import org.anime_game_servers.core.base.Version.GI_2_0_0
import org.anime_game_servers.core.base.Version.GI_2_2_0
import org.anime_game_servers.core.base.Version.GI_2_4_0
import org.anime_game_servers.core.base.Version.GI_2_5_0
import org.anime_game_servers.core.base.Version.GI_2_6_0
import org.anime_game_servers.core.base.Version.GI_2_7_0
import org.anime_game_servers.core.base.Version.GI_2_8_0
import org.anime_game_servers.core.base.Version.GI_3_2_0
@AddedIn(GI_0_9_0)
@ProtoModel
internal interface ActivityInfo {
var activityId: Int
@ -32,33 +46,33 @@ internal interface ActivityInfo {
var isFinished: Boolean
var isStarting: Boolean
var watcherInfoList: List<ActivityWatcherInfo>
@AddedIn(VERSION.V1_0_0)
@AddedIn(GI_1_0_0)
var meetCondList: List<Int>
@AddedIn(VERSION.V1_0_0)
@AddedIn(GI_1_0_0)
var expireCondList: List<Int>
@AddedIn(VERSION.V1_3_0)
@AddedIn(GI_1_3_0)
var selectedAvatarRewardId: Int
@AddedIn(VERSION.V1_4_0)
@AddedIn(GI_1_4_0)
var activityCoinMap: Map<Int, Int>
@AddedIn(VERSION.V1_5_0)
@AddedIn(GI_1_5_0)
var curScore: Int
@AddedIn(VERSION.V1_5_0)
@AddedIn(GI_1_5_0)
var scoreLimit: Int
@AddedIn(VERSION.V1_5_0)
@AddedIn(GI_1_5_0)
var takenRewardList: List<Int>
@AddedIn(VERSION.V1_6_0)
@AddedIn(GI_1_6_0)
var isHidden: Boolean
@AddedIn(VERSION.V2_0_0)
@AddedIn(GI_2_0_0)
var firstDayStartTime: Int
@AddedIn(VERSION.V2_4_0)
@AddedIn(GI_2_4_0)
var isBannerCleared: Boolean
@AddedIn(VERSION.V2_6_0)
@AddedIn(GI_2_6_0)
var isQuickOpen: Boolean
@AddedIn(VERSION.V2_7_0)
@AddedIn(GI_2_7_0)
var wishGiftNumMap: Map<Int, Int>
@AddedIn(VERSION.V2_8_0)
@AddedIn(GI_2_8_0)
var activityPushTipsDataList: List<ActivityPushTipsData>
@AddedIn(VERSION.V3_2_0)
@AddedIn(GI_3_2_0)
var isCommonContentClosed: Boolean
//TODO 3.4 has a UInt list named fdjefldhela, find usage and name it

View File

@ -0,0 +1,12 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface ActivityInfoNotify {
var activityInfo: ActivityInfo
}

View File

@ -0,0 +1,13 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
// todo maybe send by the client?
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
interface ActivityPlayOpenAnimNotify {
var activityId: Int
}

View File

@ -1,6 +1,6 @@
package data.activity
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@ProtoModel
interface ActivityPushTipsData {

View File

@ -1,6 +1,6 @@
package data.activity
import org.anime_game_servers.annotations.ProtoEnum
import org.anime_game_servers.core.base.annotations.proto.ProtoEnum
@ProtoEnum
enum class ActivityPushTipsState {

View File

@ -0,0 +1,19 @@
package data.activity
import org.anime_game_servers.core.base.annotations.RemovedIn
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_CB2)
@ProtoModel
interface ActivityScheduleInfo {
var activityId: Int
var isOpen: Boolean
var scheduleId: Int
var beginTime: Int
var endTime: Int
@AddedIn(Version.GI_0_9_0)
@RemovedIn(Version.GI_1_0_0)
var hasReward: Boolean
}

View File

@ -0,0 +1,13 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface ActivityScheduleInfoNotify {
var activityScheduleList: List<ActivityScheduleInfo>
var remainFlySeaLampNum: Int
}

View File

@ -0,0 +1,13 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_3_0)
@ProtoCommand(CommandType.REQUEST)
interface ActivitySelectAvatarCardReq {
var activityId: Int
var rewardId: Int
}

View File

@ -0,0 +1,14 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_3_0)
@ProtoCommand(CommandType.RESPONSE)
interface ActivitySelectAvatarCardRsp {
var activityId: Int
var rewardId: Int
var retcode: Int
}

View File

@ -0,0 +1,13 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.REQUEST)
interface ActivityTakeWatcherRewardReq {
var activityId: Int
var watcherId: Int
}

View File

@ -0,0 +1,14 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.RESPONSE)
interface ActivityTakeWatcherRewardRsp {
var activityId: Int
var watcherId: Int
var retcode: Int
}

View File

@ -0,0 +1,13 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
interface ActivityUpdateWatcherNotify {
var activityId: Int
var watcherInfo: ActivityWatcherInfo
}

View File

@ -0,0 +1,14 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_0_9_0)
@ProtoModel
interface ActivityWatcherInfo {
var curProgress: Int
var isTakenReward: Boolean
var totalProgress: Int
var watcherId: Int
}

View File

@ -0,0 +1,12 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.REQUEST)
interface GetActivityInfoReq {
var activityIdList: List<Int>
}

View File

@ -0,0 +1,17 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.RESPONSE)
internal interface GetActivityInfoRsp {
var retcode: Int
var activityInfoList: List<ActivityInfo>
@AddedIn(Version.GI_1_2_0)
var activatedSaleIdList: List<Int>
//@AddedIn(Version.GI_2_1_0)
//var disableTransferPointInteractionList: Map<Int, Int>
}

View File

@ -0,0 +1,11 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_CB2)
@ProtoCommand(CommandType.REQUEST)
interface GetActivityScheduleReq {
}

View File

@ -0,0 +1,14 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_CB2)
@ProtoCommand(CommandType.RESPONSE)
interface GetActivityScheduleRsp {
var activityScheduleList: List<ActivityScheduleInfo>
var remainingFlySeaLampNum: Int
var retcode: Int
}

View File

@ -0,0 +1,12 @@
package data.activity
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface LoadActivityTerrainNotify {
var activityId: Int
}

View File

@ -1,10 +1,10 @@
package data.activity.announce
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(VERSION.V0_9_0)
@AddedIn(Version.GI_0_9_0)
@ProtoModel
interface AnnounceData {
var configId: Int
@ -15,6 +15,6 @@ interface AnnounceData {
var dungeonConfirmText: String
var centerSystemFrequency: Int
var countDownFrequency: Int
@AddedIn(VERSION.V1_1_0)
@AddedIn(Version.GI_1_1_0)
var isCenterSystemLast5EveryMinutes: Boolean
}

View File

@ -0,0 +1,12 @@
package data.activity.announce
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface ServerAnnounceNotify {
var announceDataList: List<AnnounceData>
}

View File

@ -0,0 +1,12 @@
package data.activity.announce
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_0_9_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface ServerAnnounceRevokeNotify {
var configIdList: List<Int>
}

View File

@ -1,10 +1,10 @@
package data.activity.aster
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(VERSION.V1_1_0)
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface AsterActivityDetailInfo {
var asterLittle: AsterLittleDetailInfo

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface AsterLargeDetailInfo {
var isOpen: Boolean
var beginTime: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AsterLargeInfoNotify {
var info: AsterLargeDetailInfo
}

View File

@ -1,10 +1,10 @@
package data.activity.aster
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(VERSION.V1_1_0)
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface AsterLittleDetailInfo {
var isOpen: Boolean

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AsterLittleInfoNotify {
var info: AsterLittleDetailInfo
}

View File

@ -1,11 +1,11 @@
package data.activity.aster
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.AltName
import org.anime_game_servers.annotations.ProtoEnum
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.AltName
import org.anime_game_servers.core.base.annotations.proto.ProtoEnum
@AddedIn(VERSION.V1_1_0)
@AddedIn(Version.GI_1_1_0)
@ProtoEnum
enum class AsterLittleStageState {
@AltName("ASTER_LITTLE_STAGE_STATE_NONE")

View File

@ -0,0 +1,13 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import data.general.Vector
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface AsterMidCampInfo {
var campId: Int
var pos: Vector
}

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AsterMidCampInfoNotify {
var info: AsterMidCampInfo
}

View File

@ -0,0 +1,14 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface AsterMidDetailInfo {
var isOpen: Boolean
var campList: List<AsterMidCampInfo>
var collectCount: Int
var beginTime: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AsterMidInfoNotify {
var info: AsterMidDetailInfo
}

View File

@ -0,0 +1,13 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AsterMiscInfoNotify {
var asterCredit: Int
var asterToken: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface AsterProgressDetailInfo {
var count: Int
var lastAutoAddTime: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface AsterProgressInfoNotify {
var info: AsterProgressDetailInfo
}

View File

@ -0,0 +1,14 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.REQUEST)
interface SelectAsterMidDifficultyReq {
var scheduleId: Int
var gadgetEntityId: Int
var difficultyId: Int
}

View File

@ -0,0 +1,15 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.RESPONSE)
interface SelectAsterMidDifficultyRsp {
var scheduleId: Int
var gadgetEntityId: Int
var difficultyId: Int
var retcode: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.REQUEST)
interface TakeAsterSpecialRewardReq {
var scheduleId: Int
}

View File

@ -0,0 +1,13 @@
package data.activity.aster
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.RESPONSE)
interface TakeAsterSpecialRewardRsp {
var scheduleId: Int
var retcode: Int
}

View File

@ -0,0 +1,16 @@
package data.activity.crucible
import org.anime_game_servers.core.base.annotations.AddedIn
import data.general.Vector
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_0_9_0)
@ProtoModel
interface CrucibleActivityDetailInfo {
var costTime : Int
var uidInfoList: List<CrucibleBattleUidInfo>
var pos: Vector
@AddedIn(Version.GI_1_0_0)
var battleWorldLevel: Int
}

View File

@ -0,0 +1,14 @@
package data.activity.crucible
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_0_9_0)
@ProtoModel
interface CrucibleBattleUidInfo {
var uid: Int
var nickname: String
var icon: Int
var onlineId : String
}

View File

@ -0,0 +1,13 @@
package data.activity.delivery
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface DeliveryActivityDetailInfo {
var dayIndex: Int
var finishedDeliveryQuestIndex: List<Int>
var isTakenReward: Boolean
}

View File

@ -0,0 +1,14 @@
package data.activity.delivery
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface FinishDeliveryNotify {
var scheduleId: Int
var dayIndex: Int
var finishedQuestIndex: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.delivery
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.REQUEST)
interface TakeDeliveryDailyRewardReq {
var scheduleId: Int
}

View File

@ -0,0 +1,13 @@
package data.activity.delivery
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.RESPONSE)
interface TakeDeliveryDailyRewardRsp {
var scheduleId: Int
var retcode: Int
}

View File

@ -0,0 +1,18 @@
package data.activity.echo_shell
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
import org.anime_game_servers.core.base.Version.GI_1_6_0
import org.anime_game_servers.core.base.Version.GI_2_8_0
@AddedIn(GI_1_6_0)
@ProtoModel
interface EchoShellDetailInfo {
var takenRewardList: List<Int>
var shellList: List<Int>
@AddedIn(GI_2_8_0)
var passDungeonList: List<Int>
@AddedIn(GI_2_8_0)
var summerTimeDungeonList: List<SummerTimeDungeonInfo>
}

View File

@ -0,0 +1,11 @@
package data.activity.echo_shell
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_6_0)
@ProtoModel
interface EchoShellInfo {
var shellId: Int
}

View File

@ -0,0 +1,13 @@
package data.activity.echo_shell
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.annotations.RemovedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_6_0)
@ProtoCommand(CommandType.REQUEST)
interface EchoShellTakeRewardReq {
var rewardId: Int
}

View File

@ -0,0 +1,15 @@
package data.activity.echo_shell
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.annotations.RemovedIn
import data.activity.sea_lamp.SeaLampActivityPlayerInfo
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_6_0)
@ProtoCommand(CommandType.RESPONSE)
interface EchoShellTakeRewardRsp {
var rewardId: Int
var retcode: Int
}

View File

@ -0,0 +1,12 @@
package data.activity.echo_shell
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_6_0)
@ProtoCommand(CommandType.NOTIFY)
interface EchoShellUpdateNotify {
var shellId: Int
}

View File

@ -1,10 +1,10 @@
package data.activity.echo_shell
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(VERSION.V2_8_0)
@AddedIn(Version.GI_2_8_0)
@ProtoModel
interface SummerTimeDungeonInfo {
var takenChestCount: Int

View File

@ -0,0 +1,13 @@
package data.activity.flight
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface FlightActivityDetailInfo {
var dailyRecordList: List<FlightDailyRecord>
var previewRewardId: Int
var minOpenPlayerTime: Int
}

View File

@ -0,0 +1,13 @@
package data.activity.flight
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.REQUEST)
interface FlightActivityRestartReq {
var scheduleId: Int
var groupId: Int
}

View File

@ -0,0 +1,14 @@
package data.activity.flight
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.RESPONSE)
interface FlightActivityRestartRsp {
var scheduleId: Int
var groupId: Int
var retcode: Int
}

View File

@ -1,11 +1,11 @@
package data.activity.flight
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.CommandType
import org.anime_game_servers.annotations.ProtoCommand
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(VERSION.V1_1_0)
@AddedIn(Version.GI_1_1_0)
@ProtoCommand(CommandType.NOTIFY)
internal interface FlightActivitySettleNotify {
var isSuccess: Boolean

View File

@ -0,0 +1,15 @@
package data.activity.flight
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(Version.GI_1_1_0)
@ProtoModel
interface FlightDailyRecord {
var isTouched: Boolean
var bestScore: Int
var startTime: Int
var watcherIdList: List<Int>
var groupId: Int
}

View File

@ -1,7 +1,7 @@
package data.activity.music_game
import data.activity.user_generated_content.music_game.UgcMusicBriefInfo
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
/**
* Information about a music game activity. This includes the current user records and user generated content.

View File

@ -1,6 +1,6 @@
package data.activity.music_game
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@ProtoModel
interface MusicGameRecord {

View File

@ -0,0 +1,44 @@
package data.activity.music_game
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_2_2_0)
@ProtoCommand(CommandType.REQUEST)
interface MusicGameSettleReq {
val musicBasicId: Int
val score: Int
val combo: Int
val correctHit: Int
@AddedIn(Version.GI_2_7_0)
val ugcGuid: Long
@AddedIn(Version.GI_2_7_0)
val isSaveScore: Boolean
@AddedIn(Version.GI_2_7_0)
val restartTimes: Int
@AddedIn(Version.GI_2_7_0)
val scoreRating: Int
@AddedIn(Version.GI_2_7_0)
val starRating: Int
@AddedIn(Version.GI_2_7_0)
val noteList: List<Int>
@AddedIn(Version.GI_2_7_0)
val maxCombo: Int
@AddedIn(Version.GI_2_7_0)
val isFullCombo: Int
@AddedIn(Version.GI_2_7_0)
val buttonList: List<Int>
@AddedIn(Version.GI_2_7_0)
val volume: Int
@AddedIn(Version.GI_2_7_0)
val isCustomDelay: Boolean
@AddedIn(Version.GI_2_7_0)
val delay: Int
@AddedIn(Version.GI_2_7_0)
val isCustomSpeed: Boolean
@AddedIn(Version.GI_2_7_0)
val speed: Float
}

View File

@ -0,0 +1,17 @@
package data.activity.music_game
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_2_2_0)
@ProtoCommand(CommandType.RESPONSE)
interface MusicGameSettleRsp {
var musicBasicId: Int
var isUnlockNextLevel: Boolean
var isNewRecord: Boolean
@AddedIn(Version.GI_2_7_0)
var ugcGuid: Long
var retcode: Int
}

View File

@ -0,0 +1,16 @@
package data.activity.music_game
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_2_2_0)
@ProtoCommand(CommandType.REQUEST)
interface MusicGameStartReq {
val musicBasicId: Int
@AddedIn(Version.GI_2_7_0)
val ugcGuid: Long
@AddedIn(Version.GI_2_7_0)
val isSaveScore: Boolean
}

View File

@ -0,0 +1,15 @@
package data.activity.music_game
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_2_2_0)
@ProtoCommand(CommandType.RESPONSE)
interface MusicGameStartRsp {
var musicBasicId: Int
@AddedIn(Version.GI_2_7_0)
var ugcGuid: Long
var retcode: Int
}

View File

@ -1,10 +1,10 @@
package data.activity.salesman
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.ProtoModel
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.ProtoModel
@AddedIn(VERSION.V1_0_0)
@AddedIn(Version.GI_1_0_0)
@ProtoModel
interface SalesmanActivityDetailInfo {
var status: SalesmanStatusType

View File

@ -0,0 +1,12 @@
package data.activity.salesman
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.REQUEST)
interface SalesmanDeliverItemReq {
var scheduleId: Int
}

View File

@ -0,0 +1,13 @@
package data.activity.salesman
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.RESPONSE)
interface SalesmanDeliverItemRsp {
var scheduleId: Int
var retcode: Int
}

View File

@ -1,11 +1,11 @@
package data.activity.salesman
import annotations.AddedIn
import messages.VERSION
import org.anime_game_servers.annotations.AltName
import org.anime_game_servers.annotations.ProtoEnum
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.AltName
import org.anime_game_servers.core.base.annotations.proto.ProtoEnum
@AddedIn(VERSION.V1_0_0)
@AddedIn(Version.GI_1_0_0)
@ProtoEnum
enum class SalesmanStatusType {
@AltName("SALESMAN_STATUS_TYPE_NONE")

View File

@ -0,0 +1,13 @@
package data.activity.salesman
import org.anime_game_servers.core.base.annotations.AddedIn
import org.anime_game_servers.core.base.Version
import org.anime_game_servers.core.base.annotations.proto.CommandType
import org.anime_game_servers.core.base.annotations.proto.ProtoCommand
@AddedIn(Version.GI_1_0_0)
@ProtoCommand(CommandType.REQUEST)
interface SalesmanTakeRewardReq {
var scheduleId: Int
var position: Int
}

Some files were not shown because too many files have changed in this diff Show More