Fix play command; resolves #151

This commit is contained in:
Daniel Saukel 2016-09-10 14:01:11 +02:00
parent c99f5f89cd
commit 941831643c
3 changed files with 15 additions and 25 deletions

View File

@ -63,15 +63,15 @@ public class EditCommand extends BRCommand {
return;
}
DEditWorld editWorld = resource.instantiateAsEditWorld();
DGroup dGroup = DGroup.getByPlayer(player);
DGlobalPlayer dPlayer = plugin.getDPlayers().getByPlayer(player);
if (!(resource.isInvitedPlayer(player) || DPermissions.hasPermission(player, DPermissions.EDIT))) {
if (!resource.isInvitedPlayer(player) && !DPermissions.hasPermission(player, DPermissions.EDIT)) {
MessageUtil.sendMessage(player, DMessages.ERROR_NO_PERMISSIONS.getMessage());
return;
}
DEditWorld editWorld = resource.instantiateAsEditWorld();
DGroup dGroup = DGroup.getByPlayer(player);
DGlobalPlayer dPlayer = plugin.getDPlayers().getByPlayer(player);
if (dPlayer instanceof DInstancePlayer) {
MessageUtil.sendMessage(player, DMessages.ERROR_LEAVE_DUNGEON.getMessage());
return;

View File

@ -29,7 +29,6 @@ import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DInstancePlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.DGameWorld;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -55,7 +54,7 @@ public class LeaveCommand extends BRCommand {
DGlobalPlayer dPlayer = plugin.getDPlayers().getByPlayer(player);
Game game = Game.getByPlayer(player);
if (game.isTutorial()) {
if (game != null && game.isTutorial()) {
MessageUtil.sendMessage(player, DMessages.ERROR_NO_LEAVE_IN_TUTORIAL.getMessage());
return;
}

View File

@ -25,7 +25,9 @@ import io.github.dre2n.dungeonsxl.dungeon.Dungeon;
import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent;
import io.github.dre2n.dungeonsxl.game.Game;
import io.github.dre2n.dungeonsxl.player.DGamePlayer;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DInstancePlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@ -49,9 +51,9 @@ public class PlayCommand extends BRCommand {
@Override
public void onExecute(String[] args, CommandSender sender) {
Player player = (Player) sender;
DGamePlayer dPlayer = DGamePlayer.getByPlayer(player);
DGlobalPlayer dPlayer = plugin.getDPlayers().getByPlayer(player);
if (dPlayer != null) {
if (dPlayer instanceof DInstancePlayer) {
MessageUtil.sendMessage(player, DMessages.ERROR_LEAVE_DUNGEON.getMessage());
return;
}
@ -70,7 +72,7 @@ public class PlayCommand extends BRCommand {
mapName = identifier;
if (args[1].equalsIgnoreCase("dungeon") || args[1].equalsIgnoreCase("d")) {
Dungeon dungeon = plugin.getDungeons().getByName(args[2]);
if (dungeon != null) {
if (dungeon != null && dungeon.isMultiFloor()) {
multiFloor = true;
mapName = dungeon.getConfig().getStartFloor().getName();
} else {
@ -96,20 +98,9 @@ public class PlayCommand extends BRCommand {
}
if (dGroup.getMapName() == null) {
if (!multiFloor) {
dGroup.setMapName(identifier);
} else {
dGroup.setMapName(mapName);
if (multiFloor) {
dGroup.setDungeonName(identifier);
Dungeon dungeon = plugin.getDungeons().getByName(identifier);
if (dungeon != null) {
DungeonConfig config = dungeon.getConfig();
if (config != null) {
dGroup.setMapName(config.getStartFloor().getName());
}
}
}
} else {
@ -134,11 +125,11 @@ public class PlayCommand extends BRCommand {
}
if (dGroup.getGameWorld() == null) {
new Game(dGroup, dGroup.getMapName());
new Game(dGroup, mapName);
}
if (dGroup.getGameWorld() == null) {
MessageUtil.sendMessage(player, DMessages.ERROR_NOT_SAVED.getMessage(DGroup.getByPlayer(player).getMapName()));
MessageUtil.sendMessage(player, DMessages.ERROR_NOT_SAVED.getMessage(mapName));
dGroup.delete();
return;
}