package me.gtacraft.plugins.giveall;
import me.gtacraft.api.GTAGunsAPI;
import me.gtacraft.gun.Gun;
import me.gtacraft.gun.GunData;
import me.gtacraft.player.GunHolder;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
/**
* Created by Connor on 7/17/14. Designed for the GTA-Giveall project.
*/
public class GTAGiveall extends JavaPlugin implements Listener {
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPreProcessCommand(PlayerCommandPreprocessEvent event) {
Player player = event.getPlayer();
if (event.getMessage().equalsIgnoreCase("/give all") || event.getMessage().equalsIgnoreCase("/give all")) {
if (!(player.isOp())) {
return;
}
event.setCancelled(true);
ItemStack inHand = event.getPlayer().getItemInHand();
if (inHand == null || inHand.getType().equals(Material.AIR))
return;
Gun gun = GTAGunsAPI.getGunFromItem(inHand);
if (gun != null) {
GunHolder holder = GunHolder.getHolder(player);
if (holder.getCurrentWeapon() == null) {
player.sendMessage(ChatColor.RED+"Please hold the gun you wish to give to everyone!");
return;
}
player.getInventory().remove(player.getItemInHand());
GunData give = holder.getCurrentWeapon();
for (Player online : Bukkit.getOnlinePlayers()) {
if (online.equals(player))
continue;
GTAGunsAPI.giveGun(online, give.getModel());
online.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&lYou were given a &e"+give.getModel().getAttribute("name").getStringValue()+"&c&l!"));
}
player.sendMessage(ChatColor.GREEN+"You gave "+ChatColor.YELLOW+ (Bukkit.getOnlinePlayers().length-1)+ChatColor.GREEN+" people the gun in your hand!");
return;
} else {
player.getInventory().remove(player.getItemInHand());
for (Player online : Bukkit.getOnlinePlayers()) {
if (online.equals(player))
continue;
online.getInventory().addItem(inHand);
online.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&lYou were given a &e"+getItemName(inHand)+"&c&l!"));
}
player.sendMessage(ChatColor.GREEN+"You gave "+ChatColor.YELLOW+ (Bukkit.getOnlinePlayers().length-1)+ChatColor.GREEN+" people the item in your hand!");
return;
}
}
}
public static String getItemName(ItemStack is){
if(is.hasItemMeta() && is.getItemMeta().hasDisplayName()) return is.getItemMeta().getDisplayName();
String sys_name = is.getType().name();
String epic_name = "";
if(sys_name.contains("_")){
for(String word : sys_name.split("_")){
epic_name = epic_name + word.substring(0,1).toUpperCase() + word.substring(1, word.length()).toLowerCase() + " ";
}
if(epic_name.endsWith(" ")) epic_name = epic_name.substring(0, epic_name.length() - 1);
return epic_name;
} else {
return is.getType().name().substring(0, 1).toUpperCase() + is.getType().name().substring(1, is.getType().name().length()).toLowerCase();
}
}
}