Implement advancement relaying

This commit is contained in:
DaMachinator 2018-01-23 10:10:42 -05:00 committed by Arcanitor
parent bd91a381cd
commit c2aa8cb143
2 changed files with 27 additions and 6 deletions

View File

@ -3,9 +3,11 @@ package civilengineering
import civilengineering.bridge.MessageHandler import civilengineering.bridge.MessageHandler
import civilengineering.bridge.ServerChatHelper import civilengineering.bridge.ServerChatHelper
import civilengineering.command.BridgeCommand import civilengineering.command.BridgeCommand
import civilengineering.eventhandlers.AdvancementEventHandler
import civilengineering.eventhandlers.ChatMessageHandler import civilengineering.eventhandlers.ChatMessageHandler
import civilengineering.eventhandlers.DeathEventHandler import civilengineering.eventhandlers.DeathEventHandler
import civilengineering.eventhandlers.CommandEventHandler import civilengineering.eventhandlers.CommandEventHandler
import net.minecraft.advancements.Advancement
import net.minecraftforge.common.MinecraftForge import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.Mod
import net.minecraftforge.fml.common.event.* import net.minecraftforge.fml.common.event.*
@ -49,12 +51,6 @@ object CivilEngineering {
CivilEngineeringConfig(event.modConfigurationDirectory) CivilEngineeringConfig(event.modConfigurationDirectory)
} }
@Mod.EventHandler
fun postInit(event: FMLPostInitializationEvent) {
// MinecraftForge.EVENT_BUS.register(ServerChatHelper::class.java)
}
@Mod.EventHandler @Mod.EventHandler
fun serverStarting(event: FMLServerStartingEvent) { fun serverStarting(event: FMLServerStartingEvent) {
logger.debug("Registering bridge commands") logger.debug("Registering bridge commands")
@ -66,10 +62,13 @@ object CivilEngineering {
MinecraftForge.EVENT_BUS.register(ChatMessageHandler()) MinecraftForge.EVENT_BUS.register(ChatMessageHandler())
MinecraftForge.EVENT_BUS.register(DeathEventHandler()) MinecraftForge.EVENT_BUS.register(DeathEventHandler())
MinecraftForge.EVENT_BUS.register(CommandEventHandler()) MinecraftForge.EVENT_BUS.register(CommandEventHandler())
MinecraftForge.EVENT_BUS.register(AdvancementEventHandler())
} }
@Mod.EventHandler @Mod.EventHandler
fun serverStopping(event: FMLServerStoppingEvent) { fun serverStopping(event: FMLServerStoppingEvent) {
MessageHandler.stop() MessageHandler.stop()
} }
} }

View File

@ -0,0 +1,22 @@
package civilengineering.eventhandlers
import civilengineering.CivilEngineering
import civilengineering.CivilEngineeringConfig
import civilengineering.bridge.ApiMessage
import civilengineering.bridge.MessageHandler
import civilengineering.cfg
import net.minecraftforge.event.entity.player.AdvancementEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class AdvancementEventHandler {
@SubscribeEvent
fun handleAdvancements(event: AdvancementEvent) {
if(cfg!!.relay.advancements && event.advancement.display != null) {
val zwsp: Char = '\u200B'
var player: String = event.entityPlayer.name
player = player[0].toString()+zwsp+player.substring(1) //antiping
//toString is necessary, otherwise the JVM thinks we're trying to do integer addition
MessageHandler.transmit(ApiMessage("Server",player+" has earned the advancement "+event.advancement.displayText.unformattedText))
}
}
}