Merge branch 'dev'

This commit is contained in:
NikkyAI 2018-02-10 20:55:42 +01:00 committed by Unknown
commit 087d516e3e
21 changed files with 628 additions and 124 deletions

92
1.11.2/build.gradle Normal file
View File

@ -0,0 +1,92 @@
buildscript {
repositories {
jcenter()
maven { url = "http://files.minecraftforge.net/maven" }
mavenCentral()
}
dependencies {
classpath "net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT"
}
}
plugins {
id "com.github.johnrengelman.shadow" version "1.2.4"
}
apply plugin: 'net.minecraftforge.gradle.forge'
version = mc_version + "-" + mod_version
archivesBaseName = "MatterLink"
sourceCompatibility = targetCompatibility = '1.8'
dependencies {
compile project(':core')
compile group: "net.shadowfacts", name: "Forgelin", version: "1.6.0"
}
shadowJar {
classifier ''
// configurations = [project.configurations.shadow]
relocate "org.apache.http", "matterlink.repack.org.apache.http"
relocate "org.apache.commons.logging", "matterlink.repack.org.apache.commons.logging"
dependencies {
include(project(":core"))
include(dependency("org.apache.httpcomponents:httpclient:4.3.3"))
include(dependency("org.apache.httpcomponents:httpcore:4.3.2"))
include(dependency('commons-logging:commons-logging:1.1.3'))
}
exclude 'dummyThing'
}
minecraft {
version = mc_version + "-" + forge_version
runDir = "run"
mappings = mcp_mappings
replaceIn 'MatterLink.kt'
replace '@VERSION@', mod_version
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(project(":core").sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version': project.version, 'mcversion': project.minecraft.version
}
// copy everything else except the mcmod.info
from(project(":core").sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
sourceJar {
classifier 'sources'
// copy all the minecraftforge specific classes
from sourceSets.main.allSource
// copy everything else except the mcmod.info
from (project(":core").sourceSets.main.allSource) {
exclude 'mcmod.info'
}
}
reobf {
shadowJar { mappingType = 'SEARGE' }
}
tasks.reobfShadowJar.mustRunAfter shadowJar

4
1.11.2/gradle.properties Normal file
View File

@ -0,0 +1,4 @@
mc_version = 1.11.2
mcp_mappings = stable_32
forge_version = 13.20.1.2386
forgegradle_version = 2.3-SNAPSHOT

View File

@ -0,0 +1,97 @@
package matterlink
import matterlink.bridge.ServerChatHandler
import matterlink.bridge.USER_ACTION
import matterlink.config.cfg
import matterlink.handlers.*
import net.minecraft.command.server.CommandBroadcast
import net.minecraft.command.server.CommandEmote
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.server.dedicated.DedicatedServer
import net.minecraft.tileentity.TileEntityCommandBlock
import net.minecraftforge.event.CommandEvent
import net.minecraftforge.event.ServerChatEvent
import net.minecraftforge.event.entity.living.LivingDeathEvent
import net.minecraftforge.event.entity.player.AchievementEvent
import net.minecraftforge.fml.common.FMLCommonHandler
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import net.minecraftforge.fml.common.gameevent.PlayerEvent
import net.minecraftforge.fml.common.gameevent.TickEvent
//FORGE-DEPENDENT
@Mod.EventBusSubscriber
object EventWrapper {
//MC-VERSION & FORGE DEPENDENT
@SubscribeEvent
@JvmStatic
fun progressEvent(e: AchievementEvent) {
val name = e.entityPlayer.name
val text = "has earned the achievement ${e.achievement.statName.unformattedText}"
ProgressHandler.handleProgress(name, text)
}
//FORGE-DEPENDENT
@SubscribeEvent
@JvmStatic
fun chatEvent(e: ServerChatEvent) {
val user = e.username
val msg = e.message
ChatHandler.handleChat(user, msg)
}
//FORGE-DEPENDENT
@SubscribeEvent
@JvmStatic
fun commandEvent(e: CommandEvent) {
val sender =
when {
e.sender is EntityPlayer -> e.sender.name
e.sender is DedicatedServer -> cfg!!.relay.systemUser
e.sender is TileEntityCommandBlock -> "CommandBlock"
else -> return
}
val args = e.parameters.joinToString(" ")
val type = when {
e.command is CommandEmote -> USER_ACTION
e.command is CommandBroadcast -> ""
else -> return
}
CommandHandler.handleCommand(sender, args, type)
}
//FORGE-DEPENDENT
@SubscribeEvent
@JvmStatic
fun deathEvent(e: LivingDeathEvent) {
if (e.entityLiving is EntityPlayer) {
DeathHandler.handleDeath(
e.entityLiving.name,
e.entityLiving.combatTracker.deathMessage.unformattedText
)
}
}
//FORGE-DEPENDENT
@SubscribeEvent
@JvmStatic
fun joinEvent(e: PlayerEvent.PlayerLoggedInEvent) {
JoinLeaveHandler.handleJoin(e.player.name)
}
//FORGE-DEPENDENT
@SubscribeEvent
@JvmStatic
fun leaveEvent(e: PlayerEvent.PlayerLoggedOutEvent) {
JoinLeaveHandler.handleLeave(e.player.name)
}
//FORGE-DEPENDENT
@SubscribeEvent
@JvmStatic
fun serverTickEvent(e: TickEvent.ServerTickEvent) {
ServerChatHandler.writeIncomingToChat(FMLCommonHandler.instance().minecraftServerInstance.tickCounter)
}
}

View File

@ -0,0 +1,74 @@
package matterlink
import matterlink.bridge.MessageHandler
import matterlink.bridge.command.BridgeCommandRegistry
import matterlink.bridge.command.HelpCommand
import matterlink.bridge.command.PlayerListCommand
import matterlink.command.CommandMatterlink
import net.minecraft.util.text.TextComponentString
import net.minecraftforge.fml.common.FMLCommonHandler
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.event.*
import org.apache.logging.log4j.Logger
const val MODID = "matterlink"
const val NAME = "MatterLink"
const val VERSION = "@VERSION@"
lateinit var logger: Logger
@Mod(
modid = MODID,
name = NAME, version = VERSION,
serverSideOnly = true,
useMetadata = true,
acceptableRemoteVersions = "*",
modLanguageAdapter = "net.shadowfacts.forgelin.KotlinAdapter"
)
object MatterLink : IMatterLink() {
init {
instance = this
}
@Mod.EventHandler
fun preInit(event: FMLPreInitializationEvent) {
logger = event.modLog
logger.info("Building bridge!")
MatterLinkConfig(event.suggestedConfigurationFile)
}
@Mod.EventHandler
fun init(event: FMLInitializationEvent) {
BridgeCommandRegistry.registerAll(PlayerListCommand, HelpCommand)
}
@Mod.EventHandler
fun serverAboutToStart(event: FMLServerAboutToStartEvent) {
MessageHandler.start(clear = true)
}
@Mod.EventHandler
fun serverStarting(event: FMLServerStartingEvent) {
logger.debug("Registering server commands")
event.registerServerCommand(CommandMatterlink())
connect()
}
@Mod.EventHandler
fun serverStopping(event: FMLServerStoppingEvent) {
disconnect()
}
//FORGE-DEPENDENT
override fun wrappedSendToPlayers(msg: String) {
FMLCommonHandler.instance().minecraftServerInstance.playerList.sendMessage(TextComponentString(msg))
}
//FORGE-DEPENDENT
override fun wrappedPlayerList(): Array<String> {
return FMLCommonHandler.instance().minecraftServerInstance.playerList.onlinePlayerNames
}
}

View File

@ -0,0 +1,128 @@
package matterlink
import matterlink.config.IMatterLinkConfig
import matterlink.config.cfg
import net.minecraftforge.common.config.Configuration
import java.io.File
import java.util.regex.Pattern
class MatterLinkConfig(file: File) : IMatterLinkConfig() {
init {
logger.info("Reading bridge blueprints... from {}", file)
val config = Configuration(file)
config.addCustomCategoryComment(CATEGORY_RELAY_OPTIONS, "Relay options")
relay = RelayOptions(
systemUser = config.getString(
"systemUser",
CATEGORY_RELAY_OPTIONS,
relay.systemUser,
"Name of the server user (used by death and advancement messages and the /say command)"
),
deathEvents = config.getBoolean(
"deathEvents",
CATEGORY_RELAY_OPTIONS,
relay.deathEvents,
"Relay player death messages"
),
advancements = config.getBoolean(
"advancements",
CATEGORY_RELAY_OPTIONS,
relay.advancements,
"Relay player advancements"
),
joinLeave = config.getBoolean(
"joinLeave",
CATEGORY_RELAY_OPTIONS,
relay.joinLeave,
"Relay when a player joins or leaves the game"
)
)
config.addCustomCategoryComment(CATEGORY_COMMAND, "User commands")
command = CommandOptions(
enable = config.getBoolean(
"enable",
CATEGORY_COMMAND,
command.enable,
"Enable MC bridge commands"
),
prefix = config.getString(
"prefix",
CATEGORY_COMMAND,
command.prefix,
"Prefix for MC bridge commands. Accepts a single character (not alphanumeric or /)",
Pattern.compile("^[^0-9A-Za-z/]$")
)
)
config.addCustomCategoryComment(CATEGORY_FORMATTING_INCOMING, "Gateway -> Server" +
"Formatting options: " +
"Available variables: {username}, {text}, {gateway}, {channel}, {protocol}, {username:antiping}")
formatting = FormattingOptions(
chat = config.getString(
"chat",
CATEGORY_FORMATTING_INCOMING,
formatting.chat,
"Generic chat event, just talking"
),
joinLeave = config.getString(
"joinLeave",
CATEGORY_FORMATTING_INCOMING,
formatting.joinLeave,
"Join and leave events from other gateways"
),
action = config.getString(
"action",
CATEGORY_FORMATTING_INCOMING,
formatting.action,
"User actions (/me) sent by users from other gateways"
)
)
config.addCustomCategoryComment(CATEGORY_FORMATTING_JOIN_LEAVE, "Server -> Gateway" +
"Formatting options: " +
"Available variables: {username}, {username:antiping}")
formattingJoinLeave = FormattingJoinLeave(
joinServer = config.getString(
"joinServer",
CATEGORY_FORMATTING_JOIN_LEAVE,
formattingJoinLeave.joinServer,
"user join message sent to other gateways, available variables: {username}, {username:antiping}"
),
leaveServer = config.getString(
"leaveServer",
CATEGORY_FORMATTING_JOIN_LEAVE,
formattingJoinLeave.leaveServer,
"user leave message sent to other gateways, available variables: {username}, {username:antiping}"
)
)
config.addCustomCategoryComment(CATEGORY_CONNECTION, "Connection settings")
connect = ConnectOptions(
url = config.getString(
"connectURL",
CATEGORY_CONNECTION,
connect.url,
"The URL or IP address of the bridge server"
),
authToken = config.getString(
"authToken",
CATEGORY_CONNECTION,
connect.authToken,
"Auth token used to connect to the bridge server"
),
gateway = config.getString(
"gateway",
CATEGORY_CONNECTION,
connect.gateway,
"MatterBridge gateway"
)
)
if (config.hasChanged()) config.save()
cfg = this
}
}

View File

@ -0,0 +1,53 @@
package matterlink.command
import com.google.common.collect.Lists
import matterlink.MODID
import matterlink.bridge.MessageHandler
import matterlink.bridge.ServerChatHandler
import matterlink.instance
import matterlink.logger
import net.minecraft.command.CommandBase
import net.minecraft.command.ICommandSender
import net.minecraft.server.MinecraftServer
class CommandMatterlink : CommandBase() {
private val aliases: List<String>
init {
aliases = Lists.newArrayList(MODID, "bridge", "BRIDGE")
}
override fun getName(): String {
return "bridge"
}
override fun getUsage(sender: ICommandSender): String {
return "bridge <connect|disconnect>"
}
override fun getAliases(): List<String> {
return aliases
}
override fun execute(server: MinecraftServer, sender: ICommandSender, args: Array<String>) /*throws CommandException*/ {
if (args.isEmpty()) {
//throw new WrongUsageException("")
return
}
//TODO: check if sender is OP or test if normal users cannot send this
val cmd = args[0].toLowerCase()
when (cmd) {
"connect" -> {
instance.connect()
}
"disconnect" -> {
instance.disconnect()
}
}
}
}

View File

@ -0,0 +1,91 @@
buildscript {
repositories {
jcenter()
maven { url = "http://files.minecraftforge.net/maven" }
mavenCentral()
}
dependencies {
classpath "net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT"
}
}
plugins {
id "com.github.johnrengelman.shadow" version "1.2.4"
}
apply plugin: 'net.minecraftforge.gradle.forge'
version = mc_version + "-" + mod_version
archivesBaseName = "MatterLink"
sourceCompatibility = targetCompatibility = '1.8'
dependencies {
compile project(':core')
compile group: "net.shadowfacts", name: "Forgelin", version: "1.6.0"
}
shadowJar {
classifier ''
// configurations = [project.configurations.shadow]
relocate "org.apache.http", "matterlink.repack.org.apache.http"
relocate "org.apache.commons.logging", "matterlink.repack.org.apache.commons.logging"
dependencies {
include(project(":core"))
include(dependency("org.apache.httpcomponents:httpclient:4.3.3"))
include(dependency("org.apache.httpcomponents:httpcore:4.3.2"))
include(dependency('commons-logging:commons-logging:1.1.3'))
}
exclude 'dummyThing'
}
minecraft {
version = mc_version + "-" + forge_version
runDir = "run"
mappings = mcp_mappings
replaceIn 'MatterLink.kt'
replace '@VERSION@', mod_version
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(project(":core").sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version': project.version, 'mcversion': project.minecraft.version
}
// copy everything else except the mcmod.info
from(project(":core").sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
sourceJar {
classifier 'sources'
// copy all the minecraftforge specific classes
from sourceSets.main.allSource
// copy everything else except the mcmod.info
from (project(":core").sourceSets.main.allSource) {
exclude 'mcmod.info'
}
}
reobf {
shadowJar { mappingType = 'SEARGE' }
}
tasks.reobfShadowJar.mustRunAfter shadowJar

View File

@ -1,4 +1,4 @@
group = matterbridge
mc_version = 1.12.2
mcp_mappings = snapshot_20171003
forge_version = 14.23.1.2599
forge_version = 14.23.1.2599
forgegradle_version = 2.3-SNAPSHOT

View File

@ -13,6 +13,7 @@ import net.minecraftforge.event.CommandEvent
import net.minecraftforge.event.ServerChatEvent
import net.minecraftforge.event.entity.living.LivingDeathEvent
import net.minecraftforge.event.entity.player.AdvancementEvent
import net.minecraftforge.fml.common.FMLCommonHandler
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import net.minecraftforge.fml.common.gameevent.PlayerEvent
@ -92,6 +93,6 @@ object EventWrapper {
@SubscribeEvent
@JvmStatic
fun serverTickEvent(e: TickEvent.ServerTickEvent) {
ServerChatHandler.writeIncomingToChat()
ServerChatHandler.writeIncomingToChat(FMLCommonHandler.instance().minecraftServerInstance.tickCounter)
}
}

View File

@ -9,11 +9,14 @@ import net.minecraft.util.text.TextComponentString
import net.minecraftforge.fml.common.FMLCommonHandler
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.event.*
import org.apache.logging.log4j.Logger
const val MODID = "matterlink"
const val NAME = "MatterLink"
const val VERSION = "@VERSION@"
lateinit var logger: Logger
@Mod(
modid = MODID,
name = NAME, version = VERSION,

24
Jenkinsfile vendored
View File

@ -1,5 +1,21 @@
node {
checkout scm
sh './gradlew :1.12.2:setupCiWorkspace :1.12.2:clean :1.12.2:build'
archive '1.12.2/build/libs/*jar'
pipeline {
agent any
stages {
stage("1.11.2") {
steps {
sh './gradlew :1.11.2:setupCiWorkspace'
sh './gradlew :1.11.2:clean'
sh './gradlew :1.11.2:build'
archive '1.11.2/build/libs/*jar'
}
}
stage("1.12.2") {
steps {
sh './gradlew :1.12.2:setupCiWorkspace'
sh './gradlew :1.12.2:clean'
sh './gradlew :1.12.2:build'
archive '1.12.2/build/libs/*jar'
}
}
}
}

View File

@ -1,22 +1,12 @@
buildscript {
repositories {
jcenter()
maven { url = "http://files.minecraftforge.net/maven" }
mavenCentral()
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
}
}
plugins {
id "org.jetbrains.kotlin.jvm" version '1.2.21'
id "com.github.johnrengelman.shadow" version "1.2.4"
id 'idea'
}
subprojects {
apply plugin: "kotlin"
apply plugin: 'idea'
apply plugin: "idea"
idea {
module {
@ -24,84 +14,18 @@ subprojects {
}
}
if(name != "core") {
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'com.github.johnrengelman.shadow'
version = mc_version + "-" + mod_version
archivesBaseName = "MatterLink"
sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
compileJava {
sourceCompatibility = targetCompatibility = '1.8'
}
minecraft {
version = mc_version + "-" + forge_version
runDir = "../run"
mappings = mcp_mappings
replaceIn 'MatterLink.kt'
replace '@VERSION@', mod_version
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(project(":core").sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else except the mcmod.info
from(project(":core").sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
if (name != "core") {
repositories {
jcenter()
maven {
name = "unascribed"
url = 'http://unascribed.com/maven/releases'
}
maven {
url "http://maven.shadowfacts.net/"
name = "shadowfacts"
url = "http://maven.shadowfacts.net/"
}
}
dependencies {
compile project(':core')
compile group: "net.shadowfacts", name: "Forgelin", version: "1.6.0"
}
shadowJar {
classifier ''
// configurations = [project.configurations.shadow]
relocate "org.apache.http", "matterlink.repack.org.apache.http"
relocate "org.apache.commons.logging", "matterlink.repack.org.apache.commons.logging"
dependencies {
include(project(":core"))
include(dependency("org.apache.httpcomponents:httpclient:4.3.3"))
include(dependency("org.apache.httpcomponents:httpcore:4.3.2"))
include(dependency('commons-logging:commons-logging:1.1.3'))
}
exclude 'dummyThing'
}
reobf {
shadowJar { mappingType = 'SEARGE' }
}
tasks.reobfShadowJar.mustRunAfter shadowJar
}
}

View File

@ -20,7 +20,7 @@ repositories {
dependencies {
compile 'org.apache.httpcomponents:httpclient:4.3.3'
compile 'commons-logging:commons-logging:1.1.3'
compile group: "org.apache.logging.log4j", name: "log4j-api", version: '2.8.1'
// compile group: "org.apache.logging.log4j", name: "log4j-api", version: '2.8.1'
compile 'com.google.code.gson:gson:2.8.0'
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}

View File

@ -1,25 +1,39 @@
package matterlink
import matterlink.bridge.MessageHandler
import org.apache.logging.log4j.Logger
//import org.apache.logging.log4j.Logger
lateinit var instance: IMatterLink
lateinit var logger: Logger
//lateinit var logger: Logger
abstract class IMatterLink {
var interrupted: Boolean = false
abstract fun wrappedSendToPlayers(msg: String)
abstract fun wrappedPlayerList(): Array<String>
fun connect() {
if (MessageHandler.start(clear = true)) {
logger.info("Connected to matterbridge relay")
println("Connected to matterbridge relay")
} else {
logger.error("Connection to matterbridge relay failed.")
System.err.println("Connection to matterbridge relay failed.")
}
}
fun disconnect () {
MessageHandler.stop()
}
fun reconnect(tick: Int) {
if(tick % 20 == 0 && interrupted) {
println("Trying to reconnect")
if (MessageHandler.start(clear = false)) {
println("Reconnected to matterbridge relay")
} else {
System.err.println("Reconnection to matterbridge relay failed.")
}
}
}
}

View File

@ -1,6 +1,7 @@
package matterlink.bridge;
import matterlink.logger
import matterlink.instance
//import matterlink.logger
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.HttpClients
import java.io.InputStream
@ -19,10 +20,11 @@ class HttpStreamConnection(getClosure: () -> HttpGet, clearClosure: () -> HttpGe
override fun run() {
if(clear) {
instance.interrupted = false
if (clear) {
val r = client.execute(clearGet)
r.entity.content.bufferedReader().forEachLine {
logger.debug("skipping $it")
println("DEBUG: skipping $it")
}
}
val response = client.execute(get)
@ -37,7 +39,7 @@ class HttpStreamConnection(getClosure: () -> HttpGet, clearClosure: () -> HttpGe
if (chars > 0) {
buffer += String(buf.dropLast(buf.count() - chars).toByteArray())
logger.debug(buffer)
println("DEBUG: " + buffer)
while (buffer.contains("\n")) {
val line = buffer.substringBefore("\n")
@ -49,11 +51,15 @@ class HttpStreamConnection(getClosure: () -> HttpGet, clearClosure: () -> HttpGe
}
}
} catch (e: SocketException) {
// MatterLink.logger.error("Bridge Connection interrupted...")
if (!cancelled) {
System.err.println("Bridge Connection interrupted...")
instance.interrupted = true
//TODO: mark connection as interrupted and try to reconnect
}
}
logger.debug("closing stream")
println("DEBUG: closing stream")
content.close()
logger.debug("thread finished")
println("DEBUG: thread finished")
onClose()
return
}

View File

@ -1,7 +1,7 @@
package matterlink.bridge
import matterlink.config.cfg
import matterlink.logger
//import matterlink.logger
import org.apache.http.client.methods.HttpGet
import org.apache.http.client.methods.HttpPost
import org.apache.http.client.methods.HttpRequestBase
@ -30,7 +30,7 @@ object MessageHandler {
}
private fun createThread(clear: Boolean = true): HttpStreamConnection {
logger.info("Attempting to open bridge connection.")
println("Attempting to open bridge connection.")
return HttpStreamConnection(
{
HttpGet(cfg!!.connect.url + "/api/stream").apply {
@ -46,10 +46,10 @@ object MessageHandler {
rcvQueue.add(
ApiMessage.decode(it)
)
logger.debug("Received: " + it)
// println("Received: " + it)
},
{
logger.info("Bridge connection closed!")
println("Bridge connection closed!")
connected = false
},
clear
@ -58,13 +58,13 @@ object MessageHandler {
fun transmit(msg: ApiMessage) {
if (connected && streamConnection.isAlive) {
logger.debug("Transmitting: " + msg)
println("Transmitting: " + msg)
transmitMessage(msg)
}
}
fun stop() {
logger.info("Closing bridge connection...")
println("Closing bridge connection...")
// MessageHandler.transmit(ApiMessage(text="bridge closing", username="Server"))
streamConnection.close()
}
@ -93,14 +93,14 @@ object MessageHandler {
val response = client.execute(post)
val code = response.statusLine.statusCode
if (code != 200) {
logger.error("Server returned $code for $post")
System.err.println("Server returned $code for $post")
}
sendErrors = 0
} catch (e: IOException) {
logger.error("sending message caused $e")
System.err.println("sending message caused $e")
sendErrors++
if (sendErrors > 5) {
logger.error("caught too many errors, closing bridge")
System.err.println("caught too many errors, closing bridge")
stop()
}
}

View File

@ -1,6 +1,6 @@
package matterlink.bridge
import matterlink.logger
//import matterlink.logger
import matterlink.instance
import matterlink.bridge.command.BridgeCommandRegistry
import matterlink.config.cfg
@ -10,9 +10,10 @@ object ServerChatHandler {
/**
* This method must be called every server tick with no arguments.
*/
fun writeIncomingToChat() {
fun writeIncomingToChat(tick: Int) {
instance.reconnect(tick)
if (MessageHandler.rcvQueue.isNotEmpty())
logger.debug("incoming: " + MessageHandler.rcvQueue.toString())
println("incoming: " + MessageHandler.rcvQueue.toString())
val nextMessage = MessageHandler.rcvQueue.poll()
if (nextMessage != null && nextMessage.gateway == cfg!!.connect.gateway) {
@ -29,11 +30,11 @@ object ServerChatHandler {
val user = nextMessage.username
val text = nextMessage.text
val json = nextMessage.encode()
logger.debug("Threw out message with unhandled event: ${nextMessage.event}")
logger.debug(" Message contents:")
logger.debug(" User: $user")
logger.debug(" Text: $text")
logger.debug(" JSON: $json")
println("Threw out message with unhandled event: ${nextMessage.event}")
println(" Message contents:")
println(" User: $user")
println(" Text: $text")
println(" JSON: $json")
return
}
}

View File

@ -1,7 +1,7 @@
package matterlink.bridge.command
import matterlink.config.cfg
import matterlink.logger
//import matterlink.logger
import java.util.*
object BridgeCommandRegistry {
@ -23,7 +23,7 @@ object BridgeCommandRegistry {
fun register(cmd: IBridgeCommand): Boolean {
if (cmd.name.isBlank() || commandMap.containsKey(cmd.name)) {
logger.error("Failed to register command: '${cmd.name}'")
System.out.println("Failed to register command: '${cmd.name}'")
return false
}
commandMap[cmd.name] = cmd

View File

@ -2,7 +2,7 @@ package matterlink.handlers
import matterlink.bridge.ApiMessage
import matterlink.bridge.MessageHandler
import matterlink.logger
//import matterlink.logger
object ChatHandler {
fun handleChat(user: String, msg: String) {
@ -12,7 +12,7 @@ object ChatHandler {
username = user,
text = message
))
else -> logger.warn("dropped blank message by '$user'")
else -> println("WARN: dropped blank message by '$user'")
}
}
}

View File

@ -1 +1 @@
mod_version = 1.1.2
mod_version = 1.2

View File

@ -1,2 +1,2 @@
rootProject.name = 'MatterLink'
include 'core', '1.12.2'
include 'core', '1.12.2', '1.11.2'