CommandExecutor not working (Only 1 Command!)

Discussion in 'Plugin Development' started by Dealyise, May 31, 2014.

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

    Dealyise

    Hello, first of all, my english isn't the best since I am from Germany. Maybe I also meet some german dev's here :)

    My problem: /register is not working for any reason. I am using the CommandExecutor for every Command and quite every command works, except /register and I don't know why. I've censored some lines because it's not necessary to see that :p When typing /register and the given syntax, nothing happens, no reaction, either InGame nor Console ...

    Here are the snip's:

    For registering the Events & Commands
    Code:java
    1. public static void register(Listener listener, Plugin plugin) {
    2.  
    3. Bukkit.getServer().getPluginManager().registerEvents(listener, plugin);
    4.  
    5. }
    6.  
    7. public static void command(CommandExecutor exec, String cmd) {
    8. Bukkit.getPluginCommand(cmd).setExecutor(exec);
    9. }


    Initializing everything in onEnable....
    Code:java
    1.  
    2. // Alle Listener registrieren
    3. java.lang.System.out.println("@@@[System] Initializing Listeners...");
    4. sysFunc.register(new PlayerJoin(), this);
    5. sysFunc.register(new PlayerLogin(), this);
    6. sysFunc.register(new SignHandle(), this);
    7. sysFunc.register(new EXPListener(), this);
    8.  
    9.  
    10. // Alle Befehle registrieren
    11. java.lang.System.out.println("@@@[System] Initializing Commands...");
    12. sysFunc.command(new LoginCommand(), "login");
    13. sysFunc.command(new RegisterCommand(), "register");
    14. sysFunc.command(new HelpCommand(), "help");
    15. sysFunc.command(new ReclassCommand(), "reclass");
    16. sysFunc.command(new GangCommand(), "gang");
    17. sysFunc.command(new ChatGang(), "g");
    18. sysFunc.command(new GangPay(), "gpay");
    19. sysFunc.command(new GangTake(), "gtake");
    20. sysFunc.command(new MoneyCommand(), "money");
    21. sysFunc.command(new GangInviteCommand(), "invite");
    22. sysFunc.command(new GangUninviteCommand(), "uninvite");
    23. sysFunc.command(new GangKick(), "gkick");
    24. sysFunc.command(new GangMoneyCommand(), "gmoney");
    25. sysFunc.command(new GangGiveRankCommand(), "giverank");
    26. sysFunc.command(new RobCommand(), "rob");
    27. sysFunc.command(new PNCommand(), "pn");
    28. sysFunc.command(new ReplyCommand(), "r");
    29. sysFunc.command(new AllCommand(), "all");
    30. sysFunc.command(new StatsCommand(), "stats");
    31. sysFunc.command(new RadioChat(), "d");
    32. sysFunc.command(new PayCommand(), "pay");
    33. sysFunc.command(new TpCommand(), "tp");
    34. sysFunc.command(new TphereCommand(), "tphere");
    35. sysFunc.command(new TestCommand(), "rcontest");
    36.  


    And now, the RegisterCommandClass:
    Code:java
    1. import java.sql.ResultSet;
    2. import java.sql.SQLException;
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandExecutor;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.plugin.Plugin;
    10.  
    11. public class RegisterCommand implements CommandExecutor {
    12.  
    13. public static System plugin;
    14.  
    15.  
    16. @Override
    17. public boolean onCommand(CommandSender sender, Command cmd, String label,
    18. String[] args) {
    19. // TODO Auto-generated method stub
    20.  
    21. if (args.length == 2) {
    22. if (args[1].toString().contains("@")) {
    23. if (!(args[0].length() <= 8)) {
    24.  
    25. plugin.sql.openConnection();
    26.  
    27. boolean isAlreadyRegistered = false;
    28. ResultSet getQuery = plugin
    29. .sql.ReturnQuery("...'");
    30. try{
    31. while(getQuery.next()){
    32. isAlreadyRegistered = true;
    33. }
    34. }catch (SQLException e) {
    35. e.printStackTrace();
    36. }
    37.  
    38. if (isAlreadyRegistered == true) {
    39. sysFunc.msg((Player) sender,
    40. "Dieser Account wurde bereits registriert! Bitte logge dich ein!");
    41. sysFunc.msg(
    42. (Player) sender,
    43. "Falls du dein Passwort vergessen hast, kannst du es unter ... zurücksetzen.");
    44. plugin.sql.closeConnection();
    45. } else {
    46. plugin.sql.queryUpdate("...");
    47. sysFunc.msg((Player) sender,
    48. "Du hast dich erfolgreich registriert. Bitte logge dich nun ein!");
    49. PlayerJoin.login.add((Player) sender);
    50. plugin.sql.closeConnection();
    51. }
    52. } else {
    53. sysFunc.msg((Player) sender,
    54. "Dein Passwort muss mindestens 8 Zeichen lang sein!");
    55. }
    56. } else {
    57. sysFunc.msg((Player) sender,
    58. "Bitte gebe eine gültige Email Addresse an!");
    59. }
    60.  
    61. } else {
    62. sysFunc.msg((Player) sender, "/register <Passwort> <Email>");
    63. }
    64.  
    65. return true;
    66. }
    67.  
    68. }


    PlayerJoin.class:
    Code:java
    1. import java.sql.ResultSet;
    2. import java.sql.SQLException;
    3. import java.util.ArrayList;
    4. import java.util.ConcurrentModificationException;
    5.  
    6.  
    7.  
    8.  
    9.  
    10. import org.bukkit.Location;
    11. import org.bukkit.entity.Player;
    12. import org.bukkit.event.EventHandler;
    13. import org.bukkit.event.Listener;
    14. import org.bukkit.event.player.PlayerJoinEvent;
    15. import org.bukkit.event.player.PlayerQuitEvent;
    16.  
    17.  
    18. public class PlayerJoin implements Listener {
    19. public static ArrayList<Player> login = new ArrayList<Player>();
    20. public static System plugin;
    21. private static boolean taskRunning = false;
    22. public static void startTask() {
    23. if (taskRunning || login.size() == 0) return;
    24. taskRunning = true;
    25. long interval = Math.round(1 * 100.0);
    26. plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin,
    27. new HeartsTask(), interval, interval);
    28. }
    29.  
    30. public static void endTask() {
    31. if (!taskRunning || login.size() > 0) return;
    32. taskRunning = false;
    33. plugin.getServer().getScheduler().cancelTasks(plugin);
    34. }
    35.  
    36. public static class HeartsTask implements Runnable {
    37. @SuppressWarnings("deprecation")
    38. public void run() {
    39. //Check for Login
    40. try{
    41. if(login.size() >= 1){
    42. for(Player p : login){
    43. plugin.sql.openConnection();
    44. //String name = p.getName();
    45. Player nameFound = null;
    46. boolean foundOffline = false;
    47. ResultSet getOnlineStatus = plugin.sql.ReturnQuery("...");
    48. try{
    49. while(getOnlineStatus.next()){
    50. foundOffline = true;
    51. nameFound = p;
    52.  
    53. }
    54. }catch (SQLException ex){
    55.  
    56. }
    57. if(foundOffline == true){
    58. int tries = 0;
    59.  
    60. plugin.sql.closeConnection();
    61. plugin.sql.openConnection();
    62.  
    63. boolean foundTries = false;
    64. ResultSet getTries = plugin.sql.ReturnQuery("...");
    65. try{
    66. while(getTries.next()){
    67. tries = getTries.getInt("logintries");
    68. foundTries = true;
    69. }
    70. }catch(SQLException e){
    71.  
    72. }
    73. if(foundTries == true){
    74. if(!(tries >= 6)){
    75. sysFunc.msg(nameFound, "Bitte logge dich via /login ein!");
    76. tries++;
    77. plugin.sql.queryUpdate("...");
    78. plugin.sql.closeConnection();
    79. }else{
    80. tries = 0;
    81. plugin.sql.queryUpdate("...");
    82. nameFound.kickPlayer("§6Zeit abgelaufen! Bitte logge dich ein!");
    83.  
    84. }
    85.  
    86.  
    87. }
    88.  
    89. }else{
    90. login.remove(nameFound);
    91. plugin.sql.closeConnection();
    92. }
    93.  
    94. }
    95.  
    96.  
    97.  
    98.  
    99. }else{
    100. endTask();
    101.  
    102. }
    103. java.lang.System.err.println("Fehler beim überprüfen: " + e.getMessage());
    104.  
    105. }
    106. }
    107. }
    108.  
    109.  
    110. @EventHandler
    111. public void onPlayerJoin(PlayerJoinEvent e){
    112. plugin.sql.openConnection();
    113. boolean isAlreadyRegistered = false;
    114. ResultSet getQuery = plugin
    115. .sql.ReturnQuery("...'");
    116. try{
    117. while(getQuery.next()){
    118. isAlreadyRegistered = true;
    119. }
    120. }catch (SQLException ex) {
    121. ex.printStackTrace();
    122. }
    123.  
    124. if (isAlreadyRegistered == true) {
    125. sysFunc.msg(e.getPlayer(), "Hallo! Bitte logge dich mit deinen Daten via /login ein!");
    126. plugin.sql.closeConnection();
    127. login.add(e.getPlayer());
    128. if(login.size() >= 1){
    129. startTask();
    130. }
    131.  
    132. }else{
    133. sysFunc.msg(e.getPlayer(), "Hallo! Bitte registriere dich via /register!");
    134. plugin.sql.closeConnection();
    135. login.add(e.getPlayer());
    136. if(login.size() >= 1){
    137. startTask();
    138. }
    139.  
    140. }
    141. try{
    142. DataModifier.getPlayerData(e.getPlayer());
    143. String inJail = jail.checkJailTime(e.getPlayer());
    144. if(inJail != "Nein"){
    145. final Location loc = new Location(sysFunc.plugin.getServer().getWorld("world"), 99.12157, 64.000, 53.00666, (float)14.43837, (float)91.41412);
    146. e.getPlayer().teleport(loc);
    147. EXPListener.jailList.put(e.getPlayer(), 0);
    148. }
    149. }catch(Exception ex){
    150.  
    151. }
    152.  
    153. }
    154.  
    155. @EventHandler
    156. public void onPlayerLeave(PlayerQuitEvent e){
    157. String inJail = jail.checkJailTime(e.getPlayer());
    158. if(inJail != "Nein"){
    159. if(EXPListener.jailList.containsKey(e.getPlayer())){
    160. EXPListener.jailList.remove(e.getPlayer());
    161. }
    162. }
    163. DataModifier.updatePlayerData(e.getPlayer());
    164. DataModifier.deleteFile(e.getPlayer());
    165. plugin.sql.openConnection();
    166. if(login.contains(e.getPlayer())){
    167. login.remove(e.getPlayer());
    168. plugin.sql.queryUpdate("...'");
    169.  
    170. }
    171.  
    172. ResultSet getAccount = plugin.sql.ReturnQuery("...");
    173. boolean hasAccount = false;
    174. try{
    175. while(getAccount.next()){
    176. hasAccount = true;
    177. }
    178. }catch(SQLException ex){
    179.  
    180. }
    181. if(hasAccount == true){
    182. plugin.sql.queryUpdate("...'");
    183. plugin.sql.closeConnection();
    184. }else{
    185. java.lang.System.out.println("Spieler: " + e.getPlayer().getName() + " war als Gast online.");
    186. plugin.sql.closeConnection();
    187. }
    188.  
    189.  
    190.  
    191. if(login.size() == 0){
    192. endTask();
    193. }
    194. }
    195. }
    196.  


    plugin.yml:
    Code:
    name: ....
    main: me.Temphis.sys.System
    author: Temphis
    description: ....
    version: 0.0.1
    commands:
      login:
          description: Loggt sich ein
      register:
          description: Registriert sich
      help:
          description: Zeigt die Hilfe an
      reclass:
          description: Wechselt die Klasse
      gang:
          description: Zeigt die Gang Statistik an
      g:
          description: Chat fuer Gang
      gpay:
          description: Zahlt in die Gruppenkasse ein
      gtake:
          description: Zahlt einen Betrag aus der Gruppenkasse aus
      money:
          description: Zeigt den aktuellen Geldstand
      invite:
          description: Invite Modul zum einladen und akzeptieren
      uninvite:
          description: Uninvite Modul zum ausladen
      gkick:
          description: Kickt einen Spieler aus der Gang
      gmoney:
          description: Zeigt die aktuelle Gangkasse
      giverank:
          description: verteilt einen Gruppenrang
      rob:
          description: Raubt einen Spieler aus
      rcontest:
          description: Test
      pn:
          description: Kommunikation zwischen Spielern
      r:
          description: Antwortmodul fuer PN
      all:
          description: All CHat
      stats:
          description: Zeigt die Stats des Spielers
      d:
          description: Radio Chat fuer Cops
      pay:
          description: Zahlt einen Betrag an einen Spieler
      tp:
          description: Teleport Funktion
      tphere:
          description: Teleport Funktion

    Any idea? Because I don't have some ideas left! I am really confused at the moment... maybe it's jsut a stupid mistake. Please tell me the mistake asap :p
     
  2. Offline

    Dealyise

    Does no one has an idea? I am out of 'em D:
     
Thread Status:
Not open for further replies.

Share This Page