Diff
checker
Texto
Texto
Imagens
Documentos
Excel
Pastas
Legal
Enterprise
Aplicativo para desktop
Preços
Fazer login
Baixar o Diffchecker Desktop
Comparar texto
Encontre a diferença entre dois arquivos de texto
Ferramentas
Histórico
Editor live
Ocultar espaços em branco
Recolher inalteradas
Sem quebra de linha
Layout
Dividido
Unificado
Nível de detalhe
Inteligente
Palavra
Caractere
Estilos de texto
Alterar aparência
Realce de sintaxe
Escolher sintaxe
Ignorar
Transformar texto
Ir à primeira mudança
Editar entrada
Diffchecker Desktop
A maneira mais segura de usar o Diffchecker. Obtenha o aplicativo Diffchecker Desktop: seus diffs nunca saem do seu computador!
Obter Desktop
Untitled diff
Criado
há 9 anos
O diff nunca expira
Limpar
Exportar
Compartilhar
Explicar
55 remoções
Linhas
Total
Removido
Caracteres
Total
Removido
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
73 linhas
Copiar tudo
78 adições
Linhas
Total
Adicionado
Caracteres
Total
Adicionado
Para continuar usando este recurso, atualize para
Diff
checker
Pro
Ver preços
106 linhas
Copiar tudo
public class Main extends JavaPlugin implements Listener {
public class Main extends JavaPlugin implements Listener {
Copiar
Copiado
Copiar
Copiado
private ItemStack starterDChest;
private HashMap<UUID, Integer> cooldown = new HashMap<UUID, Integer>();
public void onEnable() {
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
Bukkit.getServer().getPluginManager().registerEvents(this, this);
Copiar
Copiado
Copiar
Copiado
starterDChest = new ItemStack(Material.DIAMOND_CHESTPLATE);
ItemMeta dchestmeta = starterDChest.getItemMeta();
ArrayList<String> lore = new ArrayList<String>(); //Moved this down here because why create it if they can't even use the command?
dchestmeta.setDisplayName(ChatColor.AQUA + ChatColor.BOLD.toString() + "Starter!");
lore.add(ChatColor.BLUE + ChatColor.ITALIC.toString() + "Gives you the Starter Gear!!");
lore.add(""); //Will probably have more success with empty Strings as placeholders rather than null String objects
lore.add("");
lore.add(ChatColor.WHITE + ChatColor.BOLD.toString() + "--" +
ChatColor.RED + ChatColor.BOLD.toString() + "JUST LEFT/RIGHT CLICK"
+ ChatColor.WHITE + ChatColor.BOLD.toString() + "--" );
dchestmeta.setLore(lore);
starterDChest.setItemMeta(dchestmeta);
new BukkitRunnable() { //This is gonna be our global loop so that we don't have to create a task for every person that uses the kit
@Override
public void run() {
for(Player all : getServer().getOnlinePlayers()) {
if(!cooldown.containsKey(all.getUniqueId())) continue; //Not relevant; not in cooldown list, skip them
if(cooldown.get(all.getUniqueId()) <= 0) {
//Done cooling down
cooldown.remove(all.getUniqueId());
all.sendMessage(ChatColor.GREEN + "You can use kit again!!");
}
else {
//Still cooling down
int timeLeftSec = cooldown.put(all.getUniqueId(), cooldown.get(all.getUniqueId()) - 1); //Subtracts a second from their wait time
if(timeLeftSec % 60 == 0) {
all.sendMessage(ChatColor.RED + "You have " + (timeLeftSec / 60) + ((timeLeftSec / 60) == 1 : "minute" : "minutes") + " left for Starter kit!!");
}
}
}
}
}, this, 0L, 1*20L); //Run every second with a 0 tick delay
}
}
Copiar
Copiado
Copiar
Copiado
ArrayList<Player> cooldown = new ArrayList<Player>();
@Override
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) {
Copiar
Copiado
Copiar
Copiado
if (
label
.equalsIgnoreCase("k")) {
if (
cmd.getName()
.equalsIgnoreCase("k")) {
//Backwards compatible with aliases entry in the plugin.yml
ArrayList<String> lore = new ArrayList<String>();
final Player p = (Player) sender;
if (!(sender instanceof Player)) {
if (!(sender instanceof Player)) {
Copiar
Copiado
Copiar
Copiado
p
.sendMessage("You need to be a Player to do this Command!");
sender
.sendMessage("You need to be a Player to do this Command!");
return true; //This tells the method to stop here and go back, ignoring underneath parts.
}
}
Copiar
Copiado
Copiar
Copiado
Player p = (Player) sender; //Now we can safely do this, earlier we were doing it before we were sure it was a player, good try though.
ItemStack dchest = new ItemStack(Material.DIAMOND_CHESTPLATE);
ItemMeta dchestmeta = dchest.getItemMeta();
dchestmeta.setDisplayName(ChatColor.AQUA + ChatColor.BOLD.toString() + "Starter!");
lore.add(ChatColor.BLUE + ChatColor.ITALIC.toString() + "Gives you the Starter Gear!!");
lore.add(null);
lore.add(null);
lore.add(ChatColor.WHITE + ChatColor.BOLD.toString() + "--" +
ChatColor.RED + ChatColor.BOLD.toString() + "JUST LEFT/RIGHT CLICK"
+ ChatColor.WHITE + ChatColor.BOLD.toString() + "--" );
dchestmeta.setLore(lore);
dchest.setItemMeta(dchestmeta);
Inventory inv = Bukkit.createInventory(null, 27, ChatColor.RED + ChatColor.BOLD.toString() + "Kits");
Inventory inv = Bukkit.createInventory(null, 27, ChatColor.RED + ChatColor.BOLD.toString() + "Kits");
Copiar
Copiado
Copiar
Copiado
inv.setItem(0,
dchest);
inv.setItem(0,
starterDChest);
p.openInventory(inv);
p.openInventory(inv);
}
}
return true;
return true;
}
}
@EventHandler
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
public void onInventoryClick(InventoryClickEvent e) {
Copiar
Copiado
Copiar
Copiado
if (
e.getInventory().getTitle().equals(ChatColor.RED + ChatColor.BOLD.toString() + "Kits")) {
if (
!
e.getInventory().getTitle().equals(ChatColor.RED + ChatColor.BOLD.toString() + "Kits")) {
int time = 20*25;
return; //Forget about this occurrence of the event then, we aren't interested
ItemStack ironh = new ItemStack(Material.IRON_HELMET);
}
ironh.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
//Because of the above if statement, we know it's the inventory we're looking for. This removes all that excessive indentation from before
ItemStack ironc = new ItemStack(Material.IRON_CHESTPLATE);
//Time no longer needed since we created a global loop
ironc.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ItemStack ironh = new ItemStack(Material.IRON_HELMET);
ItemStack ironl = new ItemStack(Material.IRON_LEGGINGS);
ironh.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ironl.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ItemStack ironc = new ItemStack(Material.IRON_CHESTPLATE);
ItemStack ironb = new ItemStack(Material.IRON_BOOTS);
ironc.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ironb.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ItemStack ironl = new ItemStack(Material.IRON_LEGGINGS);
ironb.addEnchantment(Enchantment.PROTECTION_FALL, 1);
ironl.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
ItemStack irons = new ItemStack(Material.IRON_SWORD);
ItemStack ironb = new ItemStack(Material.IRON_BOOTS);
irons.addEnchantment(Enchantment.DAMAGE_ALL, 1);
ironb.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1);
irons.addEnchantment(Enchantment.DURABILITY, 3);
ironb.addEnchantment(Enchantment.PROTECTION_FALL, 1);
ItemStack irons = new ItemStack(Material.IRON_SWORD);
if (cooldown.contains(
e.getWhoClicked()
)) {
irons.addEnchantment(Enchantment.DAMAGE_ALL, 1);
e.getWhoClicked().sendMessage("until next kit!");
irons.addEnchantment(Enchantment.DURABILITY, 3);
e.setCancelled(true);
Player p = (Player)
e.getWhoClicked()
;
} else if (e.getSlot() == 0) {
if (cooldown.containsKey(p.getUniqueId())) {
e.setCancelled(true);
int minutes = (int) TimeUnit.SECONDS.toMinutes(cooldown.get(p.getUniqueId()));
e.getWhoClicked().getInventory().addItem(ironh, ironc, ironl, ironb, irons);
String cdMessage = "";
e.getWhoClicked().closeInventory();
if(minutes == 0) {
cooldown.add((Player) e.getWhoClicked());
int seconds =
cooldown.
get(p.getUniqueId
());
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
cdMessage += (seconds == 1 ? "second" : "seconds") + " left";
public void run() {
}
cooldown.
remove(e.getWhoClicked
());
else {
e.getWhoClicked().sendMessage(ChatColor.RED + "You can use kit Starter again!!");
cdMessage += (minutes == 1 ? "minute" : "minutes") + " left";
}
}, time);
e.getWhoClicked().sendMessage(ChatColor.RED + "Given Starter!");
}
}
Copiar
Copiado
Copiar
Copiado
p.sendMessage(cdMessage + " until next kit!");
e.setCancelled(true);
return;
}
//They aren't in cooldown due to the return in the cooldown if-statement
if(e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR)) {
return;
}
if(e.getCurrentItem().equals(starterDChest)) { //if clicked item (current, clicked, etc) is equal to the starter diamond chest kit item
e.setCancelled(true);
p.getInventory().addItem(ironh, ironc, ironl, ironb, irons);
p.closeInventory();
cooldown.put(p.getUniqueId(), 25); //25 seconds for the cooldown!
p.sendMessage(ChatColor.RED + "Given Starter!");
return;
}
}
}
}
}
}
Diferenças salvas
Texto original
Abrir arquivo
public class Main extends JavaPlugin implements Listener { public void onEnable() { Bukkit.getServer().getPluginManager().registerEvents(this, this); } ArrayList<Player> cooldown = new ArrayList<Player>(); @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) { if (label.equalsIgnoreCase("k")) { ArrayList<String> lore = new ArrayList<String>(); final Player p = (Player) sender; if (!(sender instanceof Player)) { p.sendMessage("You need to be a Player to do this Command!"); } ItemStack dchest = new ItemStack(Material.DIAMOND_CHESTPLATE); ItemMeta dchestmeta = dchest.getItemMeta(); dchestmeta.setDisplayName(ChatColor.AQUA + ChatColor.BOLD.toString() + "Starter!"); lore.add(ChatColor.BLUE + ChatColor.ITALIC.toString() + "Gives you the Starter Gear!!"); lore.add(null); lore.add(null); lore.add(ChatColor.WHITE + ChatColor.BOLD.toString() + "--" + ChatColor.RED + ChatColor.BOLD.toString() + "JUST LEFT/RIGHT CLICK" + ChatColor.WHITE + ChatColor.BOLD.toString() + "--" ); dchestmeta.setLore(lore); dchest.setItemMeta(dchestmeta); Inventory inv = Bukkit.createInventory(null, 27, ChatColor.RED + ChatColor.BOLD.toString() + "Kits"); inv.setItem(0, dchest); p.openInventory(inv); } return true; } @EventHandler public void onInventoryClick(InventoryClickEvent e) { if (e.getInventory().getTitle().equals(ChatColor.RED + ChatColor.BOLD.toString() + "Kits")) { int time = 20*25; ItemStack ironh = new ItemStack(Material.IRON_HELMET); ironh.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ItemStack ironc = new ItemStack(Material.IRON_CHESTPLATE); ironc.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ItemStack ironl = new ItemStack(Material.IRON_LEGGINGS); ironl.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ItemStack ironb = new ItemStack(Material.IRON_BOOTS); ironb.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ironb.addEnchantment(Enchantment.PROTECTION_FALL, 1); ItemStack irons = new ItemStack(Material.IRON_SWORD); irons.addEnchantment(Enchantment.DAMAGE_ALL, 1); irons.addEnchantment(Enchantment.DURABILITY, 3); if (cooldown.contains(e.getWhoClicked())) { e.getWhoClicked().sendMessage("until next kit!"); e.setCancelled(true); } else if (e.getSlot() == 0) { e.setCancelled(true); e.getWhoClicked().getInventory().addItem(ironh, ironc, ironl, ironb, irons); e.getWhoClicked().closeInventory(); cooldown.add((Player) e.getWhoClicked()); Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { cooldown.remove(e.getWhoClicked()); e.getWhoClicked().sendMessage(ChatColor.RED + "You can use kit Starter again!!"); } }, time); e.getWhoClicked().sendMessage(ChatColor.RED + "Given Starter!"); } } } }
Texto alterado
Abrir arquivo
public class Main extends JavaPlugin implements Listener { private ItemStack starterDChest; private HashMap<UUID, Integer> cooldown = new HashMap<UUID, Integer>(); public void onEnable() { Bukkit.getServer().getPluginManager().registerEvents(this, this); starterDChest = new ItemStack(Material.DIAMOND_CHESTPLATE); ItemMeta dchestmeta = starterDChest.getItemMeta(); ArrayList<String> lore = new ArrayList<String>(); //Moved this down here because why create it if they can't even use the command? dchestmeta.setDisplayName(ChatColor.AQUA + ChatColor.BOLD.toString() + "Starter!"); lore.add(ChatColor.BLUE + ChatColor.ITALIC.toString() + "Gives you the Starter Gear!!"); lore.add(""); //Will probably have more success with empty Strings as placeholders rather than null String objects lore.add(""); lore.add(ChatColor.WHITE + ChatColor.BOLD.toString() + "--" + ChatColor.RED + ChatColor.BOLD.toString() + "JUST LEFT/RIGHT CLICK" + ChatColor.WHITE + ChatColor.BOLD.toString() + "--" ); dchestmeta.setLore(lore); starterDChest.setItemMeta(dchestmeta); new BukkitRunnable() { //This is gonna be our global loop so that we don't have to create a task for every person that uses the kit @Override public void run() { for(Player all : getServer().getOnlinePlayers()) { if(!cooldown.containsKey(all.getUniqueId())) continue; //Not relevant; not in cooldown list, skip them if(cooldown.get(all.getUniqueId()) <= 0) { //Done cooling down cooldown.remove(all.getUniqueId()); all.sendMessage(ChatColor.GREEN + "You can use kit again!!"); } else { //Still cooling down int timeLeftSec = cooldown.put(all.getUniqueId(), cooldown.get(all.getUniqueId()) - 1); //Subtracts a second from their wait time if(timeLeftSec % 60 == 0) { all.sendMessage(ChatColor.RED + "You have " + (timeLeftSec / 60) + ((timeLeftSec / 60) == 1 : "minute" : "minutes") + " left for Starter kit!!"); } } } } }, this, 0L, 1*20L); //Run every second with a 0 tick delay } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] arg) { if (cmd.getName().equalsIgnoreCase("k")) { //Backwards compatible with aliases entry in the plugin.yml if (!(sender instanceof Player)) { sender.sendMessage("You need to be a Player to do this Command!"); return true; //This tells the method to stop here and go back, ignoring underneath parts. } Player p = (Player) sender; //Now we can safely do this, earlier we were doing it before we were sure it was a player, good try though. Inventory inv = Bukkit.createInventory(null, 27, ChatColor.RED + ChatColor.BOLD.toString() + "Kits"); inv.setItem(0, starterDChest); p.openInventory(inv); } return true; } @EventHandler public void onInventoryClick(InventoryClickEvent e) { if (!e.getInventory().getTitle().equals(ChatColor.RED + ChatColor.BOLD.toString() + "Kits")) { return; //Forget about this occurrence of the event then, we aren't interested } //Because of the above if statement, we know it's the inventory we're looking for. This removes all that excessive indentation from before //Time no longer needed since we created a global loop ItemStack ironh = new ItemStack(Material.IRON_HELMET); ironh.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ItemStack ironc = new ItemStack(Material.IRON_CHESTPLATE); ironc.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ItemStack ironl = new ItemStack(Material.IRON_LEGGINGS); ironl.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ItemStack ironb = new ItemStack(Material.IRON_BOOTS); ironb.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); ironb.addEnchantment(Enchantment.PROTECTION_FALL, 1); ItemStack irons = new ItemStack(Material.IRON_SWORD); irons.addEnchantment(Enchantment.DAMAGE_ALL, 1); irons.addEnchantment(Enchantment.DURABILITY, 3); Player p = (Player) e.getWhoClicked(); if (cooldown.containsKey(p.getUniqueId())) { int minutes = (int) TimeUnit.SECONDS.toMinutes(cooldown.get(p.getUniqueId())); String cdMessage = ""; if(minutes == 0) { int seconds = cooldown.get(p.getUniqueId()); cdMessage += (seconds == 1 ? "second" : "seconds") + " left"; } else { cdMessage += (minutes == 1 ? "minute" : "minutes") + " left"; } p.sendMessage(cdMessage + " until next kit!"); e.setCancelled(true); return; } //They aren't in cooldown due to the return in the cooldown if-statement if(e.getCurrentItem() == null || e.getCurrentItem().getType().equals(Material.AIR)) { return; } if(e.getCurrentItem().equals(starterDChest)) { //if clicked item (current, clicked, etc) is equal to the starter diamond chest kit item e.setCancelled(true); p.getInventory().addItem(ironh, ironc, ironl, ironb, irons); p.closeInventory(); cooldown.put(p.getUniqueId(), 25); //25 seconds for the cooldown! p.sendMessage(ChatColor.RED + "Given Starter!"); return; } } }
Encontrar Diferença