messaging a player through a command

Discussion in 'Plugin Development' started by i3ick, Apr 22, 2013.

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

    i3ick

    Hey, is it possible to message a player through a command like this /cmd <player> <message>
    like this: /hit i3ick behave yourself!

    If it is, how would I go about setting it up? Thanks a bunch :)
     
  2. Offline

    Ivan

    grab the player from argument 0, combine the other strings using a stringbuilder. After send the message to the player.
    To grab the player use getServer().getPlayerExact(playername);
    to send the player a message use player.sendMessage("message");
     
  3. Yes that's possible.
    Learn Java, and study this tutorial afterwards.
     
  4. Offline

    i3ick

    Ivan, wouldn't player.sendMessage("message"); just send a message that is predefined? I would like that the command issuer can write a custom message, that would then be sent to the target player.
     
  5. Offline

    vYN

    This should do the trick...

    Code:
    if(cmd.getName().equalsIgnoreCase("msg")){
                    if (args.length < 1){
                        sender.sendMessage("Missing the player name.");
                        sender.sendMessage("Usage: /msg playerName <message>");
                        return true;
                    }else if(args.length > 1){
                        Player player = (Player) sender;
                        Player target = player.getServer().getPlayer(args[0]);
                        StringBuilder sb = new StringBuilder();
                        for(int i = 1; i < args.length; i++)
                        {
                            sb.append(args[i]).append(" ");
                        }
                        String msg = sb.toString().trim();
                        if(!(target == null)){
                            target.sendMessage("[MSG] " + player.getName() + ": " + msg);
                            player.sendMessage("[MSG] " + target.getName() + ": " + msg);
                            return true;
                        }else{
                            player.sendMessage("Player is not online!");
                            return true;
                        }
                }
     
  6. Offline

    i3ick

    Hmmm I think I messed somthing up, it isn't quite working:

    Code:
    else if(cmd.getName().equalsIgnoreCase("slap")){
                    if(!sender.hasPermission("mum.slap")){
                        sender.sendMessage("No permission");
                        return true;
                    }
                    if(args.length==1){
                    Player target = sender.getServer().getPlayer(args[0]);
                    if(target==null){
                        player.sendMessage("Player not found!");
                    }
                    else if(args.length==1){
                        target.damage(1);
                   
                    }
                   
                    else if(args.length > 1){
                        Player player1 = (Player) sender;
                        Player target1 = sender.getServer().getPlayer(args[0]);
                        StringBuilder sb = new StringBuilder();
                        for(int i = 1; i < args.length; i++)
                        {
                            sb.append(args[i]).append(" ");
                        }
                        String msg = sb.toString().trim();
                        if(!(target1 == null)){
                            target1.sendMessage("[MSG] " + player1.getName() + ": " + msg);
                            player1.sendMessage("[MSG] " + target1.getName() + ": " + msg);
                            return true;
                        }
                        else{
                            player.sendMessage("Player is not online!");
                            return true;
                        }
                    }
                   
                    else if(args.length==2){
                        player.sendMessage("NO");
                    }
                   
                    else if(args.length==0){
                        player.sendMessage(ChatColor.YELLOW + "Use proper command formulation: /slap <player>");
                   
                    }
                    }
                }
                
     
Thread Status:
Not open for further replies.

Share This Page