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