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.chest.condition.*;
|
||||||
import net.Indyuce.mmocore.loot.droptable.dropitem.*;
|
import net.Indyuce.mmocore.loot.droptable.dropitem.*;
|
||||||
import net.Indyuce.mmocore.spawnpoint.def.DefaultSpawnOption;
|
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 net.Indyuce.mmocore.spawnpoint.def.SpawnPointOption;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ public class DefaultMMOLoader extends MMOLoader {
|
|||||||
@Override
|
@Override
|
||||||
public DefaultSpawnOption loadDefaultSpawnOption(MMOLineConfig config) {
|
public DefaultSpawnOption loadDefaultSpawnOption(MMOLineConfig config) {
|
||||||
if (config.getKey().equals("last"))
|
if (config.getKey().equals("last"))
|
||||||
return new LastSpawnOption(config);
|
return new LastOption(config);
|
||||||
if (config.getKey().equals("spawnpoint"))
|
if (config.getKey().equals("spawnpoint"))
|
||||||
return new SpawnPointOption(config);
|
return new SpawnPointOption(config);
|
||||||
return null;
|
return null;
|
||||||
|
@ -87,6 +87,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
|||||||
private Guild guild;
|
private Guild guild;
|
||||||
|
|
||||||
private SpawnPointContext lastSpawnPointContext;
|
private SpawnPointContext lastSpawnPointContext;
|
||||||
|
private SpawnPointContext lastUsedSpawnPointContext;
|
||||||
private SkillCastingInstance skillCasting;
|
private SkillCastingInstance skillCasting;
|
||||||
private final PlayerQuests questData;
|
private final PlayerQuests questData;
|
||||||
private final PlayerStats playerStats;
|
private final PlayerStats playerStats;
|
||||||
@ -477,10 +478,19 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
|
|||||||
return lastSpawnPointContext;
|
return lastSpawnPointContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SpawnPointContext getLastUsedSpawnPointContext() {
|
||||||
|
return lastUsedSpawnPointContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setLastSpawnPointContext(SpawnPointContext lastSpawnPointContext) {
|
public void setLastSpawnPointContext(SpawnPointContext lastSpawnPointContext) {
|
||||||
this.lastSpawnPointContext = lastSpawnPointContext;
|
this.lastSpawnPointContext = lastSpawnPointContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLastUsedSpawnPointContext(SpawnPointContext lastUsedSpawnPointContext) {
|
||||||
|
this.lastUsedSpawnPointContext = lastUsedSpawnPointContext;
|
||||||
|
}
|
||||||
|
|
||||||
public void setShouldTeleportWhenJoin(boolean shouldTeleport) {
|
public void setShouldTeleportWhenJoin(boolean shouldTeleport) {
|
||||||
this.shouldTeleportWhenJoin = shouldTeleport;
|
this.shouldTeleportWhenJoin = shouldTeleport;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import io.lumine.mythic.lib.util.Jsonable;
|
|||||||
import net.Indyuce.mmocore.MMOCore;
|
import net.Indyuce.mmocore.MMOCore;
|
||||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -50,10 +51,16 @@ public class SpawnPointContext implements Jsonable {
|
|||||||
if (isOtherServer()) {
|
if (isOtherServer()) {
|
||||||
MMOCore.plugin.pluginMessageManager.teleportToOtherServer(playerData, server.get());
|
MMOCore.plugin.pluginMessageManager.teleportToOtherServer(playerData, server.get());
|
||||||
} else {
|
} else {
|
||||||
|
playerData.setLastUsedSpawnPointContext(this);
|
||||||
MMOCore.plugin.spawnPointManager.getSpawnPoint(id).whenRespawn(playerData);
|
MMOCore.plugin.spawnPointManager.getSpawnPoint(id).whenRespawn(playerData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void save(ConfigurationSection section) {
|
||||||
|
section.set("id", id);
|
||||||
|
server.ifPresent((server) -> section.set("server", server));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull JsonObject toJson() {
|
public @NotNull JsonObject toJson() {
|
||||||
JsonObject jsonObject = new JsonObject();
|
JsonObject jsonObject = new JsonObject();
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package net.Indyuce.mmocore.spawnpoint.def;
|
package net.Indyuce.mmocore.spawnpoint.def;
|
||||||
|
|
||||||
import io.lumine.mythic.lib.api.MMOLineConfig;
|
import io.lumine.mythic.lib.api.MMOLineConfig;
|
||||||
import net.Indyuce.mmocore.MMOCore;
|
|
||||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
import net.Indyuce.mmocore.spawnpoint.SpawnPointContext;
|
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);
|
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