problem with my plugin

Discussion in 'Plugin Development' started by reboxer, Feb 21, 2016.

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

    reboxer

    hello, i have a plugin: http://dev.bukkit.org/bukkit-plugins/vipjoin/
    and i have a problem, when in game a player leave the server, the plugin send the message of leave, but, not as it should, i make this config
    Code:
    # Use %player% for player name
    # Usa %player% para el nombre del jugador
    joinmessage: '&6&lThe Vip %player% Join To The Server!'
    leavemessage: '&c&lThe Vip %player% Leave The Server!'
    but for some reason , this does not appear as it should, and appears the name of the player and his prefix and the rest of the text appears in blank.

    i leave my current code:
    Code:
    package main;
    
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    
    public class JoinEvent implements Listener{
      
        private Main plugin;
        public JoinEvent(Main plugin)
        {
          this.plugin = plugin;
        }
    //
    // PLUGIN CREATED BY REBOXER, YOU CAN USE THE CODE FOR ANYTHING
    // PLUGIN CREADO POR REBOXER, PUEDES UTILIZAR EL CODIGO PARA LO QUE QUIERAS
    //
        @EventHandler
        public void JugadorEntra(PlayerJoinEvent ev){ 
            Player player = ev.getPlayer();
            if(ev.getPlayer().hasPermission("vipjoin.join")){  
                Bukkit.broadcastMessage(plugin.getConfig().getString("joinmessage").replace("&", "§").replace("%player%", player.getDisplayName()));
            } 
        }
        @EventHandler
        public void JugadorSale(PlayerQuitEvent ev){
            Player player = ev.getPlayer();
            if(ev.getPlayer().hasPermission("vipjoin.quit")){  
                Bukkit.broadcastMessage(plugin.getConfig().getString("leavemessage").replace("&", "§").replace("%player%", player.getDisplayName()));
            } 
          
        }
      
    }
    
     
  2. Offline

    Skylandz

    Are you saving the config in the onEnable?
     
  3. Offline

    reboxer

  4. Offline

    Zombie_Striker

    @reboxer
    1. Are you sure the config exists?
    2. Can you print out what the string is equal to, without the "replace" lines?
    3. Can you print out what it currently broadcasts?
     
  5. Offline

    pie_flavor

    @reboxer Please post your main class too.
     
  6. Offline

    reboxer

    @pie_flavor
    i leave all my code and the config,yml and plugin.yml

    Class Main
    Code:
    package main;
    
    import java.util.logging.Logger;
    import org.bukkit.Bukkit;
    import org.bukkit.Server;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main
      extends JavaPlugin
    {
      public Logger log = Bukkit.getLogger();
      public JoinEvent eventos = new JoinEvent(this);
    
      public void onEnable()
      {
        saveDefaultConfig();
        this.log.info("Plugin On");
        getServer().getPluginManager().registerEvents(this.eventos, this);
      }
    
      public void onDisable()
      {
        this.log.info("Plugin Off");
      }
    }
    
    Class JoinEvent
    Code:
    package main;
    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    public class JoinEvent implements Listener{
        private Main plugin;
        public JoinEvent(Main plugin)
        {
          this.plugin = plugin;
        }
    //
    // PLUGIN CREATED BY REBOXER, YOU CAN USE THE CODE FOR ANYTHING
    // PLUGIN CREADO POR REBOXER, PUEDES UTILIZAR EL CODIGO PARA LO QUE QUIERAS
    //
        @EventHandler
        public void JugadorEntra(PlayerJoinEvent ev){
            Player player = ev.getPlayer();
            if(ev.getPlayer().hasPermission("vipjoin.join")){
                Bukkit.broadcastMessage(plugin.getConfig().getString("joinmessage").replace("&", "§").replace("%player%", player.getDisplayName()));
            }
        }
        @EventHandler
        public void JugadorSale(PlayerQuitEvent ev){
            Player player = ev.getPlayer();
            if(ev.getPlayer().hasPermission("vipjoin.quit")){
                Bukkit.broadcastMessage(plugin.getConfig().getString("leavemessage").replace("&", "§").replace("%player%", player.getDisplayName()));
            }
       
        }
    }
    
    config.yml
    Code:
    # Use %player% for player name
    # Usa %player% para el nombre del jugador
    joinmessage: '&6&lThe Vip %player% Join To The Server!'
    leavemessage: '&c&lThe Vip %player% Leave The Server!'
    plugin.yml
    Code:
    name: VipJoin
    main: main.Main
    version: 2.0
    description: Warn you when a player with the permission join to the server
    permissions:
      vipjoin.join:
        default: false
        description: Warn in join
      vipjoin.quit:
        default: false
        description: Warn in quit
     
  7. Offline

    pie_flavor

    @reboxer First: Don't use Bukkit.getLogger(), just use getLogger().
    Second: Don't log enable and disable messages, Bukkit does this for you.
    Third: Rather than replace '&' with '§', it is better to do ChatColor.translateAlternateColorCodes('&', String). I usually write this in order to shorten it:
    Code:
    String c(String s) {
        return ChatColor.translateAlternateColorCodes('&', s);
    }
    and then wrap all text (or text getters) in c().
    Last: Are you absolutely certain that you have both permissions?
     
  8. Offline

    boomboompower

    @pie_flavor
    Also he should use event.setQuitMessage and event.setJoinMessage
     
    SkyleTyler1337 likes this.
Thread Status:
Not open for further replies.

Share This Page