mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-11-07 08:48:53 -05:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5661ae2cb0 | ||
|
|
9e9603d60d | ||
|
|
7fe91f7ad0 |
No files matched your search
@@ -71,6 +71,7 @@ object CobblemonCommands {
|
|||||||
MarkGiveAllCommand.register(dispatcher)
|
MarkGiveAllCommand.register(dispatcher)
|
||||||
PcSearchCommand.register(dispatcher)
|
PcSearchCommand.register(dispatcher)
|
||||||
PcTakeCommand.register(dispatcher)
|
PcTakeCommand.register(dispatcher)
|
||||||
|
ValidateTeamCommand.register(dispatcher)
|
||||||
|
|
||||||
// Possibly lock down registration if and only if under dev environment or running in an environment
|
// Possibly lock down registration if and only if under dev environment or running in an environment
|
||||||
// with a certain system environment variable set
|
// with a certain system environment variable set
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ object CobblemonPermissions {
|
|||||||
val CHANGE_BOX_COUNT = this.create("${COMMAND_PREFIX}boxcount", PermissionLevel.CHEAT_COMMANDS_AND_COMMAND_BLOCKS)
|
val CHANGE_BOX_COUNT = this.create("${COMMAND_PREFIX}boxcount", PermissionLevel.CHEAT_COMMANDS_AND_COMMAND_BLOCKS)
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val SPECTATE_BATTLE = this.create("${COMMAND_PREFIX}spectatebattle", PermissionLevel.ALL_COMMANDS)
|
val SPECTATE_BATTLE = this.create("${COMMAND_PREFIX}spectatebattle", PermissionLevel.ALL_COMMANDS)
|
||||||
|
@JvmStatic
|
||||||
|
val VALIDATE_TEAM = this.create("${COMMAND_PREFIX}validateteam", PermissionLevel.ALL_COMMANDS)
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val SEE_HIDDEN_NPCS = this.create("seehiddennpcs", PermissionLevel.CHEAT_COMMANDS_AND_COMMAND_BLOCKS)
|
val SEE_HIDDEN_NPCS = this.create("seehiddennpcs", PermissionLevel.CHEAT_COMMANDS_AND_COMMAND_BLOCKS)
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ data class BattleFormat(
|
|||||||
|
|
||||||
val GEN_9_SINGLES = BattleFormat(
|
val GEN_9_SINGLES = BattleFormat(
|
||||||
battleType = BattleTypes.SINGLES,
|
battleType = BattleTypes.SINGLES,
|
||||||
ruleSet = mutableSetOf(BattleRules.OBTAINABLE, BattleRules.PAST, BattleRules.UNOBTAINABLE)
|
ruleSet = mutableSetOf("Standard NatDex")
|
||||||
)
|
)
|
||||||
|
|
||||||
val GEN_9_DOUBLES = BattleFormat(
|
val GEN_9_DOUBLES = BattleFormat(
|
||||||
|
|||||||
@@ -121,6 +121,8 @@ object BattleRegistry {
|
|||||||
packedTeamBuilder.append("${if (pk.dmaxLevel < 10) pk.dmaxLevel else ""},")
|
packedTeamBuilder.append("${if (pk.dmaxLevel < 10) pk.dmaxLevel else ""},")
|
||||||
// Teratype
|
// Teratype
|
||||||
packedTeamBuilder.append("${pokemon.effectedPokemon.teraType.name},")
|
packedTeamBuilder.append("${pokemon.effectedPokemon.teraType.name},")
|
||||||
|
// Original nature
|
||||||
|
packedTeamBuilder.append("${pk.nature.name.path},")
|
||||||
|
|
||||||
team.add(packedTeamBuilder.toString())
|
team.add(packedTeamBuilder.toString())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,8 +34,9 @@ interface ShowdownService {
|
|||||||
fun resetRegistryData(type: String)
|
fun resetRegistryData(type: String)
|
||||||
fun resetAllRegistries()
|
fun resetAllRegistries()
|
||||||
fun indicateSpeciesInitialized() {}
|
fun indicateSpeciesInitialized() {}
|
||||||
|
fun validateTeam(packedTeam: String, format: String = "cobblemon") {}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val service: ShowdownService by lazy { GraalShowdownService() }
|
val service: ShowdownService by lazy { SocketShowdownService() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+5
@@ -167,6 +167,11 @@ class GraalShowdownService : ShowdownService {
|
|||||||
func.execute()
|
func.execute()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun validateTeam(packedTeam: String, format: String) {
|
||||||
|
val func = this.context.getBindings("js").getMember("validateTeam")
|
||||||
|
func.execute(packedTeam, format).asString()
|
||||||
|
}
|
||||||
|
|
||||||
private fun sendToShowdown(battleId: UUID, messages: Array<String>) {
|
private fun sendToShowdown(battleId: UUID, messages: Array<String>) {
|
||||||
sendBattleMessageFunction.execute(battleId.toString(), messages)
|
sendBattleMessageFunction.execute(battleId.toString(), messages)
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -9,6 +9,7 @@
|
|||||||
package com.cobblemon.mod.common.battles.runner.socket
|
package com.cobblemon.mod.common.battles.runner.socket
|
||||||
|
|
||||||
import com.cobblemon.mod.common.Cobblemon
|
import com.cobblemon.mod.common.Cobblemon
|
||||||
|
import com.cobblemon.mod.common.api.abilities.AbilityTemplate
|
||||||
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
|
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
|
||||||
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
|
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
|
||||||
import com.cobblemon.mod.common.battles.ShowdownInterpreter
|
import com.cobblemon.mod.common.battles.ShowdownInterpreter
|
||||||
@@ -141,6 +142,17 @@ class SocketShowdownService(val host: String = "localhost", val port: Int = 1846
|
|||||||
acknowledge()
|
acknowledge()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun validateTeam(packedTeam: String, format: String) {
|
||||||
|
writer.write(">validator $packedTeam $format")
|
||||||
|
writer.flush()
|
||||||
|
val response = readMessage()
|
||||||
|
val jsonarray = gson.fromJson(response, JsonArray::class.java)
|
||||||
|
for (i in 0 until jsonarray.size()) {
|
||||||
|
val msg = jsonarray[i].asString
|
||||||
|
Cobblemon.LOGGER.error(msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun acknowledge(ifFails: () -> Unit = {}) {
|
fun acknowledge(ifFails: () -> Unit = {}) {
|
||||||
writer.flush()
|
writer.flush()
|
||||||
val ack = CharArray(3)
|
val ack = CharArray(3)
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.cobblemon.mod.common.command
|
||||||
|
|
||||||
|
import com.cobblemon.mod.common.api.permission.CobblemonPermissions
|
||||||
|
import com.cobblemon.mod.common.battles.BattleFormat
|
||||||
|
import com.cobblemon.mod.common.battles.BattleRegistry.packTeam
|
||||||
|
import com.cobblemon.mod.common.battles.runner.ShowdownService
|
||||||
|
import com.cobblemon.mod.common.util.party
|
||||||
|
import com.cobblemon.mod.common.util.permission
|
||||||
|
import com.mojang.brigadier.Command
|
||||||
|
import com.mojang.brigadier.CommandDispatcher
|
||||||
|
import com.mojang.brigadier.context.CommandContext
|
||||||
|
import net.minecraft.commands.CommandSourceStack
|
||||||
|
import net.minecraft.commands.Commands
|
||||||
|
|
||||||
|
object ValidateTeamCommand {
|
||||||
|
|
||||||
|
fun register(dispatcher: CommandDispatcher<CommandSourceStack>) {
|
||||||
|
val command = Commands.literal("validateteam")
|
||||||
|
.permission(CobblemonPermissions.VALIDATE_TEAM)
|
||||||
|
// TODO format argument
|
||||||
|
.executes(::execute)
|
||||||
|
dispatcher.register(command)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun execute(context: CommandContext<CommandSourceStack>): Int {
|
||||||
|
try {
|
||||||
|
val packedTeam = context.source.playerOrException.party().toBattleTeam().packTeam()
|
||||||
|
ShowdownService.service.validateTeam(packedTeam, BattleFormat.GEN_9_SINGLES.toFormatJSON())
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
|
}
|
||||||
|
return Command.SINGLE_SUCCESS
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user