package org.freeforums.geforce.securitycraft.ircbot; import java.io.IOException; import java.util.Scanner; import net.minecraft.command.PlayerNotFoundException; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumChatFormatting; import org.freeforums.geforce.securitycraft.main.mod_SecurityCraft; import org.jibble.pircbot.IrcException; import org.jibble.pircbot.NickAlreadyInUseException; import org.jibble.pircbot.PircBot; import org.jibble.pircbot.User; public class SCIRCBot extends PircBot{ public SCIRCBot(String par1String){ this.setName(par1String); } public void connectToChannel() throws IOException, IrcException, NickAlreadyInUseException{ this.connect("irc.esper.net"); this.joinChannel("#GeforceMods"); } protected void onMessage(String channel, String sender, String login, String hostname, String message) { for(User user: this.getUsers(channel)){ if(channel.matches("#GeforceMods") && (user.hasVoice()|| user.isOp()) && (message.startsWith((this.getNick() + ":")) || message.startsWith((this.getNick() + ",")))){ sendMessageToPlayer(EnumChatFormatting.YELLOW + "<" + sender + " (IRC) --> " + getPlayerFromName((this.getNick().replace("SCUser_", ""))).getCommandSenderName() + "> " + EnumChatFormatting.RESET + (message.startsWith(this.getNick() + ":") ? message.replace(this.getNick() + ":", "") : message.replace(this.getNick() + ",", "")), getPlayerFromName((this.getNick().replace("SCUser_", "")))); break; } } } /** * Not working yet! */ @Deprecated protected void onPrivateMessage(String sender, String login, String hostname, String message) { if(sender.matches("Cadbury") && message.toLowerCase().contains("more messages waiting")){ this.sendMessage("Cadbury", "$showtell"); }else if(sender.matches("Cadbury") && message.contains("--")){ mod_SecurityCraft.log("Cadbury sent message to " + this.getNick() + ": " + message); Scanner scanner = new Scanner(message); scanner.useDelimiter("--"); scanner.next(); String trimmedMessage = scanner.next(); mod_SecurityCraft.log(trimmedMessage); sendMessageToPlayer(EnumChatFormatting.YELLOW + "[Reply]: " + EnumChatFormatting.RESET + trimmedMessage, getPlayerFromName((this.getNick().replace("SCUser_", "")))); } } private void sendMessageToPlayer(String par1String, EntityPlayer par2EntityPlayer){ ChatComponentTranslation component = new ChatComponentTranslation(par1String, new Object[0]); par2EntityPlayer.addChatComponentMessage(component); } private EntityPlayer getPlayerFromName(String name){ EntityPlayerMP entityplayermp = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(name); //MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(name); if (entityplayermp == null) { throw new PlayerNotFoundException(); } else { return entityplayermp; } } }