make some forge events work again
This commit is contained in:
parent
aa564d1e1f
commit
a70c54f804
|
@ -66,7 +66,7 @@ object CivilEngineering {
|
||||||
if (config.hasChanged()) {
|
if (config.hasChanged()) {
|
||||||
config.save()
|
config.save()
|
||||||
}
|
}
|
||||||
MinecraftForge.EVENT_BUS.register(ServerChatHelper::class.java)
|
// MinecraftForge.EVENT_BUS.register(ServerChatHelper::class.java)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ object CivilEngineering {
|
||||||
MessageHandler.start()
|
MessageHandler.start()
|
||||||
|
|
||||||
//maybe try registering them manually
|
//maybe try registering them manually
|
||||||
|
MinecraftForge.EVENT_BUS.register(ServerChatHelper())
|
||||||
MinecraftForge.EVENT_BUS.register(ChatMessageHandler())
|
MinecraftForge.EVENT_BUS.register(ChatMessageHandler())
|
||||||
MinecraftForge.EVENT_BUS.register(DeathEventHandler())
|
MinecraftForge.EVENT_BUS.register(DeathEventHandler())
|
||||||
MinecraftForge.EVENT_BUS.register(UserActionHandler())
|
MinecraftForge.EVENT_BUS.register(UserActionHandler())
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
package civilengineering.bridge
|
package civilengineering.bridge
|
||||||
|
|
||||||
|
import civilengineering.Config
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
|
|
||||||
data class ApiMessage(
|
data class ApiMessage(
|
||||||
val text: String = "",
|
|
||||||
val channel: String = "",
|
|
||||||
val username: String = "",
|
val username: String = "",
|
||||||
|
val text: String = "",
|
||||||
|
val gateway: String = Config.gateway,
|
||||||
|
val channel: String = "",
|
||||||
val userid: String = "",
|
val userid: String = "",
|
||||||
val avatar: String = "",
|
val avatar: String = "",
|
||||||
val account: String = "",
|
val account: String = "",
|
||||||
val event: String = "",
|
val event: String = "",
|
||||||
val protocol: String = "",
|
val protocol: String = "",
|
||||||
val gateway: String = "",
|
|
||||||
// val timestamp: Date,
|
// val timestamp: Date,
|
||||||
val id: String = ""
|
val id: String = ""
|
||||||
// val Extra: Any? = null
|
// val Extra: Any? = null
|
||||||
|
|
|
@ -10,10 +10,11 @@ import java.net.HttpURLConnection
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class CancellableConnectionFollowThread(httpConnClosure: () -> HttpURLConnection, private val mhandler: (String) -> Unit) : Thread() {
|
class CancellableConnectionFollowThread(httpConnClosure: () -> HttpURLConnection, private val mhandler: (String) -> Unit) : Thread() {
|
||||||
val cancelGuard = Object()
|
private val cancelGuard = Object()
|
||||||
var waitingOnNetwork = true
|
private var waitingOnNetwork = true
|
||||||
var cancelled = false
|
var cancelled = false
|
||||||
val httpConn = httpConnClosure()
|
private set
|
||||||
|
private val httpConn = httpConnClosure()
|
||||||
|
|
||||||
override fun run() {
|
override fun run() {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import java.util.concurrent.ConcurrentLinkedQueue
|
||||||
object MessageHandler {
|
object MessageHandler {
|
||||||
|
|
||||||
private fun createThread(): CancellableConnectionFollowThread {
|
private fun createThread(): CancellableConnectionFollowThread {
|
||||||
|
CivilEngineering.logger.info("building bridge")
|
||||||
return CancellableConnectionFollowThread(
|
return CancellableConnectionFollowThread(
|
||||||
{
|
{
|
||||||
CivilEngineering.logger.info("Connecting to bridge server @ " + Config.connectURL)
|
CivilEngineering.logger.info("Connecting to bridge server @ " + Config.connectURL)
|
||||||
|
@ -23,7 +24,7 @@ object MessageHandler {
|
||||||
rcvQueue.add(
|
rcvQueue.add(
|
||||||
ApiMessage.decode(it)
|
ApiMessage.decode(it)
|
||||||
)
|
)
|
||||||
CivilEngineering.logger.trace("received: " + it)
|
CivilEngineering.logger.info("received: " + it)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -37,21 +38,22 @@ object MessageHandler {
|
||||||
fun transmit(msg: ApiMessage) {
|
fun transmit(msg: ApiMessage) {
|
||||||
CivilEngineering.logger.info("transmitting " + msg)
|
CivilEngineering.logger.info("transmitting " + msg)
|
||||||
transmitMessage(msg)
|
transmitMessage(msg)
|
||||||
//TODO: create thread with Runnable(sendstuff).execute()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun stop() {
|
fun stop() {
|
||||||
|
CivilEngineering.logger.info("bridge closing")
|
||||||
|
// MessageHandler.transmit(ApiMessage(text="bridge closing", username="Server"))
|
||||||
cancellableThread.abort()
|
cancellableThread.abort()
|
||||||
CivilEngineering.logger.info("bridge closed")
|
CivilEngineering.logger.info("bridge closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun start(): Boolean {
|
fun start(): Boolean {
|
||||||
if (cancellableThread.isInterrupted) {
|
if (cancellableThread.cancelled) {
|
||||||
CivilEngineering.logger.info("rebuilding bridge")
|
|
||||||
cancellableThread = createThread()
|
cancellableThread = createThread()
|
||||||
}
|
}
|
||||||
if (!cancellableThread.isAlive) {
|
if (!cancellableThread.isAlive) {
|
||||||
cancellableThread.start()
|
cancellableThread.start()
|
||||||
|
// MessageHandler.transmit(ApiMessage(text="bridge connected", username="Server"))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -6,7 +6,7 @@ import net.minecraftforge.fml.common.FMLCommonHandler
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
|
||||||
import net.minecraftforge.fml.common.gameevent.TickEvent
|
import net.minecraftforge.fml.common.gameevent.TickEvent
|
||||||
|
|
||||||
object ServerChatHelper {
|
class ServerChatHelper {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onServerUpdate(event: TickEvent.ServerTickEvent) {
|
fun onServerUpdate(event: TickEvent.ServerTickEvent) {
|
||||||
if (MessageHandler.rcvQueue.isNotEmpty())
|
if (MessageHandler.rcvQueue.isNotEmpty())
|
||||||
|
|
|
@ -9,7 +9,7 @@ class ChatMessageHandler {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun handleServerChatEvent(event: ServerChatEvent) {
|
fun handleServerChatEvent(event: ServerChatEvent) {
|
||||||
val message = event.message.trim { it <= ' ' }
|
val message = event.message.trim { it <= ' ' }
|
||||||
if (!message.isEmpty())
|
if (message.isNotBlank())
|
||||||
MessageHandler.transmit(ApiMessage(event.username, message))
|
MessageHandler.transmit(ApiMessage(username = event.username, text = message))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class DeathEventHandler {
|
||||||
val entity = event.entityLiving
|
val entity = event.entityLiving
|
||||||
if (entity is EntityPlayer) {
|
if (entity is EntityPlayer) {
|
||||||
val message = entity.getCombatTracker().deathMessage.unformattedText
|
val message = entity.getCombatTracker().deathMessage.unformattedText
|
||||||
MessageHandler.transmit(ApiMessage("Server", message))
|
MessageHandler.transmit(ApiMessage(username = "Server", text = message))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ class UserActionHandler {
|
||||||
}
|
}
|
||||||
message = message.trim { it <= ' ' }
|
message = message.trim { it <= ' ' }
|
||||||
|
|
||||||
MessageHandler.transmit(ApiMessage(user, message, "user_action"))
|
MessageHandler.transmit(ApiMessage(username=user, text=message, event="user_action"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue