classpublicPriority 3
GiveItemsCompletion
com.hypixel.hytale.builtin.adventure.objectives.completion.GiveItemsCompletion
extends ObjectiveCompletion
3
Methods
3
Public Methods
0
Fields
1
Constructors
Constructors
public
GiveItemsCompletion(GiveItemsCompletionAsset asset)Methods
Public Methods (3)
public
GiveItemsCompletionAsset 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.objectives.completion;
import com.hypixel.hytale.builtin.adventure.objectives.Objective;
import com.hypixel.hytale.builtin.adventure.objectives.config.completion.GiveItemsCompletionAsset;
import com.hypixel.hytale.builtin.adventure.objectives.historydata.ItemObjectiveRewardHistoryData;
import com.hypixel.hytale.component.ComponentAccessor;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.entity.EntityUtils;
import com.hypixel.hytale.server.core.entity.LivingEntity;
import com.hypixel.hytale.server.core.entity.UUIDComponent;
import com.hypixel.hytale.server.core.entity.entities.Player;
import com.hypixel.hytale.server.core.inventory.Inventory;
import com.hypixel.hytale.server.core.inventory.ItemStack;
import com.hypixel.hytale.server.core.inventory.container.SimpleItemContainer;
import com.hypixel.hytale.server.core.modules.item.ItemModule;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.universe.Universe;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.server.core.util.NotificationUtil;
import java.util.List;
import java.util.UUID;
import javax.annotation.Nonnull;
public class GiveItemsCompletion extends ObjectiveCompletion {
public GiveItemsCompletion(@Nonnull GiveItemsCompletionAsset asset) {
super(asset);
}
@Nonnull
public GiveItemsCompletionAsset getAsset() {
return (GiveItemsCompletionAsset)super.getAsset();
}
@Override
public void handle(@Nonnull Objective objective, @Nonnull ComponentAccessor<EntityStore> componentAccessor) {
World world = Universe.get().getWorld(objective.getWorldUUID());
if (world != null) {
Store<EntityStore> store = world.getEntityStore().getStore();
boolean showItemNotification = world.getGameplayConfig().getShowItemPickupNotifications();
objective.forEachParticipant(
(participantReference, asset, objectiveHistoryData) -> {
if (EntityUtils.getEntity(participantReference, componentAccessor) instanceof LivingEntity livingEntity) {
Inventory inventory = livingEntity.getInventory();
List itemStacks = ItemModule.get().getRandomItemDrops(asset.getDropListId());
SimpleItemContainer.addOrDropItemStacks(store, participantReference, inventory.getCombinedHotbarFirst(), itemStacks);
Player playerComponent = componentAccessor.getComponent(participantReference, Player.getComponentType());
if (playerComponent != null) {
PlayerRef playerRefComponent = componentAccessor.getComponent(participantReference, PlayerRef.getComponentType());
assert playerRefComponent != null;
UUIDComponent uuidComponent = store.getComponent(participantReference, UUIDComponent.getComponentType());
assert uuidComponent != null;
UUID uuid = uuidComponent.getUuid();
for (ItemStack itemStack : itemStacks) {
objectiveHistoryData.addRewardForPlayerUUID(uuid, new ItemObjectiveRewardHistoryData(itemStack.getItemId(), itemStack.getQuantity()));
if (showItemNotification) {
Message itemNameMessage = Message.translation(itemStack.getItem().getTranslationKey());
NotificationUtil.sendNotification(
playerRefComponent.getPacketHandler(),
Message.translation("server.objectives.itemObjectiveCompletion").param("item", itemNameMessage),
null,
itemStack.toPacket()
);
}
}
}
}
},
this.getAsset(),
objective.getObjectiveHistoryData()
);
}
}
@Nonnull
@Override
public String toString() {
return "GiveItemsCompletion{} " + super.toString();
}
}