İstek 1.12.2 için duyuru puligini lazım

JohnWick

Taş Madencisi
Mesajlar
82
Beğeniler
25
Puanları
400
#1
s.a mctr ailesi minecraft ın kendinde bir başarım yapınca sağ üste örnek veriyorum elmas gelişimi tamamladın yazıyor onun bende sağ üste duyuruların geçmesini istiyorum
şimdiden hepinize teşekür ederim
 

javabey

commiting brains to people
Özel Üye
Mesajlar
130
Beğeniler
74
Puanları
420
Ruh Hali
#2
1.12.2 de o dediğin olmuyor, nedeni ise bu özelliğin 1.13te gelmesi, evet biliyorum o 1.12 çıkıyor ancak eklenti yazabilir hale gelmesi 1.13 te başladı maalesef

özür dilerim, 1.12.2 ve sonrası için varmış, :) eklentiyi ben yazdım ama daha ne yazdığımı bile hatırlamıyorum :D
maalesef paylaşamam özel olarak birine yazdım ondan ücret karşılığı alabilirsin.

yazdığım kişinin dcsi bu Yiğit#6171 achievements in yapımcısı yönlerdirdi dersin, ücret karşılığı verirse o verir vermek istemezse yapabiliceğim bişi yok.
 

JohnWick

Taş Madencisi
Mesajlar
82
Beğeniler
25
Puanları
400
#3
1.12.2 de o dediğin olmuyor, nedeni ise bu özelliğin 1.13te gelmesi, evet biliyorum o 1.12 çıkıyor ancak eklenti yazabilir hale gelmesi 1.13 te başladı maalesef

özür dilerim, 1.12.2 ve sonrası için varmış, :) eklentiyi ben yazdım ama daha ne yazdığımı bile hatırlamıyorum :D
maalesef paylaşamam özel olarak birine yazdım ondan ücret karşılığı alabilirsin.

yazdığım kişinin dcsi bu Yiğit#6171 achievements in yapımcısı yönlerdirdi dersin, ücret karşılığı verirse o verir vermek istemezse yapabiliceğim bişi yok.
sadece baba sağ üste yazı yazan kodu versen yeterli gerisini ben yaparım hala israrciysan almam kusura bakma
 

javabey

commiting brains to people
Özel Üye
Mesajlar
130
Beğeniler
74
Puanları
420
Ruh Hali
#4
sadece baba sağ üste yazı yazan kodu versen yeterli gerisini ben yaparım hala israrciysan almam kusura bakma
tamam methodunu atıyım ondan zarar gelmez.
Java:
import org.bukkit.Material;
import org.bukkit.entity.Player;

public interface BoxBroadcast {

    Object create(Material material, String title);

    void display(Player player);

}
Java:
import net.minecraft.server.v1_12_R1.*;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import java.util.*;

public class AdvancementDisplayv1_12R1 implements BoxBroadcast {

    private transient ItemStack icon;
    private JSONMessage title, description;

    public AdvancementDisplayv1_12R1() {
    }

    private AdvancementDisplayv1_12R1(Material icon, String title) {
        this.icon = new ItemStack(icon);
        if(title.contains("§")) title += "§a";
        this.title = new JSONMessage("{\"text\":\"" + title.replaceAll("\"", "\\\"") + "\"}");
        this.description = new JSONMessage("{\"text\":\"" + "\"}");
    }

    @Override
    public BoxBroadcast create(Material material, String title) {
        return new AdvancementDisplayv1_12R1(material,title);
    }

    @Override
    public void display(Player player) {
        MinecraftKey notName = new MinecraftKey("eu.endercentral", "notification");

        AdvancementRewards advRewards = new AdvancementRewards(0, new MinecraftKey[0], new MinecraftKey[0], null);
        net.minecraft.server.v1_12_R1.ItemStack icon = CraftItemStack.asNMSCopy(this.icon);

        Map<String, Criterion> advCriteria = new HashMap<>();
        String[][] advRequirements = new String[][] {};

        advCriteria.put("for_free", new Criterion(() -> new MinecraftKey("minecraft", "impossible")));

        ArrayList<String[]> fixedRequirements = new ArrayList<>();

        fixedRequirements.add(new String[] {"for_free"});

        advRequirements = Arrays.stream(fixedRequirements.toArray()).toArray(String[][]::new);

        AdvancementDisplay saveDisplay = new AdvancementDisplay(
                icon,
                title.getBaseComponent(),
                description.getBaseComponent(),
                new MinecraftKey("textures/blocks/concrete_yellow.png"),
                AdvancementFrameType.TASK,
                true,
                false,
                true);
        Advancement saveAdv = new Advancement(
                notName,
                null,
                saveDisplay,
                advRewards,
                advCriteria,
                advRequirements);

        HashMap<MinecraftKey, AdvancementProgress> prg = new HashMap<>();

        AdvancementProgress advPrg = new AdvancementProgress();
        advPrg.a(advCriteria, advRequirements);
        advPrg.getCriterionProgress("for_free").b();
        prg.put(notName, advPrg);

        PacketPlayOutAdvancements packet = new PacketPlayOutAdvancements(false, Collections.singletonList(saveAdv), new HashSet<>(), prg);
        ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);

        HashSet<MinecraftKey> rm = new HashSet<>();
        rm.add(notName);
        prg.clear();
        packet = new PacketPlayOutAdvancements(false, new ArrayList<>(), rm, prg);
        ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
    }

    public class JSONMessage {

        private final String json;

        public JSONMessage(String json) {
            this.json = json;
        }

        public String getJson() {
            return json;
        }

        public IChatBaseComponent getBaseComponent() {
            return IChatBaseComponent.ChatSerializer.a(json);
        }

        @Override
        public String toString() {
            return json;
        }

    }
new CTR(Material.STONE, "duyurun")
 

JohnWick

Taş Madencisi
Mesajlar
82
Beğeniler
25
Puanları
400
#5
tamam methodunu atıyım ondan zarar gelmez.
Java:
import org.bukkit.Material;
import org.bukkit.entity.Player;

public interface BoxBroadcast {

    Object create(Material material, String title);

    void display(Player player);

}
Java:
import net.minecraft.server.v1_12_R1.*;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import java.util.*;

public class AdvancementDisplayv1_12R1 implements BoxBroadcast {

    private transient ItemStack icon;
    private JSONMessage title, description;

    public AdvancementDisplayv1_12R1() {
    }

    private AdvancementDisplayv1_12R1(Material icon, String title) {
        this.icon = new ItemStack(icon);
        if(title.contains("§")) title += "§a";
        this.title = new JSONMessage("{\"text\":\"" + title.replaceAll("\"", "\\\"") + "\"}");
        this.description = new JSONMessage("{\"text\":\"" + "\"}");
    }

    @Override
    public BoxBroadcast create(Material material, String title) {
        return new AdvancementDisplayv1_12R1(material,title);
    }

    @Override
    public void display(Player player) {
        MinecraftKey notName = new MinecraftKey("eu.endercentral", "notification");

        AdvancementRewards advRewards = new AdvancementRewards(0, new MinecraftKey[0], new MinecraftKey[0], null);
        net.minecraft.server.v1_12_R1.ItemStack icon = CraftItemStack.asNMSCopy(this.icon);

        Map<String, Criterion> advCriteria = new HashMap<>();
        String[][] advRequirements = new String[][] {};

        advCriteria.put("for_free", new Criterion(() -> new MinecraftKey("minecraft", "impossible")));

        ArrayList<String[]> fixedRequirements = new ArrayList<>();

        fixedRequirements.add(new String[] {"for_free"});

        advRequirements = Arrays.stream(fixedRequirements.toArray()).toArray(String[][]::new);

        AdvancementDisplay saveDisplay = new AdvancementDisplay(
                icon,
                title.getBaseComponent(),
                description.getBaseComponent(),
                new MinecraftKey("textures/blocks/concrete_yellow.png"),
                AdvancementFrameType.TASK,
                true,
                false,
                true);
        Advancement saveAdv = new Advancement(
                notName,
                null,
                saveDisplay,
                advRewards,
                advCriteria,
                advRequirements);

        HashMap<MinecraftKey, AdvancementProgress> prg = new HashMap<>();

        AdvancementProgress advPrg = new AdvancementProgress();
        advPrg.a(advCriteria, advRequirements);
        advPrg.getCriterionProgress("for_free").b();
        prg.put(notName, advPrg);

        PacketPlayOutAdvancements packet = new PacketPlayOutAdvancements(false, Collections.singletonList(saveAdv), new HashSet<>(), prg);
        ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);

        HashSet<MinecraftKey> rm = new HashSet<>();
        rm.add(notName);
        prg.clear();
        packet = new PacketPlayOutAdvancements(false, new ArrayList<>(), rm, prg);
        ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
    }

    public class JSONMessage {

        private final String json;

        public JSONMessage(String json) {
            this.json = json;
        }

        public String getJson() {
            return json;
        }

        public IChatBaseComponent getBaseComponent() {
            return IChatBaseComponent.ChatSerializer.a(json);
        }

        @Override
        public String toString() {
            return json;
        }

    }
new CTR(Material.STONE, "duyurun")
skript sanmıştım ama neyse uğraştırcak biraz teşekür ederim