Class SinglePlayerTeam

java.lang.Object
com.petrolpark.core.team.AbstractTeam
com.petrolpark.core.team.singleplayer.SinglePlayerTeam
All Implemented Interfaces:
ITeam, net.minecraft.core.component.DataComponentHolder, net.neoforged.neoforge.common.extensions.IDataComponentHolderExtension, net.neoforged.neoforge.common.MutableDataComponentHolder

public class SinglePlayerTeam extends AbstractTeam
The ITeam consisting of a single Player. All Players always belong to an instance of a Team like this.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final record 
     

    Nested classes/interfaces inherited from interface com.petrolpark.core.team.ITeam

    ITeam.ProviderType
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final net.neoforged.neoforge.attachment.IAttachmentSerializer<net.minecraft.nbt.Tag,SinglePlayerTeam>
     
    final net.minecraft.world.entity.player.Player
     

    Fields inherited from class com.petrolpark.core.team.AbstractTeam

    components
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    SinglePlayerTeam(net.minecraft.world.entity.player.Player player, net.minecraft.core.component.DataComponentPatch components)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static final SinglePlayerTeam
    create(net.neoforged.neoforge.attachment.IAttachmentHolder attachmentHolder)
     
    static final ITeam
    get(net.minecraft.world.entity.player.Player player)
     
    net.minecraft.network.chat.Component
    The name of this Team, without necessarily referring to any members.
    The ITeam.Provider that provides this exact Team instance.
    net.minecraft.network.chat.Component
    getRenderedMemberList(int maxTextWidth)
    Get the names of some members of this Team, formatted nicely.
    boolean
    isAdmin(net.minecraft.world.entity.player.Player player)
    What this means will be different for every system that uses Teams.
    boolean
    isMember(net.minecraft.world.entity.player.Player player)
    Whether the given Player is in this Team, meaning they have access client-side to the Team's Data Components, and have any non-admin abilities.
    int
    The number of members of this Team.
    provider(net.minecraft.world.entity.player.Player player)
     
    void
    renderIcon(net.minecraft.client.gui.GuiGraphics graphics)
    Render an icon for this ITeam.
    void
    setChanged(net.minecraft.core.component.DataComponentPatch patch)
    Called if any Data Components actually change.
    Stream<net.minecraft.world.entity.player.Player>
    Every member of this Team, with no guarantee of order.
    The unique username of every member of this Team, in no particular order.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.minecraft.core.component.DataComponentHolder

    get, getOrDefault, has

    Methods inherited from interface net.neoforged.neoforge.common.extensions.IDataComponentHolderExtension

    addToTooltip, addToTooltip, get, getOrDefault, has

    Methods inherited from interface com.petrolpark.core.team.ITeam

    sendToAllMembers, streamServerMembers

    Methods inherited from interface net.neoforged.neoforge.common.MutableDataComponentHolder

    copyFrom, copyFrom, remove, set, update, update, update, update
  • Field Details

    • player

      public final net.minecraft.world.entity.player.Player player
    • ATTACHMENT_SERIALIZER

      public static final net.neoforged.neoforge.attachment.IAttachmentSerializer<net.minecraft.nbt.Tag,SinglePlayerTeam> ATTACHMENT_SERIALIZER
  • Constructor Details

    • SinglePlayerTeam

      protected SinglePlayerTeam(net.minecraft.world.entity.player.Player player, net.minecraft.core.component.DataComponentPatch components)
  • Method Details

    • provider

      public static ITeam.Provider provider(net.minecraft.world.entity.player.Player player)
    • create

      public static final SinglePlayerTeam create(net.neoforged.neoforge.attachment.IAttachmentHolder attachmentHolder)
    • get

      public static final ITeam get(net.minecraft.world.entity.player.Player player)
    • getProvider

      public ITeam.Provider getProvider()
      Description copied from interface: ITeam
      The ITeam.Provider that provides this exact Team instance.
    • isMember

      public boolean isMember(@Nonnull net.minecraft.world.entity.player.Player player)
      Description copied from interface: ITeam
      Whether the given Player is in this Team, meaning they have access client-side to the Team's Data Components, and have any non-admin abilities.
      Parameters:
      player -
    • memberCount

      public int memberCount()
      Description copied from interface: ITeam
      The number of members of this Team.
      Returns:
      Positive integer almost always greater than 0.
    • streamMemberUsernames

      public Stream<String> streamMemberUsernames()
      Description copied from interface: ITeam
      The unique username of every member of this Team, in no particular order. For ScoreboardTeams in particular, this method is faster than ITeam.streamMembers() and should be used in preference to calling that method and then getting the usernames.
    • streamMembers

      public Stream<net.minecraft.world.entity.player.Player> streamMembers()
      Description copied from interface: ITeam
      Every member of this Team, with no guarantee of order. It is faster to use ITeam.streamMemberUsernames() unless having the Player itself is vital. On the client side, that is the only way to know the members of the Team.
      See Also:
    • isAdmin

      public boolean isAdmin(@Nonnull net.minecraft.world.entity.player.Player player)
      Description copied from interface: ITeam
      What this means will be different for every system that uses Teams. It could mean the ability to change the name of a Shop, for example. It has nothing to do with operator permissions. If called, it is assumed that ITeam.isMember(Player) has already passed.
      Parameters:
      player -
    • getName

      public net.minecraft.network.chat.Component getName()
      Description copied from interface: ITeam
      The name of this Team, without necessarily referring to any members.
      See Also:
    • setChanged

      public void setChanged(net.minecraft.core.component.DataComponentPatch patch)
      Description copied from class: AbstractTeam
      Called if any Data Components actually change. Use this to sync changes to the clients of members of this Team.
      Specified by:
      setChanged in class AbstractTeam
      Parameters:
      patch -
    • renderIcon

      public void renderIcon(@Nonnull net.minecraft.client.gui.GuiGraphics graphics)
      Description copied from interface: ITeam
      Render an icon for this ITeam. The icon should occupy (0, 0) -> (16, 16) of the given PoseStack.
      Parameters:
      graphics -
    • getRenderedMemberList

      public net.minecraft.network.chat.Component getRenderedMemberList(int maxTextWidth)
      Description copied from interface: ITeam
      Get the names of some members of this Team, formatted nicely. This does not need to list every member exhaustively. This list in no particular order, but should be the same every time to prevent weird rendering.
      Parameters:
      maxTextWidth -
      See Also: