HyCodeYourTale
classpublicPriority 3

ReputationCompletion

com.hypixel.hytale.builtin.adventure.objectivereputation.ReputationCompletion

extends ObjectiveCompletion

3

Methods

3

Public Methods

0

Fields

1

Constructors

Constructors

public
ReputationCompletion(ReputationCompletionAsset asset)

Methods

Public Methods (3)

public
ReputationCompletionAsset getAsset()
@Nonnull
public
void handle(Objective objective, ComponentAccessor<EntityStore> componentAccessor)
@Override
public
String toString()
@Nonnull@Override

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.objectivereputation;

import com.hypixel.hytale.builtin.adventure.objectivereputation.assets.ReputationCompletionAsset;
import com.hypixel.hytale.builtin.adventure.objectivereputation.historydata.ReputationObjectiveRewardHistoryData;
import com.hypixel.hytale.builtin.adventure.objectives.Objective;
import com.hypixel.hytale.builtin.adventure.objectives.completion.ObjectiveCompletion;
import com.hypixel.hytale.builtin.adventure.reputation.ReputationPlugin;
import com.hypixel.hytale.component.ComponentAccessor;
import com.hypixel.hytale.server.core.entity.UUIDComponent;
import com.hypixel.hytale.server.core.entity.entities.Player;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;

public class ReputationCompletion extends ObjectiveCompletion {
   public ReputationCompletion(@Nonnull ReputationCompletionAsset asset) {
      super(asset);
   }

   @Nonnull
   public ReputationCompletionAsset getAsset() {
      return (ReputationCompletionAsset)super.getAsset();
   }

   @Override
   public void handle(@Nonnull Objective objective, @Nonnull ComponentAccessor<EntityStore> componentAccessor) {
      ReputationPlugin reputationModule = ReputationPlugin.get();
      objective.forEachParticipant((participantReference, asset, objectiveHistoryData) -> {
         Player playerComponent = componentAccessor.getComponent(participantReference, Player.getComponentType());
         if (playerComponent != null) {
            UUIDComponent uuidComponent = componentAccessor.getComponent(participantReference, UUIDComponent.getComponentType());

            assert uuidComponent != null;

            String reputationGroupId = asset.getReputationGroupId();
            int amount = asset.getAmount();
            reputationModule.changeReputation(playerComponent, reputationGroupId, amount, componentAccessor);
            objectiveHistoryData.addRewardForPlayerUUID(uuidComponent.getUuid(), new ReputationObjectiveRewardHistoryData(reputationGroupId, amount));
         }
      }, this.getAsset(), objective.getObjectiveHistoryData());
   }

   @Nonnull
   @Override
   public String toString() {
      return "ReputationCompletion{} " + super.toString();
   }
}