i cannot fix this null pointer exception, nor could my prof. i have commented out and worked on it for a while but it isnt working for some reason! the error is: null pointer exception, i can post the actual error if that helps
public static void main(String[] args) {
// initialize character and world
Player player = new Player();
map = new Map();
Jf = new JFrameManager();
Jf.addToOutput("Mage or Knight?");
do {
player.setPlayerType(Jf.getCommand());
Jf.setClass(player.getPlayerHeader());
} while (!("Mage".equalsIgnoreCase(player.getPlayerType()) || "Knight"
.equalsIgnoreCase(player.getPlayerType())));
Jf.addToOutput("You Have Selected " + player.getPlayerType() + ", "
+ player.getPlayerName());
Jf.clearCommand();
while (true) {
nextCommand(Jf.getCommand());
}
}
public static void nextCommand(String commandInput) {
String command = null;
String constructor = null;
String[] str_array;
if (!commandInput.equals("")) {
str_array = commandInput.split(" ");
command = str_array[0];
constructor = str_array[1];
} else {
command = "";
}
switch (command.toLowerCase()) {
case "move":
if (isValidMove(constructor)) {
player.move(constructor);
}
break;
case "equipmain":
player.setWeapon(1, player.getItemNumber(constructor));
break;
case "equipoff":
player.setWeapon(2, player.getItemNumber(constructor));
break;
case "equiparmor":
player.setArmor(player.getItemNumber(constructor));
break;
case "trash":
player.deleteFromInv(constructor);
break;
}
}
public static void initiateEventMove(String direction) {
if (isValidMove(direction)) {
Jf.addToOutput("You have Moved " + direction);
player.move(direction);
switch (map.getEvent(player.getPosition())) {
case 2:
intiateAIFight();
break;
}
}
}
public static boolean isValidMove(String direction) {
boolean r = false;
switch (direction.toLowerCase()) {
case "up":
if ((((player.getPosition() - 20) / 20) >= 1)
&& (map.getEvent(player.getPosition()) != 0)) {
r = true;
}
;
break;
case "down":
if ((((player.getPosition() + 20) / 20) >= 1)
&& (map.getEvent(player.getPosition()) != 0)) {
r = true;
}
;
break;
case "left":
if ((((player.getPosition() - 1) % 20) != 0)
&& (map.getEvent(player.getPosition()) != 0)) {
r = true;
}
;
break;
case "right":
if (((player.getPosition() % 20) != 0)
&& (map.getEvent(player.getPosition()) != 0)) {
r = true;
}
;
break;
}
return r;
}
public static void intiateAIFight() {
mob = new AI("mixed", 0, False);
while ((mob.isDead() != true) && (player.isDead() != true)) {
mob.takeDamage(player.attack());
Jf.addToOutput("You gave the " + mob.getType() + player.attack());
player.takeDamage(mob.attack());
Jf.addToOutput("You recieved " + mob.attack()
+ " dammage from the " + mob.getType());
}
}
}