Skip to content

Instantly share code, notes, and snippets.

@codermason
Last active August 29, 2015 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codermason/8722046 to your computer and use it in GitHub Desktop.
Save codermason/8722046 to your computer and use it in GitHub Desktop.
plugin requested by user on Bukkit forums
package com.codermason.randmotd;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.bukkit.ChatColor;
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.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
public class RandomMOTD extends JavaPlugin {
private List<String> motd = new ArrayList<String>();
public void onEnable() {
this.saveDefaultConfig();
loadMOTD();
this.getLogger().info("Loaded "+motd.size()+" MOTD(s)!");
this.getServer().getPluginManager().registerEvents(new Listener() {
@EventHandler
public void onJoin(PlayerJoinEvent e) {
if(!e.getPlayer().hasPlayedBefore())
sendMOTD(e.getPlayer());
}
}, this);
}
private void sendMOTD(final Player p) {
new BukkitRunnable() {
public void run() {p.sendMessage(ChatColor.translateAlternateColorCodes('&', getRandomMOTD().replace("%player%", p.getName())));}
}.runTaskLater(this, 3L);
}
private String getRandomMOTD() {
return motd.size() < 1 ? "Welcome, %player%!" : motd.size() == 1 ? motd.get(0) : motd.get(new Random().nextInt(motd.size()-1));
}
private void loadMOTD() {
this.motd.addAll(this.getConfig().getStringList("motds"));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment