Search in sources :

Example 11 with ClientboundUpdateAdvancementsPacket

use of net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket in project Denizen-For-Bukkit by DenizenScript.

the class AdvancementHelperImpl method revoke.

@Override
public void revoke(com.denizenscript.denizen.nms.util.Advancement advancement, Player player) {
    if (advancement.temporary) {
        PacketHelperImpl.send(player, new ClientboundUpdateAdvancementsPacket(false, Collections.emptySet(), Collections.singleton(asResourceLocation(advancement.key)), Collections.emptyMap()));
    } else {
        Advancement nmsAdvancement = getAdvancementDataWorld().advancements.advancements.get(asResourceLocation(advancement.key));
        ((CraftPlayer) player).getHandle().getAdvancements().revoke(nmsAdvancement, IMPOSSIBLE_KEY);
    }
}
Also used : ClientboundUpdateAdvancementsPacket(net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket) CraftPlayer(org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer)

Example 12 with ClientboundUpdateAdvancementsPacket

use of net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket in project Denizen-For-Bukkit by DenizenScript.

the class AdvancementHelperImpl method register.

@Override
public void register(com.denizenscript.denizen.nms.util.Advancement advancement) {
    if (advancement.temporary || advancement.registered) {
        return;
    }
    Advancement nms = asNMSCopy(advancement);
    if (advancement.parent == null) {
        Set<Advancement> roots = ReflectionHelper.getFieldValue(AdvancementList.class, ReflectionMappingsInfo.AdvancementList_roots, getAdvancementDataWorld().advancements);
        roots.add(nms);
        AdvancementList.Listener something = ReflectionHelper.getFieldValue(AdvancementList.class, FIELD_ADVANCEMENTLIST_LISTENER.getName(), getAdvancementDataWorld().advancements);
        if (something != null) {
            something.onAddAdvancementRoot(nms);
        }
    } else {
        Set<Advancement> branches = ReflectionHelper.getFieldValue(AdvancementList.class, ReflectionMappingsInfo.AdvancementList_tasks, getAdvancementDataWorld().advancements);
        branches.add(nms);
        AdvancementList.Listener something = ReflectionHelper.getFieldValue(AdvancementList.class, FIELD_ADVANCEMENTLIST_LISTENER.getName(), getAdvancementDataWorld().advancements);
        if (something != null) {
            something.onAddAdvancementTask(nms);
        }
    }
    getAdvancementDataWorld().advancements.advancements.put(nms.getId(), nms);
    advancement.registered = true;
    if (!advancement.hidden && advancement.parent != null) {
        ((CraftServer) Bukkit.getServer()).getHandle().broadcastAll(new ClientboundUpdateAdvancementsPacket(false, Collections.singleton(nms), Collections.emptySet(), Collections.emptyMap()), (net.minecraft.world.entity.player.Player) null);
    }
}
Also used : ClientboundUpdateAdvancementsPacket(net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket)

Aggregations

ClientboundUpdateAdvancementsPacket (net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket)12 CraftPlayer (org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer)4 CraftPlayer (org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer)4 HashMap (java.util.HashMap)2 ResourceLocation (net.minecraft.resources.ResourceLocation)2 PlayerAdvancements (net.minecraft.server.PlayerAdvancements)2 ServerPlayer (net.minecraft.server.level.ServerPlayer)2