Get args for SQL from onCommand HELP :)

Discussion in 'Plugin Development' started by CraftRay, Dec 30, 2015.

Thread Status:
Not open for further replies.
  1. So, i do not know how to download args username from OnCommand method. I would like get username and find his nickname in mysql...

    There is a list in Class CrConfig:
    Code:
    public static List<User> selectUser() {
                    List<User> users = new LinkedList<User>();
                         try {
                             ResultSet result = stat.executeQuery("SELECT * FROM PexCraft WHERE username LIKE '"+Commands.username+"' ORDER BY id");
                             String username, previous_group, new_group, start_time, end_time, server, uuid;
                             int id;
                             while(result.next()) {
                                 id = result.getInt("id");
                                 username = result.getString("username");
                                 uuid = result.getString("uuid");
                                 previous_group = result.getString("previous_group");
                                 new_group = result.getString("new_group");
                                 start_time = result.getString("start_time");
                                 end_time = result.getString("end_time");
                                 server = result.getString("server");
                                 users.add(new User(id, username, uuid, previous_group, new_group, start_time, end_time, server));
                             }
                         } catch (SQLException e) {
                             e.printStackTrace();
                             return null;
                         }
                         return users;
            }
    
    
    And this is a Commands Class:

    Code:
    package me.xcraftrayx.pl;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Commands extends JavaPlugin implements Listener {
    
        CrConfig mysql = new CrConfig();
       
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
            if(cmd.getName().equalsIgnoreCase("pexcraft")){
                if(sender instanceof Player){
                    Player player = (Player) sender;
                    if(args.length > 1){
                        sender.sendMessage(ChatColor.RED + "Podałeś za dużo argumentów");
                        return false;
                    }
                    else if(args.length == 1){
                        CrConfig.selectUser();
                        String username = args[0];
                    }
                }
            }
            return true;
        }
    }
    
     
  2. Offline

    Xerox262

    Give your selectUser method a String parameter, then pass your args[0] to the method?
     
  3. @Xerox262 Can you give me example, because i don't uderstand... :p I from Poland :)
     
  4. Look into args[] and args.length, that should help you out.
     
  5. Code:
       public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
           if(cmd.getName().equalsIgnoreCase("pexcraft")){
               if(sender instanceof Player){
                    Player player = (Player) sender;
                   if(args.length > 1){
                        sender.sendMessage(ChatColor.RED + "Podałeś za dużo argumentów");
                       return false;
                   }
                   else if(args.length == 1){
                        CrConfig.selectUser();
                       String username = args[0];
                   }
               }
    Well, I'm not going to ask you why you have that in your Main class.

    args.length == 0 = /pexcraft
    I really can't explain lol

    You know Essentials? If I do /help, help is args.length 0
    If I wanna use /help 2, args.length = 1

    args[0] == /example kawaii
    args[1] == /example kawaii desu

    (Java starts at 0, not at 1)

    Omfg I'm so bad in explaining >.<
     
  6. @Pr0totype2 I know that, so i don't know how to send value from args[0] to that (Commands.username):
    Code:
    ResultSet result = stat.executeQuery("SELECT * FROM PexCraft WHERE username LIKE '"+Commands.username+"' ORDER BY id");
     
  7. I don't get your question...
     
  8. @Pr0totype2 Look there is not working: +Commands.username+

    Aaaa.... okey i done it :p
    I must add public static String username; and delete Type username in onCommand :) xD

    To close.
     
    Last edited: Dec 30, 2015
  9. Offline

    mythbusterma

    @CraftRay

    You want to know what would be really funny? If I said the username I'm looking for was:

    'DROP TABLES --

    Or something of that nature. Don't directly put strings into your SQL queries, use prepared statements.
     
Thread Status:
Not open for further replies.

Share This Page