Added UnlockSpawnPointTrigger.

This commit is contained in:
Ka0rX 2023-07-19 21:25:35 +01:00
parent 086c3d3be5
commit c0d69a1e5a
2 changed files with 36 additions and 0 deletions

View File

@ -29,6 +29,9 @@ public class DefaultMMOLoader extends MMOLoader {
if (config.getKey().equals("unlock_slot"))
return new UnlockSlotTrigger(config);
if (config.getKey().equals("unlock_spawn_point"))
return new UnlockSpawnPointTrigger(config);
if (config.getKey().equals("unlock_skill"))
return new UnlockSkillTrigger(config);

View File

@ -0,0 +1,33 @@
package net.Indyuce.mmocore.api.quest.trigger;
import io.lumine.mythic.lib.api.MMOLineConfig;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.skill.binding.SkillSlot;
import net.Indyuce.mmocore.api.quest.trigger.api.Removable;
import net.Indyuce.mmocore.spawnpoint.SpawnPoint;
import org.apache.commons.lang.Validate;
public class UnlockSpawnPointTrigger extends Trigger implements Removable {
private final SpawnPoint spawnPoint;
public UnlockSpawnPointTrigger(MMOLineConfig config) {
super(config);
config.validateKeys("spawn-point");
Validate.isTrue(MMOCore.plugin.spawnPointManager.isSpawnPoint(config.getString("spawn-point")), config.getString("spawn-point") + " is not a valid spawn point");
spawnPoint = MMOCore.plugin.spawnPointManager.getSpawnPoint(config.getString("spawn-point"));
}
@Override
public void apply(PlayerData player) {
if (!player.hasUnlocked(spawnPoint))
player.unlock(spawnPoint);
}
@Override
public void remove(PlayerData player) {
if (player.hasUnlocked(spawnPoint))
player.lock(spawnPoint);
}
}