Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.19 KB | None | 0 0
  1. package fr.hyrpik.duel;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import java.util.Random;
  8.  
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.Location;
  11. import org.bukkit.command.Command;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.configuration.ConfigurationSection;
  14. import org.bukkit.configuration.file.YamlConfiguration;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.plugin.java.JavaPlugin;
  17.  
  18. import fr.hyrpik.duel.Arenas.Arena;
  19. import fr.hyrpik.duel.Arenas.ArenaListeners;
  20. import fr.hyrpik.duel.Arenas.ArenaManager;
  21.  
  22. public class Duel extends JavaPlugin {
  23.    
  24.     private Map<Player, Player> players = new HashMap<>();
  25.     private ArenaManager arenamanager = new ArenaManager();
  26.     private File arenaFile;
  27.     private YamlConfiguration arenaConfig;
  28.    
  29.     @Override
  30.     public void onEnable() {
  31.         System.out.println("Le plugin Duel vient de s'allumer !");
  32.         getCommand("duel").setExecutor(this);
  33.        
  34.         getServer().getPluginManager().registerEvents(new ArenaListeners(this), this);
  35.        
  36.         loadArenaConfig();
  37.        
  38.         ConfigurationSection arenaSection = arenaConfig.getConfigurationSection("arenas");
  39.        
  40.         for(String string : arenaSection.getKeys(false))
  41.         {
  42.             String loc1 = arenaSection.getString(string + "loc1");
  43.             String loc2 = arenaSection.getString(string + "loc2");
  44.             Arena arena = new Arena(parseStringToLoc(loc1), parseStringToLoc(loc2));
  45.             arenamanager.addArena(arena);
  46.         }
  47.     }
  48.    
  49.    
  50.     private void loadArenaConfig() {
  51.        
  52.         if(!getDataFolder().exists())
  53.         {
  54.             getDataFolder().mkdir();
  55.         }
  56.        
  57.         arenaFile = new File(getDataFolder() + File.separator + "arenas.yml");
  58.        
  59.         if(!arenaFile.exists())
  60.         {
  61.             try {
  62.                 arenaFile.createNewFile();
  63.             } catch (IOException e) {
  64.                
  65.                 e.printStackTrace();
  66.             }
  67.         }
  68.        
  69.         arenaConfig = YamlConfiguration.loadConfiguration(arenaFile);
  70.        
  71.     }
  72.  
  73.  
  74.     @Override
  75.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  76.        
  77.         Player player = (Player) sender;
  78.        
  79.         if(label.equalsIgnoreCase("duel") && sender instanceof Player)
  80.         {
  81.            
  82.            
  83.             if(args.length == 0)
  84.             {
  85.                 player.sendMessage("§4/duel <player>");
  86.                 player.sendMessage("§4/duel <accept/deny>");
  87.                 return true;
  88.             }
  89.            
  90.             if(args.length >= 1)
  91.             {
  92.                 String targetName = args[0];
  93.                
  94.                 if(args[0].equalsIgnoreCase("accept")) {
  95.                    
  96.                     if(players.containsKey(player))
  97.                     {
  98.                         player.sendMessage("Ok, le duel se lance !");
  99.                         Player firstPlayerTarget = players.get(player);
  100.                         firstPlayerTarget.sendMessage("Ok, le duel se lance !");
  101.                        
  102.                         arenamanager.joinArena(player, firstPlayerTarget);
  103.                         players.remove(player);
  104.                     }
  105.                 }
  106.                
  107.                 else if(args[0].equalsIgnoreCase("deny")) {
  108.                    
  109.                     if(players.containsKey(player))
  110.                     {
  111.                         player.sendMessage("Vous avez refusé le duel !");
  112.                         Player firstPlayerTarget = players.get(player);
  113.                         firstPlayerTarget.sendMessage("Le joueur §e" + player.getName() + "§r a refusé le duel !");
  114.                        
  115.                         players.remove(player);
  116.                     }
  117.                    
  118.                 }
  119.                
  120.                 else if(args[0].equalsIgnoreCase("createarena")) {
  121.                    
  122.                     if(args.length < 3)
  123.                     {
  124.                         player.sendMessage("Taper la commande /duel createarena <loc1> <loc2>");
  125.                         return true;
  126.                     }
  127.                    
  128.                     Location loc1 = parseStringToLoc(args[1]);
  129.                     Location loc2 = parseStringToLoc(args[2]);
  130.                     Arena arena = new Arena(loc1 , loc2);
  131.                     String arenaName = "arena-" + new Random().nextInt(9999);
  132.                     arenaConfig.set("arenas." + arenaName+".loc1", args[1]);
  133.                     arenaConfig.set("arenas." + arenaName+".loc2", args[2]);
  134.                     saveArenaConfig();
  135.                    
  136.                     arenamanager.addArena(arena);
  137.                    
  138.                     player.sendMessage("Vous venez de créer l'arène §a" + arenaName + "!");
  139.                 }
  140.                
  141.                 else if(Bukkit.getPlayer(targetName) != null)
  142.                 {
  143.                     Player target = Bukkit.getPlayer(targetName);
  144.                    
  145.                     if(players.containsKey(target))
  146.                     {
  147.                         player.sendMessage("§cAttention ce joueur à deja une demande de duel en cours...");
  148.                         return true;
  149.                     }
  150.                    
  151.                     players.put(target, player);
  152.                     player.sendMessage("Vous venez de demander un duel à §e" + targetName);
  153.                     target.sendMessage("§9Vous venez de recevoir une demande de duel de §r" + player.getName());
  154.                 }
  155.                
  156.                 else
  157.                 {
  158.                     player.sendMessage("Le joueur §c" + targetName+"§r n'existe ou n'est pas ligne.");
  159.                 }
  160.                
  161.                 return true;
  162.             }
  163.            
  164.         }
  165.        
  166.        
  167.             return false;
  168.     }
  169.  
  170.  
  171.     private void saveArenaConfig() {
  172.         try {
  173.             arenaConfig.save(arenaFile);
  174.         } catch (IOException e) {
  175.            
  176.             e.printStackTrace();
  177.         }
  178.        
  179.     }
  180.  
  181.  
  182.     public ArenaManager getArenamanager() {
  183.         return arenamanager;
  184.     }
  185.  
  186.  
  187.     public void setArenamanager(ArenaManager arenamanager) {
  188.         this.arenamanager = arenamanager;
  189.     }
  190.    
  191.     public Location parseStringToLoc(String string) {
  192.        
  193.         String[] parsedLoc = string.split(",");
  194.         double x = Double.valueOf(parsedLoc[0]);
  195.         double y = Double.valueOf(parsedLoc[1]);
  196.         double z = Double.valueOf(parsedLoc[2]);
  197.        
  198.         return new Location(Bukkit.getWorld("wolrd"), x,y,z);
  199.     }
  200.    
  201.     public String unparseLoString(Location loc) {
  202.         return loc.getX() + "," + loc.getY() + "," + loc.getZ();
  203.     }
  204.  
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement