Kick msg

Discussion in 'Plugin Development' started by DevManABCD, Nov 14, 2014.

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

    DevManABCD

    Code:java
    1. @Override
    2. public boolean onCommand(CommandSender cs, Command cmd, String arg, String[] args){
    3. if(cs instanceof Player){
    4. Player p = (Player)cs;
    5. if(args.length == 1) {
    6. if(p.hasPermission("OpenTools.Kick")){
    7. Player ps = Bukkit.getPlayerExact(args[0]);
    8. if(ps != null){
    9. for(String sk : ConfigContent.kickMsg) {
    10. sk = sk.replaceAll("%kickedname%", ps.getName());
    11. sk = sk.replaceAll("%admin%", p.getName());
    12. sk = sk.replaceAll("%reason%", ConfigContent.kickDefaultMsg);
    13. sk = Utils.fixColors(sk);
    14. ps.kickPlayer(sk);
    15. }
    16. }else {
    17. p.sendMessage(Utils.msg("&4Ten gracz jest offline!"));
    18. }
    19. }else {
    20. p.sendMessage(Utils.msg("Nie masz praw do tej komendy &6(OpenTools.Kick)&c!"));
    21. return true;
    22. }
    23. }else {
    24. p.sendMessage(Utils.msg("&4!"));
    25. }
    26. }else {
    27. cs.sendMessage(Utils.msg("&4Uzycie tej komendy moze byc mozliwe tylko przez gracza!"));
    28. return true;
    29. }
    30. return false;
    31. }


    Config:

    Code:
    Messages:
      Option:
        enableNewUserMsg: true
      NewUser: "&cWitamy nowego gracza &6%nickname% &cna serwerze!"
      KickUser:
        - "Zostales wyrzucony!"
        - "Przez: &c%admin%!"
        - "Powod: %reason%!"
      KickUserDefaultMsg: "domyslny powod."
    Someone knows why it kicks only with 1st msg? I want to send this three msgs, but it only returns "Zostales wyrzucony!", when i test it on sendMessage i get three messages ;c
     
  2. Offline

    user_90854156

    Well, your problem is that you're looping through the string list and kicking them.
    So it will go get the first string -> kick, get second string -> kick, get last string -> kick. And that's not going to work.

    Try
    PHP:
    String kickString "";
    for(
    String sk ConfigContent.kickMsg) {
                        
    sk sk.replaceAll("%kickedname%"ps.getName());
                        
    sk sk.replaceAll("%admin%"p.getName());
                        
    sk sk.replaceAll("%reason%"ConfigContent.kickDefaultMsg);
                        
    sk Utils.fixColors(sk);
                        
    kickString += sk "\n";
                    }
    ps.kickPlayer(kickString);
    (might not work, also you might want to use a StringBuilder)
     
    DevManABCD likes this.
  3. Offline

    The Fancy Whale

    I would just use a String Builder.
     
Thread Status:
Not open for further replies.

Share This Page