Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package PvP;
- import java.util.HashMap;
- import java.util.logging.Logger;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Projectile;
- import org.bukkit.entity.ThrownPotion;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.event.entity.PotionSplashEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- /**
- *
- * @author Harry
- */
- public class pvpmain extends JavaPlugin implements Listener
- {
- public static HashMap<String, Long> names;
- public void onEnable()
- {
- names = new HashMap<String, Long>();
- Logger.getLogger("Minecraft").info("[StonedPvP] Stoneharry's PvP System Enabled.");
- getServer().getPluginManager().registerEvents(this, this);
- }
- public void onDisable()
- {
- names.clear();
- Logger.getLogger("Minecraft").info("[StonedPvP] Stoneharry's PvP System Disabled.");
- }
- @EventHandler
- public void OnPlayerDamage(EntityDamageEvent event)
- {
- if (event.isCancelled())
- return;
- if ((event.getEntity() instanceof Player))
- {
- if ((event instanceof EntityDamageByEntityEvent))
- {
- Player plr = (Player)event.getEntity();
- EntityDamageByEntityEvent edbye = (EntityDamageByEntityEvent)event;
- if (edbye.getDamager() instanceof Player)
- {
- Player damager = (Player)edbye.getDamager();
- if (names.containsKey(damager.getName()))
- {
- if (names.containsKey(plr.getName()))
- {
- String damage = String.valueOf(event.getDamage());
- plr.sendMessage(ChatColor.RED + "You took " + damage + " from " + damager.getName() + "'s attack!");
- damager.sendMessage(ChatColor.RED + "You dealt " + damage + " to " + plr.getName() + "!");
- names.put(plr.getName(), System.currentTimeMillis());
- }
- else
- {
- damager.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "Your target does not have PvP enabled.");
- event.setCancelled(true);
- }
- }
- else
- {
- damager.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "You do not have PvP enabled. To turn it on, do: /pvp");
- event.setCancelled(true);
- }
- }
- else if (edbye.getDamager() instanceof Projectile)
- {
- if (!names.containsKey(plr.getName()))
- event.setCancelled(true);
- Projectile arrow = (Projectile)edbye.getDamager();
- if (arrow.getShooter() instanceof Player)
- {
- Player p = (Player)arrow.getShooter();
- if (!names.containsKey(p.getName()))
- event.setCancelled(true);
- }
- }
- }
- }
- }
- @EventHandler
- public void PotionHit(PotionSplashEvent event)
- {
- if (event.isCancelled())
- return;
- ThrownPotion potion = event.getPotion();
- if ((potion.getShooter() instanceof Player))
- {
- Player damager = (Player)potion.getShooter();
- for (LivingEntity entity : event.getAffectedEntities())
- {
- if ((!(entity instanceof Player)) || (((Player)entity).equals(damager)))
- continue;
- Player plr = (Player)entity;
- if (!names.containsKey(plr.getName()))
- event.setCancelled(true);
- }
- }
- }
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent event)
- {
- String name = event.getPlayer().getName();
- if (names.containsKey(name))
- {
- long time = names.get(name);
- int result = (int)(System.currentTimeMillis()-time);
- if (result < 60000)
- {
- event.getPlayer().sendMessage(ChatColor.RED + "You logged out while in PvP! Go die in a fire.");
- event.getPlayer().setFireTicks(10000);
- names.remove(name);
- }
- }
- }
- @EventHandler
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
- {
- if(cmd.getName().equalsIgnoreCase("pvp"))
- {
- String name = sender.getName();
- if (names.containsKey(name))
- {
- long time = names.get(name);
- int result = (int)(System.currentTimeMillis()-time);
- if (result > 30000)
- {
- names.remove(name);
- sender.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "PvP is now disabled.");
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "You must wait " + ChatColor.AQUA + String.valueOf(30-(result/1000)) + ChatColor.RED + " more seconds before you can disable PvP!");
- }
- }
- else
- {
- names.put(name, System.currentTimeMillis());
- sender.sendMessage(ChatColor.AQUA + "[ChaoticUnited] " + ChatColor.RED + "PvP is now enabled.");
- }
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment