forked from Upstream/mmocore
Added last-used option for spawn points.
This commit is contained in:
parent
b8b58a7686
commit
fd436a7953
@ -12,7 +12,7 @@ import net.Indyuce.mmocore.experience.source.*;
|
||||
import net.Indyuce.mmocore.loot.chest.condition.*;
|
||||
import net.Indyuce.mmocore.loot.droptable.dropitem.*;
|
||||
import net.Indyuce.mmocore.spawnpoint.def.DefaultSpawnOption;
|
||||
import net.Indyuce.mmocore.spawnpoint.def.LastSpawnOption;
|
||||
import net.Indyuce.mmocore.spawnpoint.def.LastOption;
|
||||
import net.Indyuce.mmocore.spawnpoint.def.SpawnPointOption;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
||||
@ -211,7 +211,7 @@ public class DefaultMMOLoader extends MMOLoader {
|
||||
@Override
|
||||
public DefaultSpawnOption loadDefaultSpawnOption(MMOLineConfig config) {
|
||||
if (config.getKey().equals("last"))
|
||||
return new LastSpawnOption(config);
|
||||
return new LastOption(config);
|
||||
if (config.getKey().equals("spawnpoint"))
|
||||
return new SpawnPointOption(config);
|
||||
return null;
|
||||
|
@ -87,6 +87,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
private Guild guild;
|
||||
|
||||
private SpawnPointContext lastSpawnPointContext;
|
||||
private SpawnPointContext lastUsedSpawnPointContext;
|
||||
private SkillCastingInstance skillCasting;
|
||||
private final PlayerQuests questData;
|
||||
private final PlayerStats playerStats;
|
||||
@ -477,10 +478,19 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
||||
return lastSpawnPointContext;
|
||||
}
|
||||
|
||||
public SpawnPointContext getLastUsedSpawnPointContext() {
|
||||
return lastUsedSpawnPointContext;
|
||||
}
|
||||
|
||||
|
||||
public void setLastSpawnPointContext(SpawnPointContext lastSpawnPointContext) {
|
||||
this.lastSpawnPointContext = lastSpawnPointContext;
|
||||
}
|
||||
|
||||
public void setLastUsedSpawnPointContext(SpawnPointContext lastUsedSpawnPointContext) {
|
||||
this.lastUsedSpawnPointContext = lastUsedSpawnPointContext;
|
||||
}
|
||||
|
||||
public void setShouldTeleportWhenJoin(boolean shouldTeleport) {
|
||||
this.shouldTeleportWhenJoin = shouldTeleport;
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import io.lumine.mythic.lib.util.Jsonable;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Optional;
|
||||
@ -50,10 +51,16 @@ public class SpawnPointContext implements Jsonable {
|
||||
if (isOtherServer()) {
|
||||
MMOCore.plugin.pluginMessageManager.teleportToOtherServer(playerData, server.get());
|
||||
} else {
|
||||
playerData.setLastUsedSpawnPointContext(this);
|
||||
MMOCore.plugin.spawnPointManager.getSpawnPoint(id).whenRespawn(playerData);
|
||||
}
|
||||
}
|
||||
|
||||
public void save(ConfigurationSection section) {
|
||||
section.set("id", id);
|
||||
server.ifPresent((server) -> section.set("server", server));
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull JsonObject toJson() {
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
|
@ -1,13 +1,12 @@
|
||||
package net.Indyuce.mmocore.spawnpoint.def;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.spawnpoint.SpawnPointContext;
|
||||
|
||||
public class LastSpawnOption extends DefaultSpawnOption {
|
||||
public class LastOption extends DefaultSpawnOption {
|
||||
|
||||
public LastSpawnOption(MMOLineConfig config) {
|
||||
public LastOption(MMOLineConfig config) {
|
||||
super(config);
|
||||
}
|
||||
|
@ -0,0 +1,18 @@
|
||||
package net.Indyuce.mmocore.spawnpoint.def;
|
||||
|
||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import net.Indyuce.mmocore.spawnpoint.SpawnPointContext;
|
||||
|
||||
public class LastUsedOption extends DefaultSpawnOption {
|
||||
|
||||
public LastUsedOption(MMOLineConfig config) {
|
||||
super(config);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpawnPointContext getSpawnPointContext(PlayerData playerData) {
|
||||
return playerData.getLastSpawnPointContext();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user