package com.denizenscript.depenizen.bukkit.properties.residence; import com.bekvon.bukkit.residence.Residence; import com.bekvon.bukkit.residence.protection.ClaimedResidence; import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.core.ListTag; import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; public class ResidencePlayerProperties { public static void register() { // <--[tag] // @attribute // @returns ElementTag(Boolean) // @plugin Depenizen, Residence // @description // Returns boolean whether the player has a main Residence. // --> PlayerTag.tagProcessor.registerTag(ElementTag.class, "has_main_residence", (attribute, player) -> { ClaimedResidence res = Residence.getInstance().getPlayerManager().getResidencePlayer(player.getPlayerEntity()).getMainResidence(); return new ElementTag(res != null); }); // <--[tag] // @attribute // @returns ResidenceTag // @plugin Depenizen, Residence // @description // Returns the player's current main Residence if they have one. // --> PlayerTag.tagProcessor.registerTag(ResidenceTag.class, "main_residence", (attribute, player) -> { ClaimedResidence res = Residence.getInstance().getPlayerManager().getResidencePlayer(player.getPlayerEntity()).getMainResidence(); if (res != null) { return new ResidenceTag(res); } return null; }); // <--[tag] // @attribute // @returns ListTag(ResidenceTag) // @plugin Depenizen, Residence // @description // Returns the player's current list of Residences. // --> PlayerTag.tagProcessor.registerTag(ListTag.class, "residences", (attribute, player) -> { ListTag list = new ListTag(); for (ClaimedResidence res : Residence.getInstance().getPlayerManager().getResidencePlayer(player.getPlayerEntity()).getResList()) { list.addObject(new ResidenceTag(res)); } return list; }); } }