package dk.thoerup.bukkit.hoeruputils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.Plugin; public class MotdHandler implements Listener, CommandExecutor { Plugin plugin; public MotdHandler(Plugin plugin) { this.plugin = plugin; } private String colors(String str) { return ChatColor.translateAlternateColorCodes('&', str ); } private void readMotdFile(CommandSender player) { File motd = new File(plugin.getDataFolder(), "motd.txt"); if (motd.exists()) { try { BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( motd) ) ); String line; while ( (line=in.readLine()) != null) { line = line.trim(); if (line.startsWith("#")) { continue; } if (line.length() > 0) { line = colors(line); player.sendMessage( line ); } } in.close(); } catch (IOException e) { plugin.getLogger().severe("Could not read motd.txt:" + e.getMessage() ); } } } @Override public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) { readMotdFile(sender); return true; } @EventHandler public void onPlayerLogin(PlayerJoinEvent event) { readMotdFile( event.getPlayer() ); ////////////////////////////////////////////////////// StringBuilder sb = new StringBuilder(); for (Player player : plugin.getServer().getOnlinePlayers() ) { sb.append(", "); sb.append( player.getName() ); } String playerlist = ChatColor.YELLOW + "Online players: " + sb.substring(2); event.getPlayer().sendMessage( playerlist ); } }