Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Проверить есть ли player.getUniqueId().dat

Discussion in 'Разработка плагинов для новичков' started by xDark, Jul 5, 2016.

  1. Автор темы
    xDark

    xDark Активный участник Пользователь

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Здравствуйте тру девелоперы, не удается проверить, есть ли файл .dat (с UUID) игрока.
    Вот код (не говорить что д*****)
    Заранее спасибо.
    Строка 79:
    Code:
    package me.xDark.plugin;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.HashMap;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.entity.Player;;
    
    public class Main extends JavaPlugin implements Listener {
        // Cooldown HashMap
        public HashMap<String, Long> cooldowns = new HashMap<String, Long>();
        // Getting new file
        File Report = new File(this.getDataFolder().toString().concat(File.separator).concat("reports".concat(".yml")));
        // Adding loader
        YamlConfiguration ReportLoader = YamlConfiguration.loadConfiguration(Report);
        @Override
        public void onEnable() {
            // Plugin enabled
            System.out.println("plugin enabled!");
            // Register events
            PluginManager pm = Bukkit.getServer().getPluginManager();
            pm.registerEvents(this, this);
            // Create report.yml
            if (!Report.exists()) {
            try {
                Report.createNewFile();
                System.out.println("[] Reports.yml not found! Creating one...");
            } catch (IOException e) {
                e.printStackTrace();
            }
            }
        }
        @Override
        public void onDisable() {
            // Plugin disabled
            System.out.println("plugin disabled!");
            // Save report file on disable
            try {
                ReportLoader.save(Report);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        @SuppressWarnings("deprecation")
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            Player p = (Player)sender;
            // Set cooldown to 60 seconds
            int cooldownTime = 60;
            // Check if sender already executed command
            if(cooldowns.containsKey(sender.getName())) {
                long Left = ((cooldowns.get(sender.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
                // Check if seconds left is more than 0
                if (Left  > 0) {
                    // Send error message
                    sender.sendMessage(ChatColor.RED + "You can not use this command for another " + Left + " seconds!");
                    return true;
                }
            }
            cooldowns.put(sender.getName(), System.currentTimeMillis());
              // Check if command is /report
              if (commandLabel.equalsIgnoreCase("report"))
                  // Check if sender has enough permissions
                  if (sender.hasPermission("tutorial.report"))
                      // Check if args length =/ 2
                      if (args.length != 2) {
                          // Send error message
                          sender.sendMessage(ChatColor.RED + "Too few/much arguments!");
                          sender.sendMessage(ChatColor.GOLD + "Use /report [player] [reason]");
                  }else{
                      // Call target .dat file
                        File ReportChecker = new File("/world/playerdata/".concat(p.getUniqueId()..concat(".dat")));
                      // Get player args[0]
                      Player target = Bukkit.getServer().getPlayer(args[0]);
                      // Check if sender has enough permissions
                      if (sender.hasPermission("tutorial.report"))
                          // Check if args is 2
                          if (args.length == 2)
                              // Check if .dat file exists
                              if (args[0].equals(ReportChecker.exists()))
                                  // Check if args[1] has a reason
                                  if (!args[1].isEmpty()) {
                                      // Send message
                                      cooldowns.put(sender.getName(), System.currentTimeMillis());
                                      sender.sendMessage(ChatColor.GOLD + "Report information:");
                                      sender.sendMessage(ChatColor.GOLD + "Reported player: " + args[0]);
                                      sender.sendMessage(ChatColor.GOLD + "Reason: " + args[1]);
                                      // Set report
                                      ReportLoader.set(target.getName().toString(), args[1] + ". Reported by " + sender.getName().toString());
                                      try {
                                          // Save report
                                            ReportLoader.save(Report);
                                        } catch (IOException e) {
                                            e.printStackTrace();
                                        }
                                  }
                  }
            return true;
        }
    }
     
  2. Хостинг MineCraft
    <
  3. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Trophy Points:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Code:
    //Здесь ты не проверил UUID, ты создаешь файл с названием UUID того 
    //игрока, и естественно он там уже есть,
    
    прости дальше код не увидел[DOUBLEPOST=1467712641,1467711771][/DOUBLEPOST]А плюс(+) тебя не пробовал ставить? Между "/world/playerdata/" и concat(p.getUniqueId()..concat(".dat")
     
    Last edited: Jul 5, 2016
  4. Reality_SC

    Reality_SC Старожил Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    Чем плох метод player.hasPlayedBefore() ?
     

Share This Page