Итак, я действительно новичок в Java (на самом деле записался на весенний семестр) и пробую некоторые базовые упражнения на Java.
Я пытаюсь создать JAR-плагины для определенной игры, серверное программное обеспечение которой написано на Java, и аналогичный плагин написан на PHP для той же игры, за исключением того, что программное обеспечение серверного движка написано на PHP, а не на Java. Разработчик плагина PHP предоставляет свой исходный код в репозитории GitHub.
Текущая проблема, с которой я сталкиваюсь (я купил 24-часовую книгу по изучению Java, уже прочитал ее и выполнил большую часть своей деятельности, но, похоже, она не очень хорошо освещала это; проводите тщательный поиск по Google и другим вопросам и учебникам по Stack и т. д. безрезультатно), пытаясь «преобразовать» эти несколько строк в Java из плагина PHP.
$c = $this->getConfig()->getAll();
foreach ($c["Commands"] as $i) {
$this->getServer()->getScheduler()->scheduleRepeatingTask(new
TimeCommand($this,$i["Command"]),$i["Time"] * 1200);
Я понимаю, что говорит код, который должен получить все данные из файла конфигурации, и для каждого раздела, помеченного как «Команды», сохранить как $i
, затем scheduleRepeatingTask
(scheduleRepeatingTask(Task task, into period);
, где задача - это команда для run - это переменная, насколько я понимаю.) Выполнение каждой из перечисленных команд в конфигурации с интервалом времени, указанным в файле конфигурации. Данные также поступают из LinkedHashMap.
public class main extends PluginBase {
public List<String> list;
public Config config;
public static String cmd;
public LinkedHashMap LinkedHashMap;
public void onEnable() {
if (!this.getDataFolder().exists()) {
this.getDataFolder().mkdirs();
this.config = new Config(new File(this.getDataFolder() + "/config.yml"), 2, (LinkedHashMap)new LinkedHashMap<String, Object>(){
{
put("commands", new String[] { "command", "time" });
}
});
config.save();
}
this.saveDefaultConfig();
Object configData = this.getConfig().getAll();
configData.forEach((configData["commands"]) -> {
final Long cmds[] = new Long[1];
cmds[0] = commands.getKey();
this.getServer().getScheduler().scheduleRepeatingTask(null, null, 0);
});
}
Я просто не могу себе представить, чтобы это работало по какой-то причине, даже после всех исследований, которые я провел над циклами forEach.
Извините, если это глупый вопрос или что-то, я просто пытаюсь выучить (да, я нажал на соответствующие вопросы выше и не нашел ничего такого полезного; если только я не слепой, что часто случается).