Я работаю над проектом, имеющим квест, все данные квеста сохраняются в файлах проигрывателя. Мой метод сохранения данных квеста в файле плеера - это не просто метод, а простая строка int.Строки [] [] получение значения int
Что я сделал в User.java:
private final int[][] questData = {{0}, {0}, {0}, {0}, {0}};
Приведенный выше код является сохранение уровня прогресса на всех 5 квеста.
В моей QuestHandling.java я написал код:
public static void checkQuestStates(User user) {
if (user.questProgress[1][1] == 0) {
System.out.println("Quest One Status = 0");
}
}
Это был тест, чтобы увидеть, если я мог бы получить значение первого междунар в строке (User.java). Что приводит к моему вопросу, как я могу получить значение каждого ИНТ в процессе строки & так что я могу сделать что-то вроде:
if (user.questProgress[1] == 0) {
user.getPackets().sendConfig(29, 0); //(makes that quest (Quest #1) icon red a.k.a not started)
}else if (user.questProgress[1] >= 1 && user.questProgress[1] != 10) {
user.getPackets().sendConfig(29, 1); //(makes that quest (Quest #1) icon yellow a.k.a started
} else if (user.questProgress[1] == 10) {
user.getPackets().sendConfig(29, 2); //(makes that quest (Quest #1) icon green a.k.a finished
}
вещей я изменил & моих ошибок:
, что я изменил: в Player.java (User.java)
public int[] questProgress = {0, 0, 0, 0, 0};
, и я также пытался:
public int questProgress[] = {0, 0, 0, 0, 0};
в questHandler.java Я поставил:
public static void checkQuestStates(Player player) {
if (player.questProgress[1] == 1) {
System.out.println("Quest One Status = 0");
}
}
& моя команда, чтобы проверить это является
case "statustest":
StartQuestManager.checkQuestStates(player);
return true;
Когда я ввожу команду (только эту команду) я получаю следующая погрешность:
ERROR! THREAD NAME: New I/O worker #1
java.lang.NullPointerException
at com.feather.game.player.quests.StartQuestManager.checkQuestStates(StartQuestManager.java:115)
at com.feather.game.player.content.Commands.processAdminCommand(Commands.java:1239)
at com.feather.game.player.content.Commands.processCommand(Commands.java:79)
at com.feather.net.decoders.WorldPacketsDecoder.processPackets(WorldPacketsDecoder.java:1662)
at com.feather.net.decoders.WorldPacketsDecoder.decode(WorldPacketsDecoder.java:279)
at com.feather.net.ServerChannelHandler.messageReceived(ServerChannelHandler.java:98)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:95)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:558)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
questData, вероятно, не должен быть окончательным. – BitNinja
Нет места '1,1', в первую очередь! Посмотрите, как вы инициализируете массив. – Vallentin
@codeNinja да, я думал то же самое, другой член на другом сайте пытался помочь и сказал мне сделать это окончательным и просто дал мне ошибки. – Ryan