package net.minekingdom.ojukashi.BirdMode;
import java.text.MessageFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class BirdMode extends JavaPlugin {
private static Logger logger = Logger.getLogger("Minecraft"); // On verifie que le loggueur vient bien de Minecraft
@Override
public void onEnable()
{
BirdMode.log("BirdMode has been enabled"); // on annonce l'activation
}
@Override
public void onDisable()
{
BirdMode.log("BirdMode has been disabled"); // on annonce la désactivation
}
public static void log(Level level, String msg, Object... arg)
{
logger.log(level, new StringBuilder().append("[BirdMode] ").append(MessageFormat.format(msg, arg)).toString());
}
public static void log(String msg, Object... arg)
{
// On donne des informations sur les logs.
log(Level.INFO, msg, arg);
}
/*
* traîtement de la commande
*/
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
{
if ( cmd.getName().equalsIgnoreCase("fly") ) // si la commande est bien /fly
{
if ( args.length == 0 ) // si la commande n'a pas d'arguments
{
if ( !(sender instanceof Player) ) // si la commande vient de la console
{
// On lui dit qu'il peut pas.
BirdMode.log("You can't use this in the console !");
return true; // Et on indique que l'execution s'est déroulée correctement
}
final Player player = (Player) sender; // on cast CommandSend sur player.
if ( args.length == 0 ) // si la commande n'a pas d'arguments ( juste /fly )
{
if ( !player.hasPermission("birdmode") ) // si le joueur n'as pas la permission requise pour le vol
{
// On retourne un message que indique un problème de permission
player.sendMessage(ChatColor.RED + "Vous n'avez pas la permission d'utiliser cette commande.");
return true; // mais on indique au serveur que la commande est bien finie.
}
if ( !player.getAllowFlight()) // Si le /fly n'est pas activée
{
player.setAllowFlight(true); // Alors on active le vol
player.sendMessage(ChatColor.GREEN + "Le vol à été activé.");
}
else
{
player.setAllowFlight(false); //Sinon, on désactive le vol.
player.sendMessage(ChatColor.GREEN + "Le vol à été désactivé.");
}
}
else if ( args.length == 1 )
{
if ( !player.hasPermission("birdmode.other") )
{
Player.sendMessage(ChatColor.RED + "Vous n'avez pas la permission d'utiliser cette commande");
return true;
}
final Player target = getServer().getPlayer(args[0]);
if ( target == null )
{
player.sendMessage(ChatColor.RED + "Le joueur demandé n'existe pas.");
return true;
}
if ( !player.getAllowFlight())
{
player.setAllowFlight(true);
player.sendMessage(ChatColor.GREEN + "Le vol à été activé");
}
else
{
player.setAllowFlight(false);
player.sendMessage(ChatColor.GREEN + "Le vol à été désactivé");
}
}
return true;
}
// le return assure que s'il n'y a pas d'arguments, l'execution n'atteindra pas cette partie.
}
// à ce point, il y a donc deux cas possibles : Soit la commande n'est pas /macommande, soit c'est bien /macommande MAIS il y a des arguments. On retourne donc faux.
return false;
}
}