Need help with my plugin.

Discussion in 'Plugin Development' started by Straiker123, Dec 11, 2018.

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

    Straiker123

    Hello i have little problem, i creating plugin but plugin not work fine..
    I have this in my Custom Config:
    Player: Straiker123
    VulgarWords: 21
    if i say to chat vulgar word it add to vulgarWord +1 but on first use it add + 1 and after next use it adds 1 * 2 and after next use it adds 2* 2 .. I need help :(

    here is my short version of the code (event part only):

    Code:
    @EventHandler
        public void onPlayerChat(AsyncPlayerChatEvent event) {
            int VulgarWords = this.getConfig().getInt("VulgarWords");
            int VulgarWordsPlayer = this.Players.getInt("VulgarWordsPlayer");
            int Spam = this.getConfig().getInt("Spam");
        Player p = event.getPlayer();
        String message = event.getMessage().toLowerCase();
      
        if (p.hasPermission("ChatSecurity.Admin")) {
          
            if(message.contains("Idiot")) {
              
            Players.set("Player", p.getName());
            this.Players.set("VulgarWordsPlayer", VulgarWordsPlayer + 1);
            savePlayers();
                }
                    if(message.contains("Stupid")) {
                        Players.set("Player", p.getName());
                        this.Players.set("VulgarWordsPlayer", VulgarWordsPlayer + 1);
                        savePlayers();
                      
                    }
    ....
     
    Last edited: Dec 11, 2018
  2. Offline

    timtower Moderator Moderator

    @Straiker123 1. Make a list of bad words instead of 2000 if statements that do the same thing.
    2. What does savePlayers do?
     
  3. Offline

    Straiker123

    it save config
     
  4. Offline

    timtower Moderator Moderator

    Please post the code.
     
  5. Offline

    Straiker123

  6. Offline

    timtower Moderator Moderator

    @Straiker123
    Code:
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
                Bukkit.getServer().broadcastMessage("");
    Please, use a loop here.
    For all the bad words: make a list in the config, loop over the list, check if the message contains it.
    Will decrease the length of your code by ~1750 lines.
     
    TheEnderCrafter9 likes this.
  7. Offline

    Straiker123

    emm how do i put it into config? :/
     
  8. Offline

    timtower Moderator Moderator

    getStringList
     
  9. Offline

    Straiker123

    Players.getStringList("VulgarWordsList"); this is code ?
    and in config VulgarWordsList:
    - Stupid ...
     
  10. Offline

    timtower Moderator Moderator

  11. Offline

    Straiker123

    Yeey
    I test it

    It works ! Thanks and now test if work this code:
    this.Players.set("VulgarWordsPlayer", VulgarWordsPlayer + 1);

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.

    Ok i need help :(
    And Code have same problems :(

    Code:
       @EventHandler
        public void onPlayerChat(AsyncPlayerChatEvent event) {
            int VulgarWordsPlayer = this.Players.getInt("VulgarWordsPlayer");
            int VulgarWords = this.getConfig().getInt("VulgarWords");
            int Spam = this.getConfig().getInt("Spam");
        Player p = event.getPlayer();
      
        if (p.hasPermission("ChatSecurity.Admin")) {
            Players.getStringList("VulgarWordsList");
        }
            Players.getStringList("SpamList");
      
               if(!(p.hasPermission("ChatSecurity.Admin"))) {
                   Players.getStringList("VulgarWordsList");
                event.setCancelled(true);
                Players.set("Player", p.getName());
                this.Players.set("VulgarWordsPlayer", VulgarWordsPlayer + 1);
                savePlayers();
                this.getConfig().set("VulgarWords", VulgarWords + 1);
                saveConfig();
                Bukkit.getServer().broadcastMessage(Colors.chat(getConfig().getString("Prefix")+ChatColor.YELLOW+" >>> " +ChatColor.RED+p.getDisplayName() +  " "+Colors.chat(getConfig().getString("triedscoff"))));
            }
               if(!(p.hasPermission("ChatSecurity.Admin"))) {
                   Players.getStringList("VulgarWordsList");
               Players.getStringList("SpamList");
                event.setCancelled(true);
                this.getConfig().set("Spam", Spam + 1);
                saveConfig();
               Bukkit.getServer().broadcastMessage(Colors.chat(getConfig().getString("Prefix")+ChatColor.YELLOW+" >>> " +ChatColor.RED+p.getDisplayName() +  " "+Colors.chat(getConfig().getString("triedspam"))));
    }
        }
    
    }
     

    Attached Files:

    Last edited by a moderator: Dec 11, 2018
  12. Offline

    KarimAKL

  13. Offline

    Straiker123

    if the player writes a word that is in the config eg Shit .. it stops the event and sends to the chat that the player was trying to write a bad word .. but only once and not 10x to one word and which is not yet in the list eg letter W
     
  14. Offline

    KarimAKL

    @Straiker123 Well if you only wrote the message once but it sends it multiple times i would guess it's in a loop, try moving the message outside of the loop.
     
  15. Offline

    Straiker123

    And how do I do that? : /

    otherwise for info. when I put / reload I write a letter so it will write 1x Spam message and Vulgate message but when I write it again (another letter or word) so it does the same but 2 * so much

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Dec 11, 2018
  16. Offline

    KarimAKL

    @Straiker123 Do you mean that when you write a message it counts as spam and warns you with 1 message, then if you "spam" again it sends 2 messages, and then 3 etc?
     
  17. Offline

    Straiker123

    Yes, but the message is not even on that list.

    you can just go look .. i will give you server ip but not still :/

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
  18. Offline

    KarimAKL

  19. Offline

    Straiker123

  20. Offline

    timtower Moderator Moderator

    @Straiker123 You are never checking if anything is in the list.
     
  21. Offline

    Straiker123

    Emm what do I do?
     
  22. Offline

    Straiker123

    any help ?
     
Thread Status:
Not open for further replies.

Share This Page