Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: Java  |  size: 4.68 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package net.minekingdom.ojukashi.BirdMode;
  2.  
  3. import java.text.MessageFormat;
  4. import java.util.logging.Level;
  5. import java.util.logging.Logger;
  6.  
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandSender;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.plugin.java.JavaPlugin;
  12.  
  13. public class BirdMode extends JavaPlugin {
  14.    
  15.     private static Logger logger = Logger.getLogger("Minecraft"); // On verifie que le loggueur vient bien de Minecraft
  16.    
  17.     @Override
  18.     public void onEnable()
  19.     {
  20.         BirdMode.log("BirdMode has been enabled"); // on annonce l'activation
  21.     }
  22.    
  23.     @Override
  24.     public void onDisable()
  25.     {
  26.         BirdMode.log("BirdMode has been disabled"); // on annonce la désactivation
  27.     }
  28.    
  29.    
  30.     public static void log(Level level, String msg, Object... arg)
  31.     {
  32.      
  33.         logger.log(level, new StringBuilder().append("[BirdMode] ").append(MessageFormat.format(msg, arg)).toString());
  34.     }
  35.  
  36.     public static void log(String msg, Object... arg)
  37.     {
  38.         // On donne des informations sur les logs.
  39.         log(Level.INFO, msg, arg);
  40.     }
  41.  
  42.     /*
  43.      * traîtement de la commande
  44.      */
  45.    
  46.     @Override
  47.     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
  48.     {
  49.         if ( cmd.getName().equalsIgnoreCase("fly") ) // si la commande est bien /fly
  50.         {
  51.             if ( args.length == 0 ) // si la commande n'a pas d'arguments
  52.             {                
  53.                 if ( !(sender instanceof Player) )   // si la commande vient de la console
  54.                 {
  55.                     // On lui dit qu'il peut pas.
  56.                     BirdMode.log("You can't use this in the console !");
  57.                     return true; // Et on indique que l'execution s'est déroulée correctement
  58.                 }
  59.                
  60.                 final Player player = (Player) sender; // on cast CommandSend sur player.
  61.                
  62.                 if ( args.length == 0 ) // si la commande n'a pas d'arguments ( juste /fly )
  63.                 {
  64.                     if ( !player.hasPermission("birdmode") ) // si le joueur n'as pas la permission requise pour le vol
  65.                     {
  66.                         // On retourne un message que indique un problème de permission
  67.                         player.sendMessage(ChatColor.RED + "Vous n'avez pas la permission d'utiliser cette commande.");
  68.                         return true; // mais on indique au serveur que la commande est bien finie.
  69.                     }
  70.                        
  71.                     if ( !player.getAllowFlight()) // Si le /fly n'est pas activée
  72.                     {
  73.                         player.setAllowFlight(true); // Alors on active le vol
  74.                         player.sendMessage(ChatColor.GREEN + "Le vol à été activé.");
  75.                     }
  76.                     else
  77.                     {
  78.                         player.setAllowFlight(false); //Sinon, on désactive le vol.
  79.                         player.sendMessage(ChatColor.GREEN + "Le vol à été désactivé.");
  80.                     }
  81.                 }
  82.                 else if ( args.length == 1 )
  83.                 {
  84.                     if ( !player.hasPermission("birdmode.other") )
  85.                     {
  86.                         Player.sendMessage(ChatColor.RED + "Vous n'avez pas la permission d'utiliser cette commande");
  87.                         return true;
  88.                     }
  89.                    
  90.                     final Player target = getServer().getPlayer(args[0]);
  91.                
  92.                     if ( target == null )
  93.                     {
  94.                         player.sendMessage(ChatColor.RED + "Le joueur demandé n'existe pas.");
  95.                         return true;
  96.                     }
  97.                
  98.                     if ( !player.getAllowFlight())
  99.                     {
  100.                         player.setAllowFlight(true);
  101.                         player.sendMessage(ChatColor.GREEN + "Le vol à été activé");
  102.                     }
  103.                     else
  104.                     {
  105.                         player.setAllowFlight(false);
  106.                         player.sendMessage(ChatColor.GREEN + "Le vol à été désactivé");
  107.                     }
  108.                
  109.                 }
  110.                 return true;
  111.             }
  112.  
  113.             // le return assure que s'il n'y a pas d'arguments, l'execution n'atteindra pas cette partie.
  114.         }
  115.         // à 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.
  116.         return false;
  117.     }
  118. }