What is the error ?

Discussion in 'Plugin Development' started by Space_BR, May 18, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    Space_BR

    I am creating my chat plugin, but when starting give me error, and dont start the plugin.
    Code:
    10:21:23 [INFORMAÇÕES] [CChat] Enabling CChat v1.0
    10:21:23 [INFORMAÇÕES] [CChat] [CChat] Ativado com sucesso!
    10:21:23 [GRAVE] Error occurred while enabling CChat v1.0 (Is it up to date?)
    java.lang.NullPointerException
        at cchat.Comandos.<init>(Comandos.java:38)
        at cchat.CChat.cmds(CChat.java:41)
        at cchat.CChat.onEnable(CChat.java:30)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:284)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:266)
        at net.minecraft.server.v1_5_R3.MinecraftServer.j(MinecraftServer.java:310)
        at net.minecraft.server.v1_5_R3.MinecraftServer.e(MinecraftServer.java:289)
        at net.minecraft.server.v1_5_R3.MinecraftServer.a(MinecraftServer.java:249)
        at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:160)
        at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388)
        at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
    
    My First class:
    Code:java
    1. package cchat;
    2.  
    3.  
    4. import net.milkbowl.vault.economy.Economy;
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.event.Listener;
    7. import org.bukkit.plugin.Plugin;
    8. import org.bukkit.plugin.RegisteredServiceProvider;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10.  
    11. public class CChat extends JavaPlugin{
    12.  
    13.  
    14. public static CChat instance = null;
    15.  
    16. public static Economy economy;
    17.  
    18. public static CChat getInstance() {
    19. return instance;
    20. }
    21. private static CChat CChat = null;
    22.  
    23. private static Plugin plugin;
    24.  
    25. public void onEnable() {
    26. instance = this;
    27. setupEconomy();
    28. getLogger().info("[CChat] Ativado com sucesso!");
    29. CChat = this;
    30. cmds();
    31. saveDefaultConfig();
    32. eventos();
    33. plugin = this;
    34. }
    35.  
    36. public void onDisable() {
    37. getLogger().info("[CChat] Desativado com sucesso!");
    38. }
    39.  
    40. private void cmds() {
    41. Comandos comandos = new Comandos(this);
    42.  
    43. CChat.getCommand("chat").setExecutor(comandos);
    44. CChat.getCommand("g").setExecutor(comandos);
    45. CChat.getCommand("tell").setExecutor(comandos);
    46. CChat.getCommand("cores").setExecutor(comandos);
    47.  
    48. }
    49.  
    50.  
    51. public void eventos() {
    52. registerEvents(this, new Eventos(this));
    53.  
    54. }
    55.  
    56.  
    57. public static void registerEvents(org.bukkit.plugin.Plugin plugin, Listener... listeners) {
    58. for (Listener listener : listeners) {
    59. Bukkit.getServer().getPluginManager().registerEvents(listener, plugin);
    60. }
    61. }
    62.  
    63. private void setupEconomy() {
    64. RegisteredServiceProvider economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
    65. if (economyProvider != null) {
    66. economy = (Economy) economyProvider.getProvider();
    67. }
    68. }
    69. }


    My Config.yml
    Code:
    #Nome do global, ex> [G][Admin]Sharkey97: Ola ; Global[Admin]Sharkey97: Ola.
    #Seria a tag [G]
    nomeglobal: [G]
    #Cor para o chat global, a cor que  ira possuir.
    corglobal: &8
    #Nome do global, ex> [L][Admin]Sharkey97: Ola ; Local[Admin]Sharkey97: Ola.
    #Seria a tag [L], que ira ser alterada
    nomelocal: [G]
    #Cor para o chat local, a cor que ele ira possuir
    corlocal: &e
    #Tag de seu servidor.
    #EX: Teste1, ela ficara no /chat, e outras ocasioes.
    #OBS: Nao coloque COR.
    tagdoservidor: Teste1
    
    Show Spoiler

    Comandos class:
    Code:java
    1. /*
    2. * To change this license header, choose License Headers in Project Properties.
    3. * To change this template file, choose Tools | Templates
    4. * and open the template in the editor.
    5. */
    6. package cchat;
    7.  
    8. import java.util.ArrayList;
    9. import java.util.List;
    10. import me.subzero0.gladiador2.mensagens.Mensagens;
    11. import net.milkbowl.vault.economy.Economy;
    12. import org.bukkit.Bukkit;
    13. import org.bukkit.Sound;
    14. import org.bukkit.command.Command;
    15. import org.bukkit.command.CommandExecutor;
    16. import org.bukkit.command.CommandSender;
    17. import org.bukkit.entity.Player;
    18. import org.bukkit.event.EventHandler;
    19. import org.bukkit.event.EventPriority;
    20. import ru.tehkode.permissions.PermissionUser;
    21. import ru.tehkode.permissions.bukkit.PermissionsEx;
    22.  
    23. /**
    24. *
    25. * @author fernando
    26. */
    27. public class Comandos implements CommandExecutor {
    28. private CChat plugin;
    29.  
    30. public Comandos(CChat instance) {
    31.  
    32. plugin = instance;
    33. }
    34.  
    35. List<String> telloff = new ArrayList();
    36. List<String> globaloff = new ArrayList();
    37. String tagserver = CChat.getInstance().getConfig().getString("tagdoservidor");
    38. String corglobal = CChat.getInstance().getConfig().getString("corglobal").replaceAll("&", "§");
    39. String nomeglobal = CChat.getInstance().getConfig().getString("nomeglobal");
    40.  
    41. @EventHandler(priority = EventPriority.HIGHEST)
    42. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    43. if (!(sender instanceof Player)) {
    44. sender.sendMessage("Você comando deve ser executado por um jogador");
    45. return true;
    46. }
    47. Player p = (Player) sender;
    48. String comando = cmd.getName();
    49. if (comando.equalsIgnoreCase("chat")) {
    50. if (args.length != 1) {
    51. p.sendMessage("§3[" + tagserver + "]§b Comandos disponiveis:");
    52. p.sendMessage("§bComando §e/chat <chat> §bpara alternar entre ligado e desligado");
    53. p.sendMessage("§b» Chat: §eglobal");
    54. p.sendMessage("§b» Chat: §etell");
    55. return true;
    56.  
    57. }
    58. String chat = args[0].toLowerCase();
    59. String pname = p.getName().toLowerCase();
    60. if (chat.equalsIgnoreCase("tell")) {
    61. if (this.telloff.contains(pname)) {
    62. this.telloff.remove(pname);
    63. p.sendMessage("§3[" + tagserver + "]§aSeu tell foi ativado");
    64. } else {
    65. this.telloff.add(pname);
    66. p.sendMessage("§3[" + tagserver + "]§cSeu tell foi desativado");
    67. }
    68. } else if (chat.equalsIgnoreCase("global")) {
    69. if (this.globaloff.contains(pname)) {
    70. this.globaloff.remove(pname);
    71. p.sendMessage("§aAgora você esta recebendo mensagens do chat global");
    72. } else {
    73. this.globaloff.add(pname);
    74. p.sendMessage("§cVocê desligou o recebimento de mensagens do chat global!");
    75. }
    76.  
    77. } else {
    78. p.sendMessage("§cChat indisponível!");
    79. }
    80. } else if (comando.equalsIgnoreCase("tell")) {
    81. if (args.length < 2) {
    82. p.sendMessage("§cUso correto: /tell nick mensagem");
    83. return true;
    84. }
    85. Player p2 = Bukkit.getPlayer(args[0]);
    86. if (p2 == null) {
    87. p.sendMessage("§cEste jogador esta offline!");
    88. return true;
    89. }
    90. String p2name = p2.getName().toLowerCase();
    91. if (this.telloff.contains(p2name)) {
    92. p.sendMessage("§cEste jogador esta com seu tell desabilitado!");
    93. return true;
    94. }
    95. String msg = "";
    96. for (int i = 1; i < args.length; i++) {
    97. msg = msg + args[i] + " ";
    98. }
    99. p.sendMessage("§8(Mensagem para " + p2.getName() + ") §2" + msg);
    100. p2.sendMessage("§8(Mensagem de " + p.getName() + ") §2" + msg);
    101. } else if (comando.equalsIgnoreCase("g")) {
    102. if (this.globaloff.contains(p.getName().toLowerCase())) {
    103. p.sendMessage("§cVocê esta com seu global desativado! Use /chat para ativar");
    104. return true;
    105. }
    106. if (args.length < 1) {
    107. p.sendMessage("§cUse /g mensagem");
    108. return true;
    109. }
    110. StringBuilder sb = new StringBuilder();
    111. for (String s : args) {
    112. sb.append(s);
    113. sb.append(" ");
    114. }
    115. String msg = sb.toString();
    116. msg = emo(msg);
    117. if (p.hasPermission("chat.cor")) {
    118. msg = msg.replace("&", "§");
    119. }
    120. double custo = 10.0D;
    121. if (custo != 0.0D) {
    122. Economy econ = CChat.economy;
    123. if (econ.getBalance(p.getName()) < custo) {
    124. p.sendMessage("§cVoce nao tem dinheiro suficiente para falar no global");
    125. return true;
    126. }
    127. econ.withdrawPlayer(p.getName(), custo);
    128. }
    129. PermissionUser pu = PermissionsEx.getUser(p);
    130. String prefix = pu.getPrefix().replace("&", "§");
    131. String suffix = pu.getSuffix().replace("&", "§");
    132.  
    133. for (Player pon : Bukkit.getOnlinePlayers()) {
    134. if (!globaloff.contains(pon.getName().toLowerCase())) {
    135.  
    136. String gladiador = (Mensagens.containsVencedor(p.getPlayer().getName()) ? "§c§l[Gladiador]" : "");
    137. pon.sendMessage(corglobal + nomeglobal + gladiador + prefix + suffix + p.getDisplayName() + "§f:" + corglobal + " " + msg);
    138. }
    139. }
    140. List<String> pmarcados = new ArrayList();
    141. for (String s : msg.split(" ")) {
    142. String os = s.replace(",", "").replace(".", "").replace("!", "").replace("*", "").replace("?", "");
    143. if ((os.startsWith("@"))
    144. && (os.length() >= 2)) {
    145. String pmarca = os.split("@")[1];
    146. Player pmarcado = Bukkit.getPlayer(pmarca);
    147. if ((pmarcado != null)
    148. && (!pmarcados.contains(pmarcado.getName()))) {
    149. pmarcados.add(pmarcado.getName());
    150. pmarcado.sendMessage("§6[!] §eJogador " + p.getName() + " mencionou você no global!");
    151. pmarcado.playSound(p.getLocation(), Sound.CLICK, 7.0F, 1.0F);
    152. }
    153. }
    154. }
    155. }
    156. return true;
    157. }
    158.  
    159. public static String emo(String s) {
    160. s = s.replace("<<", "«");
    161. s = s.replace(">>", "»");
    162. s = s.replace("s2", "♥");
    163. s = s.replace(":)", "☺");
    164. s = s.replace("(88)", "♫");
    165. s = s.replace("(8)", "♪");
    166. return s;
    167. }
    168.  
    169. }
    170. [/i]


    The local chat:
    Code:java
    1. /*
    2. * To change this license header, choose License Headers in Project Properties.
    3. * To change this template file, choose Tools | Templates
    4. * and open the template in the editor.
    5. */
    6.  
    7. package cchat;
    8.  
    9. import me.subzero0.gladiador2.mensagens.Mensagens;
    10. import org.bukkit.Location;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.EventPriority;
    14. import org.bukkit.event.Listener;
    15. import org.bukkit.event.player.AsyncPlayerChatEvent;
    16. import ru.tehkode.permissions.PermissionUser;
    17. import ru.tehkode.permissions.bukkit.PermissionsEx;
    18.  
    19. /**
    20. *
    21. * @author fernando
    22. */
    23. public class Eventos implements Listener {
    24. private CChat plugin;
    25.  
    26. public Eventos(CChat instance) {
    27. plugin = instance;
    28. }
    29.  
    30.  
    31.  
    32. String corlocal = CChat.getInstance().getConfig().getString("corlocal").replaceAll("&", "§");
    33. String nomelocal = CChat.getInstance().getConfig().getString("nomelocal");
    34.  
    35. @EventHandler(priority = EventPriority.HIGHEST)
    36. public void playerChat(AsyncPlayerChatEvent e) {
    37. Player p = e.getPlayer();
    38. Location l = p.getLocation();
    39. int distanciamaxima = 75;
    40. String por_msg = "%2$s";
    41. String msg = e.getMessage();
    42. Object[] jareceptores = e.getRecipients().toArray();
    43. e.getRecipients().clear();
    44. for (Object ps : jareceptores) {
    45. Player pps = (Player) ps;
    46. if (p.getWorld() != pps.getWorld()) {
    47. continue;
    48. }
    49. double distancia = l.distance(pps.getLocation());
    50. if (distancia <= distanciamaxima) {
    51. e.getRecipients().add(pps);
    52. }
    53. }
    54. if ((e.getRecipients().isEmpty()) || (e.getRecipients().size() == 1)) {
    55. p.sendMessage("§eNinguem pode ler esta mensagem!");
    56. e.setCancelled(true);
    57. return;
    58. }
    59. PermissionUser pu = PermissionsEx.getUser(p);
    60. String prefix = pu.getPrefix().replace("&", "§");
    61. String suffix = pu.getSuffix().replace("&", "§");
    62. if (!p.hasPermission("chat.capslock")) {
    63. msg = msg.toLowerCase();
    64. }
    65. if (p.hasPermission("chat.cor")) {
    66. msg = msg.replace("&", "§");
    67. }
    68. String gladiador = (Mensagens.containsVencedor(p.getPlayer().getName()) ? "§c§l[Gladiador]" : "");
    69. e.setMessage(msg);
    70. e.setFormat(corlocal + nomelocal + gladiador + prefix + suffix + p.getDisplayName() + "§f:" + corlocal + " " + por_msg);
    71. }
    72.  
    73. }
    74.  


     
  2. Offline

    metalhedd

  3. Offline

    Space_BR

    I check and solve, but now is giving error here:
    @Edit:
    Code:
     [GRAVE] Could not load 'plugins/CChat.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:306)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:241)
        at org.bukkit.craftbukkit.v1_5_R3.CraftServer.<init>(CraftServer.java:219)
        at net.minecraft.server.v1_5_R3.PlayerList.<init>(PlayerList.java:55)
        at net.minecraft.server.v1_5_R3.DedicatedPlayerList.<init>(SourceFile:11)
        at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:93)
        at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388)
        at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.NullPointerException
        at cchat.CChat.<init>(CChat.java:62)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178)
        ... 9 more
    
     
  4. Offline

    metalhedd

    So, use what you've just learned. all the information you need to find the exact file and line # is right here. read it. find your bug, and fix it.
     
Thread Status:
Not open for further replies.

Share This Page