Archived
1
0
Fork 0

Reformat code to use the official kotlin code style

This commit is contained in:
Moritz Ruth 2020-08-14 20:54:07 +02:00
parent da7397e7f2
commit 0a4f835327
No known key found for this signature in database
GPG key ID: AFD57E23E753841B
47 changed files with 199 additions and 153 deletions

View file

@ -55,17 +55,21 @@ sealed class ChatComponent {
WHITE; WHITE;
object Adapter { object Adapter {
@ToJson fun toJson(value: Color) = value.name.toLowerCase() @ToJson
@FromJson fun fromJson(value: String) = valueOf(value.toUpperCase()) fun toJson(value: Color) = value.name.toLowerCase()
@FromJson
fun fromJson(value: String) = valueOf(value.toUpperCase())
} }
} }
object Adapter { object Adapter {
@FromJson fun fromJson(reader: JsonReader): ChatComponent? { @FromJson
fun fromJson(reader: JsonReader): ChatComponent? {
throw UnsupportedOperationException("ChatComponent cannot be deserialized.") throw UnsupportedOperationException("ChatComponent cannot be deserialized.")
} }
@ToJson fun toJson(writer: JsonWriter, value: ChatComponent?) { @ToJson
fun toJson(writer: JsonWriter, value: ChatComponent?) {
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
if (value == null) writer.nullValue() if (value == null) writer.nullValue()
else (Blokk.json.adapter(value::class.java) as JsonAdapter<ChatComponent>).toJson(writer, value) else (Blokk.json.adapter(value::class.java) as JsonAdapter<ChatComponent>).toJson(writer, value)

View file

@ -45,8 +45,10 @@ class EventBus<EventT: Event>(private val eventClass: KClass<EventT>, private va
val klass = method.parameters[1].type.classifier as KClass<EventT> val klass = method.parameters[1].type.classifier as KClass<EventT>
if (!eventClass.isSuperclassOf(klass)) if (!eventClass.isSuperclassOf(klass))
throw InvalidEventHandlerException("${method.name}'s first parameter type is incompatible with the " + throw InvalidEventHandlerException(
"one required by the EventBus") "${method.name}'s first parameter type is incompatible with the " +
"one required by the EventBus"
)
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
val handler = Handler( val handler = Handler(

View file

@ -14,9 +14,23 @@ class Logger(name: String) {
infix fun debug(msg: String) = logger.debug(msg) infix fun debug(msg: String) = logger.debug(msg)
infix fun trace(msg: String) = logger.trace(msg) infix fun trace(msg: String) = logger.trace(msg)
infix fun error(fn: () -> String) { if (logger.isErrorEnabled) logger.error(fn()) } infix fun error(fn: () -> String) {
infix fun info(fn: () -> String) { if (logger.isInfoEnabled) logger.info(fn()) } if (logger.isErrorEnabled) logger.error(fn())
infix fun warn(fn: () -> String) { if (logger.isWarnEnabled) logger.warn(fn()) } }
infix fun debug(fn: () -> String) { if (logger.isDebugEnabled) logger.debug(fn()) }
infix fun trace(fn: () -> String) { if (logger.isTraceEnabled) logger.trace(fn()) } infix fun info(fn: () -> String) {
if (logger.isInfoEnabled) logger.info(fn())
}
infix fun warn(fn: () -> String) {
if (logger.isWarnEnabled) logger.warn(fn())
}
infix fun debug(fn: () -> String) {
if (logger.isDebugEnabled) logger.debug(fn())
}
infix fun trace(fn: () -> String) {
if (logger.isTraceEnabled) logger.trace(fn())
}
} }

View file

@ -2,7 +2,8 @@ package space.blokk.net.protocols.login
import space.blokk.net.protocols.Protocol import space.blokk.net.protocols.Protocol
object LoginProtocol: Protocol("LOGIN", setOf( object LoginProtocol : Protocol(
"LOGIN", setOf(
DisconnectPacket, DisconnectPacket,
LoginStartPacket, LoginStartPacket,
EncryptionRequestPacket, EncryptionRequestPacket,
@ -11,4 +12,5 @@ object LoginProtocol: Protocol("LOGIN", setOf(
LoginSuccessPacket, LoginSuccessPacket,
LoginPluginRequestPacket, LoginPluginRequestPacket,
LoginPluginResponsePacket LoginPluginResponsePacket
)) )
)

View file

@ -1,4 +1,5 @@
package space.blokk.events package space.blokk.events
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay

View file

@ -1,5 +1,3 @@
plugins { plugins {
kotlin("jvm") kotlin("jvm")
id("com.github.johnrengelman.shadow") version "6.0.0" id("com.github.johnrengelman.shadow") version "6.0.0"

View file

@ -14,7 +14,9 @@ import space.blokk.server.Server
import space.blokk.server.events.ServerEvent import space.blokk.server.events.ServerEvent
class BlokkServer internal constructor() : Server { class BlokkServer internal constructor() : Server {
init { i = this } init {
i = this
}
override val scope = CoroutineScope(CoroutineName("BlokkServer")) override val scope = CoroutineScope(CoroutineName("BlokkServer"))
override val eventBus = EventBus(ServerEvent::class, scope) override val eventBus = EventBus(ServerEvent::class, scope)
@ -52,7 +54,14 @@ class BlokkServer internal constructor(): Server {
Blokk.sessions.registerListener(object : Listener { Blokk.sessions.registerListener(object : Listener {
@EventHandler @EventHandler
fun onServerListInfoRequest(event: ServerListInfoRequestEvent) { fun onServerListInfoRequest(event: ServerListInfoRequestEvent) {
event.response = event.response.copy(description = TextComponent(event.session.address.hostAddress, bold = true, underlined = true, color = ChatComponent.Color.RED)) event.response = event.response.copy(
description = TextComponent(
event.session.address.hostAddress,
bold = true,
underlined = true,
color = ChatComponent.Color.RED
)
)
} }
}) })

View file

@ -23,13 +23,15 @@ class ConsoleAppender: AppenderBase<ILoggingEvent>() {
else -> khalk else -> khalk
} }
stream.println(listOf( stream.println(
listOf(
khalk.gray { dateFormat.format(Date(event.timeStamp)) }, khalk.gray { dateFormat.format(Date(event.timeStamp)) },
color { event.level.toString().padEnd(5) }, color { event.level.toString().padEnd(5) },
khalk.bold { event.threadName }, khalk.bold { event.threadName },
color.inverse { " ${event.loggerName} " }, color.inverse { " ${event.loggerName} " },
color { "" }, color { "" },
event.message event.message
).joinToString(" ")) ).joinToString(" ")
)
} }
} }

View file

@ -4,6 +4,7 @@ import io.netty.channel.Channel
import kotlinx.coroutines.* import kotlinx.coroutines.*
import space.blokk.BlokkServer import space.blokk.BlokkServer
import space.blokk.events.* import space.blokk.events.*
import space.blokk.logging.Logger
import space.blokk.net.events.PacketReceivedEvent import space.blokk.net.events.PacketReceivedEvent
import space.blokk.net.events.PacketSendEvent import space.blokk.net.events.PacketSendEvent
import space.blokk.net.events.SessionEvent import space.blokk.net.events.SessionEvent
@ -11,7 +12,6 @@ import space.blokk.net.protocols.OutgoingPacket
import space.blokk.net.protocols.Protocol import space.blokk.net.protocols.Protocol
import space.blokk.net.protocols.handshaking.HandshakingProtocol import space.blokk.net.protocols.handshaking.HandshakingProtocol
import space.blokk.server.events.SessionInitializedEvent import space.blokk.server.events.SessionInitializedEvent
import space.blokk.logging.Logger
import space.blokk.utils.awaitSuspending import space.blokk.utils.awaitSuspending
import java.net.InetAddress import java.net.InetAddress
import java.net.InetSocketAddress import java.net.InetSocketAddress

View file

@ -20,11 +20,13 @@ class BlokkSocketServer(private val blokkServer: BlokkServer) {
private val workerGroup = createEventLoopGroup() private val workerGroup = createEventLoopGroup()
private val bootstrap: ServerBootstrap = ServerBootstrap() private val bootstrap: ServerBootstrap = ServerBootstrap()
.group(bossGroup, workerGroup) .group(bossGroup, workerGroup)
.channel(when { .channel(
when {
EPOLL_AVAILABLE -> EpollServerSocketChannel::class.java EPOLL_AVAILABLE -> EpollServerSocketChannel::class.java
KQUEUE_AVAILABLE -> KQueueServerSocketChannel::class.java KQUEUE_AVAILABLE -> KQueueServerSocketChannel::class.java
else -> NioServerSocketChannel::class.java else -> NioServerSocketChannel::class.java
}) }
)
.childOption(ChannelOption.SO_KEEPALIVE, true) .childOption(ChannelOption.SO_KEEPALIVE, true)
.childOption(ChannelOption.TCP_NODELAY, true) .childOption(ChannelOption.TCP_NODELAY, true)
.childHandler(BlokkChannelInitializer(this)) .childHandler(BlokkChannelInitializer(this))

View file

@ -21,8 +21,7 @@ class FramingCodec: ByteToMessageCodec<ByteBuf>() {
if (msg.varIntReadable()) { if (msg.varIntReadable()) {
length = msg.readVarInt() length = msg.readVarInt()
currentLength = length currentLength = length
} } else return
else return
} }
if (msg.readableBytes() >= length) { if (msg.readableBytes() >= length) {

View file

@ -8,8 +8,13 @@ import space.blokk.net.protocols.OutgoingPacket
import java.io.IOException import java.io.IOException
class PacketCodec(private val session: BlokkSession) : MessageToMessageCodec<ByteBuf, PacketMessage<*>>() { class PacketCodec(private val session: BlokkSession) : MessageToMessageCodec<ByteBuf, PacketMessage<*>>() {
override fun channelActive(ctx: ChannelHandlerContext) { session.onConnect() } override fun channelActive(ctx: ChannelHandlerContext) {
override fun channelInactive(ctx: ChannelHandlerContext) { session.onDisconnect() } session.onConnect()
}
override fun channelInactive(ctx: ChannelHandlerContext) {
session.onDisconnect()
}
override fun encode(ctx: ChannelHandlerContext, msg: PacketMessage<*>, out: MutableList<Any>) { override fun encode(ctx: ChannelHandlerContext, msg: PacketMessage<*>, out: MutableList<Any>) {
if (msg.packet !is OutgoingPacket) throw Error("Only clientbound packets are allowed. This should never happen.") if (msg.packet !is OutgoingPacket) throw Error("Only clientbound packets are allowed. This should never happen.")

View file

@ -7,7 +7,9 @@ data class PacketMessage<T: Packet>(val session: BlokkSession, val packet: T) {
val packetCompanion by lazy { val packetCompanion by lazy {
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
session.currentProtocol.packetCompanionsByPacketType[packet::class] as PacketCompanion<T>? session.currentProtocol.packetCompanionsByPacketType[packet::class] as PacketCompanion<T>?
?: throw Exception("No packet companion found for this packet type. " + ?: throw Exception(
"This can happen if the packet is not part of the current protocol.") "No packet companion found for this packet type. " +
"This can happen if the packet is not part of the current protocol."
)
} }
} }

View file

@ -9,10 +9,10 @@ import space.blokk.net.events.ServerListInfoRequestEvent
import java.util.* import java.util.*
// NOTE: PacketReceivedEventHandler.of<T> MUST have T specified correctly, otherwise the code breaks at runtime // NOTE: PacketReceivedEventHandler.of<T> MUST have T specified correctly, otherwise the code breaks at runtime
object StatusProtocolHandler : ProtocolPacketReceivedEventHandler(mapOf( object StatusProtocolHandler : ProtocolPacketReceivedEventHandler(mapOf(
RequestPacket to PacketReceivedEventHandler.of<RequestPacket> { session, _ -> RequestPacket to PacketReceivedEventHandler.of<RequestPacket> { session, _ ->
session.eventBus.emit(ServerListInfoRequestEvent( session.eventBus.emit(
ServerListInfoRequestEvent(
session, session,
// TODO: Use the real server data // TODO: Use the real server data
ResponsePacket( ResponsePacket(
@ -22,10 +22,16 @@ object StatusProtocolHandler: ProtocolPacketReceivedEventHandler(mapOf(
players = ResponsePacket.Players( players = ResponsePacket.Players(
10, 10,
10, 10,
listOf(ResponsePacket.Players.SampleEntry("${FormattingCode.AQUA}Gronkh", UUID.randomUUID().toString())) listOf(
ResponsePacket.Players.SampleEntry(
"${FormattingCode.AQUA}Gronkh",
UUID.randomUUID().toString()
) )
) )
)).ifNotCancelled { session.send(it.response) } )
)
)
).ifNotCancelled { session.send(it.response) }
}, },
PingPacket to PacketReceivedEventHandler.of<PingPacket> { session, packet -> PingPacket to PacketReceivedEventHandler.of<PingPacket> { session, packet ->
session.send(PongPacket(packet.payload)) session.send(PongPacket(packet.payload))