HyCodeYourTale
classpublicPriority 3

ReputationRequirement

com.hypixel.hytale.builtin.adventure.reputation.choices.ReputationRequirement

extends ChoiceRequirement

2

Methods

2

Public Methods

2

Fields

2

Constructors

Constants

BuilderCodec<ReputationRequirement>CODEC= BuilderCodec.builder( ReputationRequirement.class, ReputationRequirement::new, ChoiceReq...

Constructors

protected
ReputationRequirement()
public
ReputationRequirement(String reputationGroupId, String minRequiredRankId)

Methods

Public Methods (2)

public
boolean canFulfillRequirement(Store<EntityStore> store, Ref<EntityStore> ref, PlayerRef playerRef)
@Override
public
String toString()
@Nonnull@Override

Fields

Protected Fields (2)

protectedString minRequiredRankId
protectedString reputationGroupId

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.builtin.adventure.reputation.choices;

import com.hypixel.hytale.builtin.adventure.reputation.ReputationPlugin;
import com.hypixel.hytale.builtin.adventure.reputation.assets.ReputationGroup;
import com.hypixel.hytale.builtin.adventure.reputation.assets.ReputationRank;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.server.core.entity.entities.player.pages.choices.ChoiceRequirement;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;

public class ReputationRequirement extends ChoiceRequirement {
   @Nonnull
   public static final BuilderCodec<ReputationRequirement> CODEC = BuilderCodec.builder(
         ReputationRequirement.class, ReputationRequirement::new, ChoiceRequirement.BASE_CODEC
      )
      .append(
         new KeyedCodec<>("ReputationGroupId", Codec.STRING),
         (reputationRequirement, s) -> reputationRequirement.reputationGroupId = s,
         reputationRequirement -> reputationRequirement.reputationGroupId
      )
      .addValidator(ReputationGroup.VALIDATOR_CACHE.getValidator())
      .add()
      .<String>append(
         new KeyedCodec<>("MinRequiredRankId", Codec.STRING),
         (reputationRequirement, s) -> reputationRequirement.minRequiredRankId = s,
         reputationRequirement -> reputationRequirement.minRequiredRankId
      )
      .addValidator(ReputationRank.VALIDATOR_CACHE.getValidator())
      .add()
      .build();
   protected String reputationGroupId;
   protected String minRequiredRankId;

   public ReputationRequirement(String reputationGroupId, String minRequiredRankId) {
      this.reputationGroupId = reputationGroupId;
      this.minRequiredRankId = minRequiredRankId;
   }

   protected ReputationRequirement() {
   }

   @Override
   public boolean canFulfillRequirement(@Nonnull Store<EntityStore> store, @Nonnull Ref<EntityStore> ref, @Nonnull PlayerRef playerRef) {
      ReputationPlugin reputationModule = ReputationPlugin.get();
      int playerReputationValue = reputationModule.getReputationValue(store, ref, this.reputationGroupId);
      if (playerReputationValue == -2147483648) {
         return false;
      } else {
         ReputationRank minReputationRank = ReputationRank.getAssetMap().getAsset(this.minRequiredRankId);
         return minReputationRank == null ? false : playerReputationValue >= minReputationRank.getMinValue();
      }
   }

   @Nonnull
   @Override
   public String toString() {
      return "ReputationRequirement{reputationGroupId='"
         + this.reputationGroupId
         + "', minRequiredRankId='"
         + this.minRequiredRankId
         + "'} "
         + super.toString();
   }
}