Ir para conteúdo

kawa

Membros
  • Total de itens

    10
  • Registro em

  • Última visita

Sobre kawa

Informações pessoais

  • Nick do Minecraft
    Kaayro

Últimos Visitantes

411 visualizações
  1. Um ótimo profissional, atencioso, rápido. Super recomendo.
  2. Mais eu não entendo por que está dando erro nessas linhas, esse é o código da linha http://prntscr.com/oq2sk1
  3. Fiz o que você disse e refiz o código exatamente como está no github mas continuo com o erro. http://prntscr.com/op9eio
  4. Claro, aqui está: http://prntscr.com/op7twc http://prntscr.com/op7tyo
  5. Olá, eu nunca usei JDA então por favor desconsidere qualquer erro obvio. Eu estava vendo o vídeo do The Source Code sobre integrar o Discord com o minecraft, mais especificamente os cargos, eu consegui fazer a primeira parte com êxito que é a do sistema de verificação, mas quando chegou na parte de dar os cargos em si tive problema com erro então fui no git do Source e copiei exatamente o código que ele usou e continuei com erro. Tentei buscar ajuda em alguns outros lugares mas não consegui, espero que vocês possam me ajudar. Minha classe para definir os cargos: public class C07 implements Listener { private Main plugin; private HashMap<String, Role> permissionRoleMap; public C07(Main main) { this.plugin = main; permissionRoleMap = new HashMap<>(); Bukkit.getScheduler().runTaskLater(plugin, this::loadRoles,40L); Bukkit.getServer().getPluginManager().registerEvents(this,plugin); } private void loadRoles() { plugin.getConfig().getConfigurationSection("Role-sync").getKeys(false).forEach(s -> { String rolename = plugin.getConfig().getString("Role-sync."+s+".Name"); if(plugin.c06.guild.getRolesByName(rolename, false).size()>0){ plugin.console.sendMessage("§aCargo "+rolename+" foi carregado!"); String permission = plugin.getConfig().getString("Role-sync."+s+".Permission"); Role role = plugin.c06.guild.getRolesByName(rolename,false).get(0); permissionRoleMap.put(permission,role); } }); } @EventHandler public void onQuit(PlayerQuitEvent e){ Player player = e.getPlayer(); if(plugin.c06.verifiedmembers.contains(player.getUniqueId())){ plugin.c06.verifiedmembers.remove(player.getUniqueId()); String discordid = plugin.playerData.getString("Data."+player.getUniqueId().toString()); Member member = plugin.c06.guild.getMemberById(discordid); if(member==null)return; List<Role> rolestoadd = new ArrayList<>(); List<Role> rolestoremove = new ArrayList<>(); List<Role> memberroles = member.getRoles(); permissionRoleMap.forEach((permission,role)->{ if(player.hasPermission(permission)){ if(!memberroles.contains(role))rolestoadd.add(role); }else{ if(memberroles.contains(role))rolestoremove.add(role); } }); if(!rolestoadd.isEmpty()){ plugin.c06.guild.getController().addRolesToMember(member,rolestoadd).queue(); } if(!rolestoremove.isEmpty()){ Bukkit.getScheduler().runTaskLater(plugin,()->plugin.c06.guild.getController().removeRolesFromMember(member,rolestoremove).queue(),20L); } } } } Minha classe para o sisteme de vincular: public class C06 extends ListenerAdapter implements CommandExecutor, Listener { private Main plugin; public HashMap<UUID,String>uuidCodeMap; public HashMap<UUID,String>uuidIdMap; public List<UUID>verifiedmembers; public Guild guild; public JDA jda; public C06(Main main) { this.plugin = main; startBot(); uuidCodeMap = new HashMap<>(); uuidIdMap = new HashMap<>(); verifiedmembers = new ArrayList<>(); jda.addEventListener(this); plugin.getServer().getPluginManager().registerEvents(this,plugin); plugin.getCommand("vincular").setExecutor(this); Bukkit.getScheduler().runTaskLater(plugin,()->guild = jda.getGuildById("602509228996952064"),100L); } private void startBot() { try { jda = new JDABuilder(AccountType.BOT).setToken("N").build(); } catch (LoginException e) { e.printStackTrace(); } } @Override public void onGuildMessageReceived(GuildMessageReceivedEvent event) { if(event.getAuthor().isBot()||event.getAuthor().isFake()||event.isWebhookMessage())return; String[] args = event.getMessage().getContentRaw().split(" "); if(args[0].equalsIgnoreCase("!vincular")){ //!link if(event.getMember().getRoles().stream().filter(role -> role.getName().equals("Membro")).findAny().orElse(null) != null){ event.getChannel().sendMessage("Ops "+event.getAuthor().getAsMention()+", você já está verificado!").queue(); return; } if(uuidIdMap.values().contains(event.getAuthor().getId())){ event.getChannel().sendMessage("Ops "+event.getAuthor().getAsMention()+", você já possui um código gerado!").queue(); return; } if(args.length!=2){ event.getChannel().sendMessage("Ops você precisa especificar player!").queue(); return; } Player target = Bukkit.getPlayer(args[1]); if(target==null){ event.getChannel().sendMessage("Ops jogador não esta online!").queue(); return; } String randomcode = new Random().nextInt(800000)+200000+"AA"; uuidCodeMap.put(target.getUniqueId(),randomcode); uuidIdMap.put(target.getUniqueId(),event.getAuthor().getId()); event.getAuthor().openPrivateChannel().complete().sendMessage("Hey! Seu código de verificação foi gerado!\n" + "Use esse comando no jogo: ``/vincular "+randomcode+"``").queue(); } } @EventHandler public void onJoin(PlayerJoinEvent e){ if(plugin.playerData.contains("Data."+e.getPlayer().getUniqueId().toString())){ verifiedmembers.add(e.getPlayer().getUniqueId()); } } @EventHandler public void onQuit(PlayerQuitEvent e){ verifiedmembers.remove(e.getPlayer().getUniqueId()); uuidCodeMap.remove(e.getPlayer().getUniqueId()); uuidIdMap.remove(e.getPlayer().getUniqueId()); } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { // /verify randomcodeAA if(!(sender instanceof Player)){ sender.sendMessage("§cApenas jogadores!"); return true; } Player player = (Player) sender; if(plugin.playerData.contains("Data."+player.getUniqueId().toString())){ player.sendMessage("§cOps, você já está verificado!"); return true; } if(!uuidCodeMap.containsKey(player.getUniqueId())){ player.sendMessage("§cNot pending verification process!"); return true; } if(args.length!=1){ player.sendMessage("§cUse: /vincular <código>"); return true; } String actualcode = uuidCodeMap.get(player.getUniqueId()); if(!actualcode.equals(args[0])){ player.sendMessage("§cCódigo invalido! Por favor, tente novamente."); return true; } String discordid = uuidIdMap.get(player.getUniqueId()); Member target = guild.getMemberById(discordid); if(target==null){ uuidCodeMap.remove(player.getUniqueId()); uuidIdMap.remove(player.getUniqueId()); player.sendMessage("§cError! It seems that you left our Discord server!"); return true; } plugin.playerData.set("Data."+player.getUniqueId().toString(),discordid); try { plugin.playerData.save(plugin.data); } catch (IOException e) { e.printStackTrace(); } uuidCodeMap.remove(player.getUniqueId()); uuidIdMap.remove(player.getUniqueId()); verifiedmembers.add(player.getUniqueId()); Role verifiedrole = guild.getRolesByName("Membro",false).get(0); guild.getController().addSingleRoleToMember(target,verifiedrole).queue(); target.getUser().openPrivateChannel().complete().sendMessage(":white_check_mark: **|** Verification successfully, you have linked your account with Mc account: "+player.getName()).queue(); player.sendMessage("§aYou have been verified correctly! You linked your account with member: "+target.getUser().getName()+"#"+target.getUser().getDiscriminator()); return true; } } Minha Main: public class Main extends JavaPlugin implements Listener { public ConsoleCommandSender console; public FileConfiguration playerData; public File data; public C06 c06; public C07 c07; @Override public void onEnable() { console = Bukkit.getServer().getConsoleSender(); createConfig(); console.sendMessage("[Plugin] Plugin Ativado!"); c06 = new C06(this); c07 = new C07(this); } private void createConfig() { saveDefaultConfig(); data = new File(getDataFolder() + File.separator + "data.yml"); if (!data.exists()) { console.sendMessage(org.bukkit.ChatColor.LIGHT_PURPLE + "[Plugin] Criando arquivo data.yml"); this.saveResource("data.yml", false); } playerData = new YamlConfiguration(); try { playerData.load(data); } catch (IOException | InvalidConfigurationException e) { e.printStackTrace(); } } @Override public void onDisable() { c06.jda.shutdownNow(); console.sendMessage("[Plugin] Plugin desativado!"); } } O erro: http://prntscr.com/op7q19 *OBS: Desculpe a organização do tópico, ainda sou novo aqui.
  6. Sugestão: Adiciona um comando para acionar e desativar esse sistema, tipo /antidrop on, /antidrop off
  7. Deixa as permissões do plugin ;-; Ops... as permissões está na config
  8. Eu simplesmente adorei rsrs, preciso de alguns mapas mandei solicitação no Discord.
  9. Humm, não estou conseguido te te adicionar, por favor entre em contato comigo: Kaayro#9277
×
×
  • Criar Novo...