need help getting player chat

Discussion in 'Plugin Help/Development/Requests' started by yourmaster01, Feb 19, 2015.

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

    yourmaster01

    i am wanting to get all messages said by players (to all and private) so i can edit how the message looks and i was wondering what method i should use ex.onPlayerChat and how to call it or whatnot
     
  2. Offline

    Code0

    simply use the event bukkit so kindly provides. PlayerAsyncChatEvent (or just sync) idk :) good luck
     
  3. Offline

    CactusComboPvP

    @EventHandler
    public void chat(PlayerAsyncChatEvent e) {
    String message = e.getMessage();
    //store message etc
    }
     
  4. Offline

    yourmaster01

  5. Offline

    Code0

    Well, trying never killed nobody ;)
     
  6. Offline

    timtower Administrator Administrator Moderator

    Moved to Bukkit alternatives
     
  7. Offline

    yourmaster01

    @Code0 when i use PlayerAsyncChatEvent it says "PlayerAsyncChatEvent can not be resolved to a type"

    Code:
    @EventHandler
        public void PlayerChat(PlayerAsyncChatEvent event) {
           
            Player player = event.getPlayer();
         
            player.sendMessage("GOT IT");
         
            UUID plrId = player.getUniqueId();
         
            String message = event.getMessage();
         
            if (CompanyCheck(plrId)) {
                String cName = companyName(plrId);
                if(cName != null){
                    Bukkit.broadcastMessage(ChatColor.GOLD+"["+cName+"] "+message);
                }else{
                    Bukkit.broadcastMessage(ChatColor.RED+message);
                }
             
            }else{Bukkit.broadcastMessage(ChatColor.BLUE+message);}
    
        }
     
  8. Offline

    CactusComboPvP

    @yourmaster01
    Use AsyncPlayerChatEvent
    if that doesn't work, do PlayerChatEvent
     
  9. Offline

    yourmaster01

    @CactusComboPvP
    ok than if i use "public void PlayerChatEvent(PlayerChatEvent event) " and someone enters "hello all" will that method get that message. I want to modify the message as you can see from the above code. also below is the full code.
    Code:
    public class CompanyChat extends JavaPlugin {
        private Database db;
    
        @Override
        public void onEnable() {
            // config
            getConfig().options().copyDefaults(true);
            saveConfig();
    
            PluginManager pm = getServer().getPluginManager();
    
            if (pm.getPlugin("CompanyPlugin").isEnabled()) {
                getLogger()
                        .severe("[CompanyChat] The plugin CompanyPlugin was found successfully");
            } else {
                getLogger().severe("The plugin CompanyPlugin could not be found!");
                this.onDisable();
            }
    
            // initialize database
            this.db = new MySQL(this, "localhost", "3306", "companies_test", "root", "");
    
            // test database connection
            try {
                db.openConnection();
            } catch (Exception e) {
                getLogger().severe("Connection to MySQL database failed!");
                e.printStackTrace();
                getServer().getPluginManager().disablePlugin(this);
                return;
            }
    
            // initialize command
            //getCommand("CompanyChat").setExecutor(new Commands(this));
    
            // done
            getLogger().info("v0.1-dev Enabled!");
        }
    
        @Override
        public void onDisable() {
            // chat save list
            saveConfig();
            getLogger().info("CompanyChat has been disabled!");
        }
    
        @EventHandler
        public void PlayerChatEvent(PlayerChatEvent event) {
            Player player = event.getPlayer();
           
            player.sendMessage("GOT IT");
           
            UUID plrId = player.getUniqueId();
           
            String message = event.getMessage();
           
            if (CompanyCheck(plrId)) {
                String cName = companyName(plrId);
                if(cName != null){
                    Bukkit.broadcastMessage(ChatColor.GOLD+"["+cName+"] "+message);
                }else{
                    Bukkit.broadcastMessage(ChatColor.RED+message);
                }
               
            }else{Bukkit.broadcastMessage(ChatColor.BLUE+message);}
    
        }
       
        public boolean CompanyCheck(UUID player){
            //see if user is in a company
            PreparedStatement ps = null;
            ResultSet rs = null;
           
            String plr = player.toString();
           
            try {
                String sql = "SELECT `playerName` FROM `players` WHERE `playerName` = ?";
                ps = db.openConnection().prepareStatement(sql);
                ps.setString(1, plr);
                rs = ps.executeQuery();
                return rs.next();
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            } finally {
                db.close(ps, rs);
            }
        }
       
        public String companyName(UUID player){
            //get company name
            PreparedStatement ps = null;
            ResultSet rs = null;
           
            String id = "0";
            String plr = player.toString();
           
            try {
                String sql = "SELECT `id` FROM `players` WHERE `playerName` = ?";
                ps = db.openConnection().prepareStatement(sql);
                ps.setString(1, plr);
                rs = ps.executeQuery();
                id = sql;
            } catch (Exception e) {
                e.printStackTrace();
               
            } finally {
                db.close(ps, rs);
            }
           
            try {
                String sql = "SELECT `name` FROM `companys` WHERE `id` = ?";
                ps = db.openConnection().prepareStatement(sql);
                ps.setString(1, id);
                rs = ps.executeQuery();
                return sql;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            } finally {
                db.close(ps, rs);
            }
           
        }
    
    }// end of main
     
    Last edited by a moderator: Feb 19, 2015
  10. Offline

    Code0

    yes the method will get it event.getMessage(); (returns a string). Replace, change, delete all you want.
     
Thread Status:
Not open for further replies.

Share This Page