diff --git a/src/main/java/org/ultramine/server/UMEventHandler.java b/src/main/java/org/ultramine/server/UMEventHandler.java new file mode 100644 index 0000000..e61dde8 --- /dev/null +++ b/src/main/java/org/ultramine/server/UMEventHandler.java @@ -0,0 +1,44 @@ +package org.ultramine.server; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.util.ChatComponentStyle; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.ServerChatEvent; + +public class UMEventHandler +{ + @SubscribeEvent + public void onServerChat(ServerChatEvent e) + { + String prefix = PermissionHandler.getInstance().getMeta(e.player, "prefix").replace('&', '\u00A7'); + String postfix = PermissionHandler.getInstance().getMeta(e.player, "postfix").replace('&', '\u00A7'); + + String namecolor = PermissionHandler.getInstance().getMeta(e.player, "color"); + String msgcolor = PermissionHandler.getInstance().getMeta(e.player, "textcolor"); + + ChatComponentStyle username = (ChatComponentStyle) e.player.func_145748_c_(); + ChatComponentStyle msg = new ChatComponentText(e.message); + + if(!namecolor.isEmpty()) + { + EnumChatFormatting color = EnumChatFormatting.getByColorCode(namecolor.charAt(0)); + if(color != null) + username.getChatStyle().setColor(color); + } + + if(!msgcolor.isEmpty()) + { + EnumChatFormatting color = EnumChatFormatting.getByColorCode(msgcolor.charAt(0)); + if(color != null) + msg.getChatStyle().setColor(color); + } + else + { + msg.getChatStyle().setColor(EnumChatFormatting.WHITE); + } + + e.component = new ChatComponentTranslation("%s%s%s\u00A77: %s", prefix, username, postfix, msg); + } +} diff --git a/src/main/java/org/ultramine/server/UltramineServerModContainer.java b/src/main/java/org/ultramine/server/UltramineServerModContainer.java index 10c244f..c6eac33 100644 --- a/src/main/java/org/ultramine/server/UltramineServerModContainer.java +++ b/src/main/java/org/ultramine/server/UltramineServerModContainer.java @@ -5,6 +5,7 @@ import java.util.Map; import net.minecraft.server.MinecraftServer; +import net.minecraftforge.common.MinecraftForge; import com.google.common.collect.ImmutableList; import com.google.common.eventbus.EventBus; @@ -14,6 +15,7 @@ import cpw.mods.fml.common.LoadController; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.event.FMLConstructionEvent; +import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerAboutToStartEvent; @@ -58,6 +60,12 @@ if(e.getSide().isServer()) ConfigurationHandler.load(); } + + @Subscribe + public void init(FMLInitializationEvent e) + { + MinecraftForge.EVENT_BUS.register(new UMEventHandler()); + } @Subscribe public void postInit(FMLPostInitializationEvent e) @@ -73,6 +81,16 @@ } @Subscribe + public void serverStarting(FMLServerStartingEvent e) + { + e.registerArgumentHandlers(DefaultCompleters.class); + e.registerCommands(BasicPermissionCommands.class); + e.registerCommands(VanillaCommands.class); + + e.getPermissionHandler().createGroup(OpPermissionProxySet.OP_GROUP, "*"); + } + + @Subscribe public void serverStopped(FMLServerStoppedEvent e) { MinecraftServer.getServer().getMultiWorld().unregister(); @@ -98,21 +116,6 @@ ); } - @Subscribe - public void serverStarting(FMLServerStartingEvent e) - { - e.registerArgumentHandlers(DefaultCompleters.class); - e.registerCommands(BasicPermissionCommands.class); - e.registerCommands(VanillaCommands.class); - - e.getPermissionHandler().createGroup(OpPermissionProxySet.OP_GROUP, "*"); - } - - @Subscribe - public void stopServer(FMLServerStoppedEvent e) - { - } - @Override public Object getMod() {