Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.google.common.base.Joiner;
- import java.io.File;
- import java.io.IOException;
- import java.util.logging.Level;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitRunnable;
- public class ExamplePlugin extends JavaPlugin implements Listener
- {
- private static String lastKilledPlayer = "Notch";
- private File configFile;
- private YamlConfiguration config;
- private String deathMessage = "&cYou were killed by &4{killer}&c!";
- private String deathCommand = "/say {killer} is a murderer!";
- @Override
- public void onEnable()
- {
- createData();
- registerListeners();
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- deathMessage = getDeathMessage();
- deathCommand = getDeathCommand();
- }
- }.runTaskTimerAsynchronously(this, 0L, ((20 * 60) * 60));
- }
- @Override
- public void onDisable()
- {
- Bukkit.getScheduler().cancelTasks(this);
- save();
- }
- private void registerListeners()
- {
- PluginManager pm = Bukkit.getPluginManager();
- pm.registerEvents(this, this);
- }
- @EventHandler
- public void death(PlayerDeathEvent event)
- {
- Player player = event.getEntity();
- if(player.getKiller() != null) //What if the player was pricked to death? NullPointerException, that's what if.
- {
- Player killer = player.getKiller();
- if(isRandom()) //1 in 100 chance.
- {
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), deathCommand.replaceFirst("/", "").replaceAll("{killer}", killer.getName()).replaceAll("{killed}", player.getName()));
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "eco give {killer} 10".replaceAll("{killer}", killer.getName()));
- }
- else
- {
- killer.sendMessage(format("&6Bad luck! (GG)"));
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "eco give {killer} 1".replaceAll("{killer}", killer.getName()));
- }
- event.setDeathMessage(format("&6{killer} &ajust destroyed &3{killed}").replaceAll("{killer}", killer.getName()).replaceAll("{killed}", player.getName()));
- lastKilledPlayer = player.getName();
- }
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
- {
- String cmd = command.getName();
- if(cmd.equalsIgnoreCase("killmessage") || cmd.equalsIgnoreCase("km"))
- {
- String message = Joiner.on(" ").join(args);
- OfflinePlayer potentialPlayer = Bukkit.getOfflinePlayer(lastKilledPlayer);
- if(potentialPlayer.isOnline())
- {
- Player player = (Player)potentialPlayer;
- player.sendMessage(format(message).replaceAll("{killer}", player.getKiller().getName()));
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "Sorry, that player is no longer online!");
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- private String format(String in)
- {
- return ChatColor.translateAlternateColorCodes('&', in);
- }
- public static String getLastDeath()
- {
- return lastKilledPlayer;
- }
- private boolean isRandom()
- {
- return (Math.random() * 100) == 0;
- }
- private void createData()
- {
- getDataFolder().mkdirs();
- configFile = new File(getDataFolder(), "config.yml");
- if(!configFile.exists())
- {
- try
- {
- configFile.createNewFile();
- }
- catch (IOException ex)
- {
- getLogger().log(Level.SEVERE, "{0}There was a problem creating the configuration file.", ChatColor.RED);
- ex.printStackTrace();
- }
- }
- config = YamlConfiguration.loadConfiguration(configFile);
- }
- private String getDeathMessage()
- {
- if(config.contains("lang.death_message"))
- {
- return config.getString("lang.death_message");
- }
- else
- {
- config.set("lang.death_message", "&cYou were killed by &4{killer}&c!");
- save();
- return "&cYou were killed by &4{killer}&c!";
- }
- }
- private String getDeathCommand()
- {
- if(config.contains("command.death"))
- {
- return config.getString("command.death");
- }
- else
- {
- config.set("command.death", "/say {killer} is a murderer!");
- save();
- return "/say {killer} is a murderer!";
- }
- }
- private void save()
- {
- try
- {
- config.save(configFile);
- }
- catch(IOException ex)
- {
- getLogger().log(Level.SEVERE, "{0}There was a problem saving the configuration file.", ChatColor.RED);
- ex.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement