Class WizardDataHolder

java.lang.Object
com.binaris.wizardry.capabilities.WizardDataHolder
All Implemented Interfaces:
WizardData, net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>

public class WizardDataHolder extends Object implements net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>, WizardData
  • Field Details

    • LOCATION

      public static final net.minecraft.resources.ResourceLocation LOCATION
    • INSTANCE

      public static final net.minecraftforge.common.capabilities.Capability<WizardDataHolder> INSTANCE
    • allies

      public final Set<UUID> allies
    • allyNames

      public Set<String> allyNames
    • itemModifiers

      public SpellModifiers itemModifiers
  • Constructor Details

    • WizardDataHolder

      public WizardDataHolder(net.minecraft.world.entity.player.Player player)
  • Method Details

    • sync

      public void sync()
    • setTierReached

      public void setTierReached(SpellTier tier)
      Description copied from interface: WizardData
      Sets the highest spell tier reached by the player, use this with caution as it can only be increased.
      Specified by:
      setTierReached in interface WizardData
      Parameters:
      tier - The SpellTier to set as reached.
    • hasReachedTier

      public boolean hasReachedTier(SpellTier tier)
      Description copied from interface: WizardData
      Checks if the player has reached the specified spell tier.
      Specified by:
      hasReachedTier in interface WizardData
      Parameters:
      tier - The SpellTier to check.
      Returns:
      true if the player has reached the specified tier, false otherwise.
    • toggleAlly

      public boolean toggleAlly(net.minecraft.world.entity.player.Player friend)
      Description copied from interface: WizardData
      Toggles the ally status of a friend for the original player.
      Specified by:
      toggleAlly in interface WizardData
      Parameters:
      friend - The player whose ally status is being toggled.
      Returns:
      true if the friend was added as an ally, false if they were removed.
    • isPlayerAlly

      public boolean isPlayerAlly(net.minecraft.world.entity.player.Player ally)
      Description copied from interface: WizardData
      Checks if the given player is an ally of the original player. This checks both the list of ally UUIDs and the original player's team.
      Specified by:
      isPlayerAlly in interface WizardData
      Parameters:
      ally - the Player to check
      Returns:
      true if the player is an ally, false otherwise
    • isPlayerAlly

      public boolean isPlayerAlly(UUID playerUUID)
      Description copied from interface: WizardData
      Checks if the given player UUID is an ally of the original player. This checks both the list of ally UUIDs and the original player's team.
      Specified by:
      isPlayerAlly in interface WizardData
      Parameters:
      playerUUID - the UUID of the player to check
      Returns:
      true if the player is an ally, false otherwise
    • getSpellModifiers

      public SpellModifiers getSpellModifiers()
      Description copied from interface: WizardData
      Gets the spell modifiers associated with the player.
      Specified by:
      getSpellModifiers in interface WizardData
      Returns:
      The SpellModifiers for the player.
    • setSpellModifiers

      public void setSpellModifiers(SpellModifiers modifiers)
      Specified by:
      setSpellModifiers in interface WizardData
    • trackRecentSpell

      public void trackRecentSpell(Spell spell, long timestamp)
      Description copied from interface: WizardData
      Records a spell cast for tracking recent spells by the player, used especially to avoid spell spam for quick wand level progression and similar things.
      Specified by:
      trackRecentSpell in interface WizardData
      Parameters:
      spell - The Spell that was just cast.
      timestamp - The time at which the spell was cast, in game ticks.
    • countRecentCasts

      public int countRecentCasts(Spell spell)
      Description copied from interface: WizardData
      Counts how many times a spell has been cast recently by the player. It could be 0 if it hasn't been cast recently.
      Specified by:
      countRecentCasts in interface WizardData
      Parameters:
      spell - The Spell to count recent casts of.
      Returns:
      The number of times the spell has been cast recently.
    • getRecentSpells

      public List<WizardData.RecentSpellCast> getRecentSpells()
      Description copied from interface: WizardData
      Gets the recent spells cast by the player.
      Specified by:
      getRecentSpells in interface WizardData
      Returns:
      A list of recent spells cast by the player.
    • getRecentlyCastSpell

      @Nullable public @Nullable WizardData.RecentSpellCast getRecentlyCastSpell()
      Description copied from interface: WizardData
      Gets the most recently cast spell by the player.
      Specified by:
      getRecentlyCastSpell in interface WizardData
      Returns:
      The most recently cast spell by the player, or null if no spells have been cast recently.
    • removeRecentCasts

      public void removeRecentCasts(Predicate<WizardData.RecentSpellCast> predicate)
      Description copied from interface: WizardData
      Removes recent spell casts that match the given predicate, allowing for custom filtering of which entries to remove.
      Specified by:
      removeRecentCasts in interface WizardData
      Parameters:
      predicate - A Predicate that tests AbstractMap.SimpleEntry<Spell, Long> objects representing recent spell casts. If the predicate returns true for an entry, that entry will be removed.
    • getRandom

      public Random getRandom()
      Description copied from interface: WizardData
      Gets a Random instance associated with this WizardData.
      Specified by:
      getRandom in interface WizardData
      Returns:
      A Random instance.
    • serializeNBT

      public net.minecraft.nbt.CompoundTag serializeNBT()
      Specified by:
      serializeNBT in interface net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>
    • deserializeNBT

      public void deserializeNBT(net.minecraft.nbt.CompoundTag tag)
      Specified by:
      deserializeNBT in interface net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>
    • copyFrom

      public void copyFrom(@NotNull @NotNull WizardDataHolder holder)