yLR111 Postado Julho 30, 2019 Denunciar Compartilhar Postado Julho 30, 2019 Quero salvar uma hashmap em config public static ConfigApi blockconfig; public static Main plugin; HashMap<String, Integer> blocos = new HashMap<String, Integer>(); public int count; public void onEnable() { plugin = this; Bukkit.getPluginManager().registerEvents(this, this); blockconfig = new ConfigApi("blocos.yml", this); } public void onDisable() { } @EventHandler public void onBlockBreak(BlockBreakEvent e) { Block b = e.getBlock(); Player p = e.getPlayer(); if(blocos.containsKey(p.getName())) { blocos.put(p.getName(), ++count); p.sendMessage("§eBlocos: " + blocos.get(p.getName())); }else { blocos.put(p.getName(), 1); p.sendMessage("Jogador inserido na HashMap."); } } Link para o comentário Compartilhar em outros sites More sharing options...
0 Ducky Postado Julho 30, 2019 Denunciar Compartilhar Postado Julho 30, 2019 transforme a hashmap e string Link para o comentário Compartilhar em outros sites More sharing options...
0 ramon-bernardo Postado Julho 30, 2019 Denunciar Compartilhar Postado Julho 30, 2019 (editado) Você quer fazer um sistema que, quando o jogador quebra um bloco, salva e fica contado na config, certo? Você pode usar este sistema, ele vai salvar sempre que o jogador for kickado, deslogar. Também vai criar uma tabela quando os jogadores logarem e não tiverem no Hashmap. Você pode usar no onDisable(), ou uma task, para salvar todos jogadores online, assim: saveBlocksAll(); Pode pegar a quantia que um jogador tem de blocos(o que está salvo na blocos.yml) usando: getBlocks(player); E também pode salvar um jogador, coloque true para criar uma HashMap e, false para salvar. saveBlocks(player, false); Este é o exemplo que criei: OBS: usei eventos também e recomendo. OBS: Também usei toLowerCase() para evitar jogadores com nome editado por exemplo: RBN, RBn Rbn... OBS: Não sei se funciona, fiz rapidinho :d @edit: esqueci de remover as hasmap, usei blocos.remove(nome); HashMap<String, Integer> blocos = new HashMap<String, Integer>(); public void saveBlocksAll() { for (Player player : Bukkit.getOnlinePlayers()) { String nome = player.getName().toLowerCase(); if (blocos.get(nome) > 0) { blockconfig.set(nome, getBlocks(player) + blocos.get(nome)); blocos.remove(nome); } } } public void saveBlocks(Player player, boolean load) { String nome = player.getName().toLowerCase(); if (blocos.containsKey(nome) == null && load) { blocos.put(nome, 1); } if (blocos.get(nome) > 0 && !load) { blockconfig.set(nome, getBlocks(player) + blocos.get(nome)); blocos.remove(nome); } } public int getBlocks(Player player) { String nome = player.getName().toLowerCase(); if (blockconfig.containsKey(nome) != null) { return blockconfig.getInt(nome); } return 0; } @EventHandler(priority=EventPriority.MONITOR) public void playerJoin(PlayerJoinEvent event) { saveBlocks(event.getPlayer(), true); } @EventHandler(priority=EventPriority.MONITOR) public void playerJoin(PlayerQuitEvent event) { saveBlocks(event.getPlayer(), false); } @EventHandler(priority=EventPriority.MONITOR) public void playerJoin(PlayerKickEvent event) { saveBlocks(event.getPlayer(), false); } Editado Julho 30, 2019 por RBN 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Jota ♨️ Postado Julho 30, 2019 Denunciar Compartilhar Postado Julho 30, 2019 Sua dúvida foi marcada como resolvida pela nossa equipe. Caso sua dúvida não tenha sido sanada, crie outro tópico. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
yLR111
Quero salvar uma hashmap em config
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados