Completed the savePlayer function

Added timeUntilKickOfflinePlayer
Added some messages
This commit is contained in:
Grafe 2013-01-24 01:56:43 +01:00
parent 5571bc5c26
commit a3c56f9d6d
9 changed files with 162 additions and 81 deletions

View File

@ -28,6 +28,8 @@ public class DConfig {
public int timeToNextPlay = 0; public int timeToNextPlay = 0;
public int timeToNextLoot = 0; public int timeToNextLoot = 0;
public int timeUntilKickOfflinePlayer = -1;
//Spout //Spout
public boolean spoutCraftOnly = false; public boolean spoutCraftOnly = false;
public String spoutTexturepackURL; public String spoutTexturepackURL;
@ -53,7 +55,7 @@ public class DConfig {
Set<String> list = configSetionClasses.getKeys(false); Set<String> list = configSetionClasses.getKeys(false);
for (String className:list) { for (String className:list) {
String name = className; String name = className;
boolean hasDog = configSetionClasses.getBoolean(className+".hasdog"); boolean hasDog = configSetionClasses.getBoolean(className+".dog");
/* Items */ /* Items */
List<String> items = configSetionClasses.getStringList(className+".items"); List<String> items = configSetionClasses.getStringList(className+".items");
@ -131,25 +133,29 @@ public class DConfig {
} }
/* Invited Players */ /* Invited Players */
if(configFile.contains("invitedplayers")){ if(configFile.contains("invitedPlayers")){
List<String> invitedplayers = configFile.getStringList("invitedplayers"); List<String> invitedplayers = configFile.getStringList("invitedPlayers");
for(String i:invitedplayers){ for(String i:invitedplayers){
this.invitedPlayers.add(i); this.invitedPlayers.add(i);
} }
} }
/* Lobby */ /* Lobby */
if(configFile.contains("islobbydisabled")){ if(configFile.contains("isLobbyDisabled")){
isLobbyDisabled = configFile.getBoolean("islobbydisabled"); isLobbyDisabled = configFile.getBoolean("isLobbyDisabled");
} }
/* Times */ /* Times */
if(configFile.contains("timetonextplay")){ if(configFile.contains("timeToNextPlay")){
timeToNextPlay = configFile.getInt("timetonextplay"); timeToNextPlay = configFile.getInt("timeToNextPlay");
} }
if(configFile.contains("timetonextloot")){ if(configFile.contains("timeToNextLoot")){
timeToNextLoot = configFile.getInt("timetonextloot"); timeToNextLoot = configFile.getInt("timeToNextLoot");
}
if(configFile.contains("timeUntilKickOfflinePlayer")){
timeUntilKickOfflinePlayer = configFile.getInt("timeUntilKickOfflinePlayer");
} }
/* Spout */ /* Spout */

View File

@ -66,14 +66,14 @@ public class DGSign {
if(dgroup!=null){ if(dgroup!=null){
if(dgroup.isPlaying){ if(dgroup.isPlaying){
sign.setLine(0, strIsPlaying); sign.setLine(0, strIsPlaying);
}else if(dgroup.players.size()>=this.maxPlayersPerGroup){ }else if(dgroup.getPlayers().size()>=this.maxPlayersPerGroup){
sign.setLine(0, strFull); sign.setLine(0, strFull);
}else{ }else{
sign.setLine(0, strJoinGrp); sign.setLine(0, strJoinGrp);
} }
int j=1; int j=1;
Sign rowSign=sign; Sign rowSign=sign;
for(Player player:dgroup.players){ for(Player player:dgroup.getPlayers()){
if(j>3){ if(j>3){
j=0; j=0;
rowSign=(Sign) sign.getBlock().getRelative(0, -1, 0).getState(); rowSign=(Sign) sign.getBlock().getRelative(0, -1, 0).getState();
@ -233,11 +233,9 @@ public class DGSign {
dgsign.update(); dgsign.update();
} }
}else if(topSign.getLine(0).equals(strJoinGrp)){ }else if(topSign.getLine(0).equals(strJoinGrp)){
if(DGroup.get(player)==null){ if(DGroup.get(player) == null){
if(!dgsign.dgroups[column].players.contains(player)){ dgsign.dgroups[column].addPlayer(player);
dgsign.dgroups[column].players.add(player); dgsign.update();
dgsign.update();
}
} }
} }

View File

@ -8,28 +8,46 @@ import com.dre.dungeonsxl.game.GameWorld;
public class DGroup { public class DGroup {
public static CopyOnWriteArrayList<DGroup> dgroups=new CopyOnWriteArrayList<DGroup>(); public static CopyOnWriteArrayList<DGroup> dgroups=new CopyOnWriteArrayList<DGroup>();
//Variables private CopyOnWriteArrayList<Player> players=new CopyOnWriteArrayList<Player>();
public CopyOnWriteArrayList<Player> players=new CopyOnWriteArrayList<Player>(); private String dungeonname;
public String dungeonname; private GameWorld gworld;
public GameWorld gworld;
public boolean isPlaying; public boolean isPlaying;
public DGroup(Player player, String dungeonname){ public DGroup(Player player, String dungeonname){
dgroups.add(this); dgroups.add(this);
this.players.add(player); this.getPlayers().add(player);
this.isPlaying=false; this.isPlaying=false;
this.dungeonname=dungeonname; this.setDungeonname(dungeonname);
}
public void addPlayer(Player player){
//Send message
for(Player groupPlayer : this.getPlayers()){
P.p.msg(groupPlayer,P.p.language.get("Player_JoinGroup", player.getName()));
}
//Add player
this.getPlayers().add(player);
} }
public void removePlayer(Player player) { public void removePlayer(Player player) {
this.players.remove(player); this.getPlayers().remove(player);
DGSign.updatePerGroup(this); DGSign.updatePerGroup(this);
//Send message
for(Player groupPlayer : this.getPlayers()){
P.p.msg(groupPlayer,P.p.language.get("Player_LeftGroup", player.getName()));
}
//Check group
if(this.isEmpty()){
this.remove();
}
} }
public boolean isEmpty() { public boolean isEmpty() {
return this.players.isEmpty(); return this.getPlayers().isEmpty();
} }
public void remove() { public void remove() {
@ -39,8 +57,8 @@ public class DGroup {
public void startGame(){ public void startGame(){
this.isPlaying=true; this.isPlaying=true;
gworld.startGame(); getGworld().startGame();
for(Player player:players){ for(Player player:getPlayers()){
DPlayer dplayer=DPlayer.get(player); DPlayer dplayer=DPlayer.get(player);
dplayer.respawn(); dplayer.respawn();
} }
@ -51,7 +69,7 @@ public class DGroup {
//Statics //Statics
public static DGroup get(Player player){ public static DGroup get(Player player){
for(DGroup dgroup:dgroups){ for(DGroup dgroup:dgroups){
if(dgroup.players.contains(player)){ if(dgroup.getPlayers().contains(player)){
return dgroup; return dgroup;
} }
} }
@ -60,7 +78,7 @@ public class DGroup {
public static DGroup get(GameWorld gworld){ public static DGroup get(GameWorld gworld){
for(DGroup dgroup:dgroups){ for(DGroup dgroup:dgroups){
if(dgroup.gworld==gworld){ if(dgroup.getGworld()==gworld){
return dgroup; return dgroup;
} }
} }
@ -69,10 +87,36 @@ public class DGroup {
public static void leaveGroup(Player player){ public static void leaveGroup(Player player){
for(DGroup dgroup:dgroups){ for(DGroup dgroup:dgroups){
if(dgroup.players.contains(player)){ if(dgroup.getPlayers().contains(player)){
dgroup.players.remove(player); dgroup.getPlayers().remove(player);
} }
} }
} }
//Getters and setters
public CopyOnWriteArrayList<Player> getPlayers() {
return players;
}
public void setPlayers(CopyOnWriteArrayList<Player> players) {
this.players = players;
}
public GameWorld getGworld() {
return gworld;
}
public void setGworld(GameWorld gworld) {
this.gworld = gworld;
}
public String getDungeonname() {
return dungeonname;
}
public void setDungeonname(String dungeonname) {
this.dungeonname = dungeonname;
}
} }

View File

@ -44,7 +44,7 @@ public class DPlayer {
public GameCheckpoint checkpoint; public GameCheckpoint checkpoint;
public Wolf wolf; public Wolf wolf;
public int wolfRespawnTime=30; public int wolfRespawnTime=30;
public int offlineTime; public long offlineTime;
public CopyOnWriteArrayList<ItemStack> respawnInventory=new CopyOnWriteArrayList<ItemStack>(); public CopyOnWriteArrayList<ItemStack> respawnInventory=new CopyOnWriteArrayList<ItemStack>();
public Inventory treasureInv = P.p.getServer().createInventory(player, 45, "Belohnungen"); public Inventory treasureInv = P.p.getServer().createInventory(player, 45, "Belohnungen");
@ -101,10 +101,6 @@ public class DPlayer {
} }
} }
public void goOffline(){
offlineTime=1;
}
public void leave(){ public void leave(){
remove(this); remove(this);
@ -120,9 +116,6 @@ public class DPlayer {
DGroup dgroup=DGroup.get(this.player); DGroup dgroup=DGroup.get(this.player);
if(dgroup!=null){ if(dgroup!=null){
dgroup.removePlayer(this.player); dgroup.removePlayer(this.player);
if(dgroup.isEmpty()){
dgroup.remove();
}
} }
//Belohnung //Belohnung
@ -167,7 +160,7 @@ public class DPlayer {
int i=0; int i=0;
Player groupplayer; Player groupplayer;
do{ do{
groupplayer=dgroup.players.get(i); groupplayer=dgroup.getPlayers().get(i);
if(groupplayer!=null){ if(groupplayer!=null){
for(ItemStack istack:this.player.getInventory()){ for(ItemStack istack:this.player.getInventory()){
if(istack!=null){ if(istack!=null){
@ -199,7 +192,7 @@ public class DPlayer {
DGroup dgroup=DGroup.get(this.player); DGroup dgroup=DGroup.get(this.player);
if(!dgroup.isPlaying){ if(!dgroup.isPlaying){
if(dgroup!=null){ if(dgroup!=null){
for(Player player:dgroup.players){ for(Player player:dgroup.getPlayers()){
DPlayer dplayer=get(player); DPlayer dplayer=get(player);
if(!dplayer.isReady){ if(!dplayer.isReady){
return; return;
@ -217,7 +210,7 @@ public class DPlayer {
public void respawn(){ public void respawn(){
DGroup dgroup=DGroup.get(this.player); DGroup dgroup=DGroup.get(this.player);
if(this.checkpoint==null){ if(this.checkpoint==null){
this.player.teleport(dgroup.gworld.locStart); this.player.teleport(dgroup.getGworld().locStart);
}else{ }else{
this.player.teleport(this.checkpoint.location); this.player.teleport(this.checkpoint.location);
} }
@ -242,7 +235,7 @@ public class DPlayer {
DGroup dgroup=DGroup.get(this.player); DGroup dgroup=DGroup.get(this.player);
if(dgroup!=null){ if(dgroup!=null){
if(dgroup.isPlaying){ if(dgroup.isPlaying){
for(Player player:dgroup.players){ for(Player player:dgroup.getPlayers()){
DPlayer dplayer=get(player); DPlayer dplayer=get(player);
if(!dplayer.isFinished){ if(!dplayer.isFinished){
p.msg(this.player, p.language.get("Player_WaitForOtherPlayers")); p.msg(this.player, p.language.get("Player_WaitForOtherPlayers"));
@ -250,7 +243,7 @@ public class DPlayer {
} }
} }
for(Player player:dgroup.players){ for(Player player:dgroup.getPlayers()){
DPlayer dplayer=get(player); DPlayer dplayer=get(player);
dplayer.leave(); dplayer.leave();
} }
@ -431,9 +424,9 @@ public class DPlayer {
DGroup dgroup=DGroup.get(dplayer.player); DGroup dgroup=DGroup.get(dplayer.player);
if(dplayer.checkpoint==null){ if(dplayer.checkpoint==null){
dplayer.player.teleport(dgroup.gworld.locStart); dplayer.player.teleport(dgroup.getGworld().locStart);
if(dplayer.wolf!=null){ if(dplayer.wolf!=null){
dplayer.wolf.teleport(dgroup.gworld.locStart); dplayer.wolf.teleport(dgroup.getGworld().locStart);
} }
}else{ }else{
dplayer.player.teleport(dplayer.checkpoint.location); dplayer.player.teleport(dplayer.checkpoint.location);
@ -467,6 +460,13 @@ public class DPlayer {
dplayer.wolfRespawnTime--; dplayer.wolfRespawnTime--;
} }
} }
//Kick offline players
if(dplayer.offlineTime > 0){
if(dplayer.offlineTime < System.currentTimeMillis()){
dplayer.leave();
}
}
} }
} }
} }

View File

@ -101,15 +101,15 @@ public class DPortal {
else if(this.type.equals("todungeon")){ else if(this.type.equals("todungeon")){
DGroup dgroup=DGroup.get(player); DGroup dgroup=DGroup.get(player);
if(dgroup!=null){ if(dgroup!=null){
if(dgroup.gworld==null){ if(dgroup.getGworld()==null){
dgroup.gworld=GameWorld.load(DGroup.get(player).dungeonname); dgroup.setGworld(GameWorld.load(DGroup.get(player).getDungeonname()));
} }
if(dgroup.gworld!=null){ if(dgroup.getGworld()!=null){
/* Check Spout */ /* Check Spout */
boolean spoutCheck = true; boolean spoutCheck = true;
if(P.p.isSpoutEnabled){ if(P.p.isSpoutEnabled){
if(dgroup.gworld.config.spoutCraftOnly){ if(dgroup.getGworld().config.spoutCraftOnly){
if(!Spout.getServer().getPlayer(player.getName()).isSpoutCraftEnabled()){ if(!Spout.getServer().getPlayer(player.getName()).isSpoutCraftEnabled()){
spoutCheck = false; spoutCheck = false;
} }
@ -118,16 +118,16 @@ public class DPortal {
/* Teleport Player */ /* Teleport Player */
if(spoutCheck){ if(spoutCheck){
if(dgroup.gworld.locLobby==null){ if(dgroup.getGworld().locLobby==null){
new DPlayer(player,dgroup.gworld.world,dgroup.gworld.world.getSpawnLocation(), false); new DPlayer(player,dgroup.getGworld().world,dgroup.getGworld().world.getSpawnLocation(), false);
}else{ }else{
new DPlayer(player,dgroup.gworld.world,dgroup.gworld.locLobby, false); new DPlayer(player,dgroup.getGworld().world,dgroup.getGworld().locLobby, false);
} }
}else{ }else{
p.msg(player,p.language.get("Error_SpoutCraftOnly")); p.msg(player,p.language.get("Error_SpoutCraftOnly"));
} }
}else{ }else{
p.msg(player,p.language.get("Error_DungeonNotExist",DGroup.get(player).dungeonname)); p.msg(player,p.language.get("Error_DungeonNotExist",DGroup.get(player).getDungeonname()));
} }
}else{ }else{
p.msg(player,p.language.get("Error_NotInGroup")); p.msg(player,p.language.get("Error_NotInGroup"));

View File

@ -51,7 +51,11 @@ public class LanguageReader {
defaults.put("Player_FinishedDungeon","&6Du hast den Dungeon erfolgreich beendet!"); defaults.put("Player_FinishedDungeon","&6Du hast den Dungeon erfolgreich beendet!");
defaults.put("Player_WaitForOtherPlayers","&6Noch auf Mitspieler warten..."); defaults.put("Player_WaitForOtherPlayers","&6Noch auf Mitspieler warten...");
defaults.put("Player_LeaveGroup","&6Du hast deine Gruppe erfolgreich verlassen!"); defaults.put("Player_LeaveGroup","&6Du hast deine Gruppe erfolgreich verlassen!");
defaults.put("Player_Offline","&6Spieler &4&v1&6 ging Offline. Er wird in &4&v2&6 Sekunden automatisch aus der Instanz geworfen!");
defaults.put("Player_OfflineNever","&6Spieler &4&v1&6 ging Offline. Er wird &4nicht&6 automatisch aus der Instanz geworfen!");
defaults.put("Player_LeftGroup","&6Spieler &4&v1&6 hat die Gruppe verlassen!");
defaults.put("Player_JoinGroup","&6Spieler &4&v1&6 hat die Gruppe betreten!");
/* Cmds */ /* Cmds */
defaults.put("Cmd_Chat_DungeonChat","&6Du bist nun im Dungeon-Chat"); defaults.put("Cmd_Chat_DungeonChat","&6Du bist nun im Dungeon-Chat");
defaults.put("Cmd_Chat_NormalChat","&6Du bist nun im öffentlichen Chat"); defaults.put("Cmd_Chat_NormalChat","&6Du bist nun im öffentlichen Chat");

View File

@ -28,16 +28,16 @@ public class CMDTest extends DCommand {
if(EditWorld.exist(dungeonname)){ if(EditWorld.exist(dungeonname)){
DGroup dgroup=new DGroup(player, dungeonname); DGroup dgroup=new DGroup(player, dungeonname);
if(dgroup!=null){ if(dgroup!=null){
if(dgroup.gworld==null){ if(dgroup.getGworld()==null){
dgroup.gworld=GameWorld.load(DGroup.get(player).dungeonname); dgroup.setGworld(GameWorld.load(DGroup.get(player).getDungeonname()));
} }
DPlayer newDPlayer; DPlayer newDPlayer;
if(dgroup.gworld.locLobby==null){ if(dgroup.getGworld().locLobby==null){
newDPlayer=new DPlayer(player,dgroup.gworld.world,dgroup.gworld.world.getSpawnLocation(), false); newDPlayer=new DPlayer(player,dgroup.getGworld().world,dgroup.getGworld().world.getSpawnLocation(), false);
}else{ }else{
newDPlayer=new DPlayer(player,dgroup.gworld.world,dgroup.gworld.locLobby, false); newDPlayer=new DPlayer(player,dgroup.getGworld().world,dgroup.getGworld().locLobby, false);
} }
newDPlayer.isinTestMode=true; newDPlayer.isinTestMode=true;
} }

View File

@ -32,7 +32,7 @@ public class GameChest {
public void addTreasure(DGroup dgroup){ public void addTreasure(DGroup dgroup){
if(dgroup!=null){ if(dgroup!=null){
for(Player player:dgroup.players){ for(Player player:dgroup.getPlayers()){
DPlayer dplayer=DPlayer.get(player); DPlayer dplayer=DPlayer.get(player);
if(dplayer!=null){ if(dplayer!=null){
String msg=""; String msg="";

View File

@ -20,6 +20,7 @@ import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.event.player.PlayerPortalEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -111,12 +112,11 @@ public class PlayerListener implements Listener{
DPlayer dplayer=DPlayer.get(player); DPlayer dplayer=DPlayer.get(player);
if(dplayer!=null){ if(dplayer!=null){
//Check GameWorld Signs //Check GameWorld Signs
GameWorld gworld=GameWorld.get(player.getWorld()); GameWorld gworld=GameWorld.get(player.getWorld());
if(gworld!=null){ if(gworld!=null){
//Ready Sign //Ready Sign
for(Block blockReady:gworld.blocksReady){ for(Block blockReady:gworld.blocksReady){
if(blockReady.getLocation().distance(clickedBlock.getLocation())<1){ if(blockReady.getLocation().distance(clickedBlock.getLocation())<1){
@ -128,6 +128,8 @@ public class PlayerListener implements Listener{
}else{ }else{
p.msg(player,p.language.get("Error_Ready")); p.msg(player,p.language.get("Error_Ready"));
} }
}else{
dplayer.ready();
} }
} }
} }
@ -135,13 +137,11 @@ public class PlayerListener implements Listener{
//End Sign //End Sign
for(Block blockEnd:gworld.blocksEnd){ for(Block blockEnd:gworld.blocksEnd){
if(blockEnd.getLocation().distance(clickedBlock.getLocation())<1){ if(blockEnd.getLocation().distance(clickedBlock.getLocation())<1){
if(!dplayer.isFinished){ if(event.getAction()==Action.LEFT_CLICK_BLOCK){
if(event.getAction()==Action.LEFT_CLICK_BLOCK){ dplayer.finish();
dplayer.finish(); return;
return; }else{
}else{ p.msg(player,p.language.get("Error_Leftklick"));
p.msg(player,p.language.get("Error_Leftklick"));
}
} }
} }
} }
@ -227,13 +227,13 @@ public class PlayerListener implements Listener{
DGroup dgroup=DGroup.get(dplayer.player); DGroup dgroup=DGroup.get(dplayer.player);
if(dplayer.checkpoint==null){ if(dplayer.checkpoint==null){
event.setRespawnLocation(dgroup.gworld.locStart); event.setRespawnLocation(dgroup.getGworld().locStart);
//Da einige Plugins einen anderen Respawn setzen wird ein Scheduler gestartet der den Player nach einer Sekunde teleportiert. //Da einige Plugins einen anderen Respawn setzen wird ein Scheduler gestartet der den Player nach einer Sekunde teleportiert.
p.getServer().getScheduler().scheduleSyncDelayedTask(p, new RespawnRunnable(player,dgroup.gworld.locStart), 10); p.getServer().getScheduler().scheduleSyncDelayedTask(p, new RespawnRunnable(player,dgroup.getGworld().locStart), 10);
if(dplayer.wolf!=null){ if(dplayer.wolf!=null){
dplayer.wolf.teleport(dgroup.gworld.locStart); dplayer.wolf.teleport(dgroup.getGworld().locStart);
} }
}else{ }else{
event.setRespawnLocation(dplayer.checkpoint.location); event.setRespawnLocation(dplayer.checkpoint.location);
@ -287,6 +287,29 @@ public class PlayerListener implements Listener{
} }
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onPlayerQuit(PlayerQuitEvent event){
Player player = event.getPlayer();
DPlayer dPlayer = DPlayer.get(player);
if(dPlayer!=null){
//Check GameWorld
GameWorld gWorld = GameWorld.get(player.getWorld());
if(gWorld != null){
int timeUntilKickOfflinePlayer = gWorld.config.timeUntilKickOfflinePlayer;
if(timeUntilKickOfflinePlayer == 0){
dPlayer.leave();
} else if(timeUntilKickOfflinePlayer > 0){
dPlayer.msg(p.language.get("Player_Offline",dPlayer.player.getName(),""+timeUntilKickOfflinePlayer));
dPlayer.offlineTime = System.currentTimeMillis() + timeUntilKickOfflinePlayer*1000;
} else {
dPlayer.msg(p.language.get("Player_OfflineNeverKick",dPlayer.player.getName()));
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerJoin(PlayerJoinEvent event){ public void onPlayerJoin(PlayerJoinEvent event){
Player player = event.getPlayer(); Player player = event.getPlayer();
@ -294,8 +317,14 @@ public class PlayerListener implements Listener{
DPlayer dplayer = DPlayer.get(event.getPlayer().getName()); DPlayer dplayer = DPlayer.get(event.getPlayer().getName());
if(dplayer != null){ if(dplayer != null){
dplayer.player = event.getPlayer(); dplayer.player = event.getPlayer();
//Check offlineTime
dplayer.offlineTime = 0;
} }
//Tutorial Mode //Tutorial Mode
if(p.mainConfig.tutorialActivated){ if(p.mainConfig.tutorialActivated){
if(DPlayer.get(player) == null){ if(DPlayer.get(player) == null){
@ -304,16 +333,16 @@ public class PlayerListener implements Listener{
if(p.mainConfig.tutorialStartGroup.equalsIgnoreCase(group)){ if(p.mainConfig.tutorialStartGroup.equalsIgnoreCase(group)){
DGroup dgroup = new DGroup(player, p.mainConfig.tutorialDungeon); DGroup dgroup = new DGroup(player, p.mainConfig.tutorialDungeon);
if(dgroup.gworld == null){ if(dgroup.getGworld() == null){
dgroup.gworld = GameWorld.load(DGroup.get(player).dungeonname); dgroup.setGworld(GameWorld.load(DGroup.get(player).getDungeonname()));
dgroup.gworld.isTutorial = true; dgroup.getGworld().isTutorial = true;
} }
if(dgroup.gworld != null){ if(dgroup.getGworld() != null){
if(dgroup.gworld.locLobby == null){ if(dgroup.getGworld().locLobby == null){
new DPlayer(player,dgroup.gworld.world,dgroup.gworld.world.getSpawnLocation(), false); new DPlayer(player,dgroup.getGworld().world,dgroup.getGworld().world.getSpawnLocation(), false);
}else{ }else{
new DPlayer(player,dgroup.gworld.world,dgroup.gworld.locLobby, false); new DPlayer(player,dgroup.getGworld().world,dgroup.getGworld().locLobby, false);
} }
}else{ }else{
p.msg(player,p.language.get("Error_TutorialNotExist")); p.msg(player,p.language.get("Error_TutorialNotExist"));