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

Помогите Помогите в написании плагина

Тема в разделе "Разработка плагинов для новичков", создана пользователем TwixGo, 12 июн 2016.

Статус темы:
Закрыта.
  1. Автор темы
    TwixGo

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

    Баллы:
    61
    Имя в Minecraft:
    TwixGo
    Пишу второй раз(Первый раз написал не туда). Недавно я начал писать плагин, его суть в том ,что если игрок напишет команду /report то сможет сообщить администрации о игроке. Но при написании кода возникла проблема: Я не смог сделать сохранение жалоб в отдельный файл(К примеру: если игрок пишет /report Anton Гриферство, то в файл reports.txt добавляется новая запись Anton - Гриферство. Если файла не существует, то создается новый.). Подбный плагин есть на версию 1.8, но мне нужен на 1.7.10 + давно хотел написать свой плагин. И еще одно: я прошу не просто код, а если можно, еще и пояснение к нему. Заранее всем спасибо.
     
  2. Хостинг MineCraft
    <
  3. DemoNIKman

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

    Баллы:
    66
    Имя в Minecraft:
    DemoNIKman
    Если знаешь английский, то даже объяснять много-то и не придется, а если не знаешь, то как ты вообще прогаешь...
    Код:
    String report = getReport(); //Это сам репорт
           
            //Записываем в файл reports.txt
            try {
                File file = new File(path + "reports.txt"); //path - путь до директории, где будет/есть файл
                FileWriter fileWriter = new FileWriter(file, true); //true означает записать новую информацию в конец файла. Если изменить на false, вся информация будет перезаписываться
                fileWriter.write(report + "\n");
                fileWriter.close(); //НЕ ЗАБУДЬ ЗАКРЫТЬ!
            } catch (IOException ex) { //Ловим ошибку, если появляется
                ex.printStackTrace();
            }
           
            //Считываем из файла
            try {
                File file = new File(path + "reports.txt"); //path - путь до директории, где есть файл
                FileReader fileReader = new FileReader(file);
                BufferedReader reader = new BufferedReader(fileReader);
               
                String nextReport = null;
               
                while ((nextReport = reader.readLine()) != null) {
                    System.out.println(nextReport);
                }
                reader.close(); // НЕ ЗАБУДЬ ЗАКРЫТЬ!
            } catch (Exception ex) { //Ловим ошибку, если появляется
                ex.printStackTrace();
            }
     
  4. Автор темы
    TwixGo

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

    Баллы:
    61
    Имя в Minecraft:
    TwixGo
    Спасибо. А английский я хорошо знаю =).
     
  5. Mr_RoboMan

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

    Баллы:
    123
    А как же
     
  6. DemoNIKman

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

    Баллы:
    66
    Имя в Minecraft:
    DemoNIKman
    Это делает за нас File и FileWriter. Он ищет указанный нами файл, если он не смог его найти, создает новый.
     
  7. Mr_RoboMan

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

    Баллы:
    123
    Уже готовился писать гневный пост что ты неправ..
    Но решил проверить, действительно ли так..
    Я удивлен))[DOUBLEPOST=1465744108,1465744075][/DOUBLEPOST]Я был почти на 100% уверен что выскочит IOException))
     
  8. Автор темы
    TwixGo

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

    Баллы:
    61
    Имя в Minecraft:
    TwixGo
    Вообще я сам разобрался и написал такой код:

    Код:
    File reports = new File(plugin.getDataFolder() + File.separator + "reports.yml");
            FileConfiguration report = YamlConfiguration.loadConfiguration(reports);
            List<String> list = report.getStringList("reports");
            list.add(sender.getName() + " Пожаловался на " + name + " за " + reason);
            report.set("reports", list);
            try {
                report.save(reports);
                String reportsa = plugin.getConfig().getString("messages.reported-player");
                reportsa = reportsa.replace("&", "§");
                reportsa = reportsa.replace("name",""+ name +"");
                reportsa = reportsa.replace("reason",""+ reason +"");
                sender.sendMessage(reportsa);
            } catch (IOException e) {
                e.printStackTrace();
            }
    Но все-равно всем спасибо.
    А новый файл создается createNewFile() при старте плагина.
     
    Последнее редактирование: 13 июн 2016
Статус темы:
Закрыта.

Поделиться этой страницей