mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-10-14 23:47:46 +02:00
Completed the savePlayer function
Added timeUntilKickOfflinePlayer Added some messages
This commit is contained in:
parent
5571bc5c26
commit
a3c56f9d6d
@ -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 */
|
||||||
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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"));
|
||||||
|
@ -51,6 +51,10 @@ 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");
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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="";
|
||||||
|
@ -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;
|
||||||
@ -112,11 +113,10 @@ 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"));
|
||||||
|
Loading…
Reference in New Issue
Block a user