From c2aa8cb143ff70c329a698310c34020f40f92fa5 Mon Sep 17 00:00:00 2001 From: DaMachinator Date: Tue, 23 Jan 2018 10:10:42 -0500 Subject: [PATCH] Implement advancement relaying --- .../civilengineering/CivilEngineering.kt | 11 +++++----- .../eventhandlers/AdvancementEventHandler.kt | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 src/main/kotlin/civilengineering/eventhandlers/AdvancementEventHandler.kt diff --git a/src/main/kotlin/civilengineering/CivilEngineering.kt b/src/main/kotlin/civilengineering/CivilEngineering.kt index 5b7e7cc..f33f63a 100644 --- a/src/main/kotlin/civilengineering/CivilEngineering.kt +++ b/src/main/kotlin/civilengineering/CivilEngineering.kt @@ -3,9 +3,11 @@ package civilengineering import civilengineering.bridge.MessageHandler import civilengineering.bridge.ServerChatHelper import civilengineering.command.BridgeCommand +import civilengineering.eventhandlers.AdvancementEventHandler import civilengineering.eventhandlers.ChatMessageHandler import civilengineering.eventhandlers.DeathEventHandler import civilengineering.eventhandlers.CommandEventHandler +import net.minecraft.advancements.Advancement import net.minecraftforge.common.MinecraftForge import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.event.* @@ -49,12 +51,6 @@ object CivilEngineering { CivilEngineeringConfig(event.modConfigurationDirectory) } - @Mod.EventHandler - fun postInit(event: FMLPostInitializationEvent) { -// MinecraftForge.EVENT_BUS.register(ServerChatHelper::class.java) - - } - @Mod.EventHandler fun serverStarting(event: FMLServerStartingEvent) { logger.debug("Registering bridge commands") @@ -66,10 +62,13 @@ object CivilEngineering { MinecraftForge.EVENT_BUS.register(ChatMessageHandler()) MinecraftForge.EVENT_BUS.register(DeathEventHandler()) MinecraftForge.EVENT_BUS.register(CommandEventHandler()) + MinecraftForge.EVENT_BUS.register(AdvancementEventHandler()) } @Mod.EventHandler fun serverStopping(event: FMLServerStoppingEvent) { MessageHandler.stop() } + + } diff --git a/src/main/kotlin/civilengineering/eventhandlers/AdvancementEventHandler.kt b/src/main/kotlin/civilengineering/eventhandlers/AdvancementEventHandler.kt new file mode 100644 index 0000000..4fdbbf7 --- /dev/null +++ b/src/main/kotlin/civilengineering/eventhandlers/AdvancementEventHandler.kt @@ -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)) + } + } +} \ No newline at end of file