Создать плагин Bukkit Plagine Bukkit YamlJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Создать плагин Bukkit Plagine Bukkit Yaml

Сообщение Anonymous »

Я только недавно занялся написанием плагинов Bukkit для Minecraft. У меня уже есть версии разработчиков для моих первых двух плагинов, работающих на моем сервере, и они вообще не доставили мне больших проблем. В настоящее время я работаю над третьей, и у меня возникли проблемы. Просто чтобы уточнить, я не имею в виду файл config.yml , так как у меня нет проблем с этим. Я знаю, как создать файл по умолчанию. Однако с моим третьим плагином мне нужно использовать отдельный файл YAML. Я оглянулся на помощь, но 95% ответов, которые я получаю, вовлекают кого -то, рассказывающий мне что -то о GetConfig () , что не то, что я ищу, или, по крайней мере, я на 95% уверен, что это не то, что я ищу. После нескольких недель поиска четкого ответа я решил опубликовать здесь свой вопрос. Как всегда, заранее спасибо за помощь! Я просто приведу пример моей ситуации. < /P>
Допустим, у меня был следующий основной класс: < /p>

Код: Выделить всё

package ...

import ...

// My main class
public class MyClass extends JavaPlugin {
// I instantiate my File and FileConfiguration here
// Should I do this? I need them for my other classes.
public FileConfiguration myFileConfig = null;
public File myFile;

@Override
public void onEnable() {
// Get/Create File
myFile = new File(getDataFolder(), "myfile.yml");
if (!myFile.exists()) {
try {
myFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}

// Load myfile.yml file configuration
FileConfiguration myFileConfig = YamlConfiguration.loadConfiguration(myFile);

// Register my command executor class
getCommand("test").setExecutor(new myCommandExecutor());
}

@Override
public void onDisable() {
// Irrelevant stuff here
}
}
Теперь скажите, что у меня также был следующий класс CommandExeCutor (отмечено комментариев, где происходит важное.

Код: Выделить всё

package ...

import ...

public class myCommandExecutor implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("test")) {
if (args.length > 0) {

// RIGHT HERE I WOULD ADD ALL THE COMMAND ARGUMENTS
// IMAGINE THE FOLLOWING USAGE FOR THE COMMAND
// USAGE: /test   
// IF THE USER EXECUTED THE FOLLOWING, THE CODE BELOW WOULD BE THE FINAL RESULT
// EXECUTED: /test add two hello
YamlClass.addToFile(args[1], args[2]);

} else {
sender.sendMessage("Not enough arguments!");
}
}
}
}
In the example above, if a user typed /test add two hello, I would want the last two arguments ("two" and "hello") sent to a method in another class (in this example, addToFile(String a, String b) in the class YamlClass) in which args[1] and args[2] would be used to put a string into a Файл как это: < /p>

Код: Выделить всё

test:
one:
two:
- hello
three:
< /code>
И если пользователь затем RAN /Test Добавьте три Goodbye < /code>, файл будет выглядеть следующим образом: < /p>
test:
one:
two:
- hello
three:
- goodbye
Если пользователь должен был тогда сделать/тест Добавить три теста , он добавил бы «тест» в раздел без замены «Прощай», который был добавлен ранее. На самом деле я делал все правильно, что касается файла и YamlConfiguration, с моим CommandExecutor что -то не так, но я исправил это. Спасибо за ответы!


Подробнее здесь: https://stackoverflow.com/questions/201 ... -yaml-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»