Solved Won't broadcast message on start

Discussion in 'Plugin Development' started by DexterMorgan451, Mar 12, 2016.

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

    DexterMorgan451

    Hi on my on-enable statement i wrote it to broadcast to the server but it wont broadcast
    Here is an example of my src
    Code:
    }
        public void onEnable()
        {
            Bukkit.broadcastMessage(ChatColor.BOLD + " " + ChatColor.AQUA + "AntiCurse Made By Dexter_Morgan451");
            getLogger().info("Plugin Enabled");
                getConfig().options().copyDefaults(true);
                    saveConfig();
                        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
    
     
  2. Offline

    mrcal17

    removed
     
  3. @DexterMorgan451
    I can see a random closing bracket above your onEnable method. Would you mind showing me the full class, or at least starting from imports down to onEnable method? I suspect you have some errors there, and/or your class does not extend JavaPlugin.
     
  4. Offline

    DexterMorgan451

    Code:
    package com.dexter.anticurse;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AntiCurse extends JavaPlugin implements Listener {
       
    
    
        @EventHandler 
        public void onPlayerChat(AsyncPlayerChatEvent e)
        {
            for(String word : e.getMessage().split(" ")) {
                if (getConfig().getStringList("naughtyword").contains(word))
                {
                    e.setCancelled(true);
                    e.getPlayer().sendMessage(ChatColor.DARK_RED + " " + ChatColor.BOLD + "Swearing Is Not Permmited On This Server" );
                }
            }
        }
        public void onEnable()
        {
            Bukkit.broadcastMessage(ChatColor.BOLD + " " + ChatColor.AQUA + "AntiCurse Made By Dexter_Morgan451");
            getLogger().info("Plugin Enabled");
                getConfig().options().copyDefaults(true);
                    saveConfig();
                        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
       
       
            public void onDisable()
            {
                getLogger().info("Plugin Disabled");
            }
    }
    
     
  5. Offline

    Zombie_Striker

    @DexterMorgan451
    1. Unless that end-bracket at the top is for another method, that just ends the class. Everything should be underlined if you are using an IDE.
    2. Don't log your own plugin. Bukkit does it for you. You now have THREE messages that will print out that your plugin is enabled, and that is useless.
    3. Don't copydefaults every time the server starts up. Only do that when you need to generate the config.
    4. Fix your formatting.
    It seems you're making a swear word plugin. Just remember that the way you currently have it will allow weird capitalizatopn (e.g. "swear" will be disabled, but players can still say "SwEaR") and they can also change the word so it bypasses the check (e.g. "S.w.e.a.r" and "Sw ear" will be allowed)
     
  6. @DexterMorgan451
    I just tried this on my test server. I can confirm that the broadcast does not appear for me, only on the first load though. If I reload the server, I can see the broadcast just fine. What you can do is delay the broadcast by any number of ticks (even 0), in a sync thread. This allows Bukkit to load everything first.
    Code:
    getServer().getScheduler().runTaskLater(this, new Runnable() {
        @Override
        public void run() {
            getServer().broadcastMessage("test");
        }
    }, 0L);
    this worked fine for me.
     
  7. Offline

    DexterMorgan451

    Worked Thx Dude
     
Thread Status:
Not open for further replies.

Share This Page