sadece baba sağ üste yazı yazan kodu versen yeterli gerisini ben yaparım hala israrciysan almam kusura bakma1.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
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.
tamam methodunu atıyım ondan zarar gelmez.sadece baba sağ üste yazı yazan kodu versen yeterli gerisini ben yaparım hala israrciysan almam kusura bakma
import org.bukkit.Material;
import org.bukkit.entity.Player;
public interface BoxBroadcast {
Object create(Material material, String title);
void display(Player player);
}
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;
}
}
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")
plugin istekleri yerine açmışsın konuyuskript sanmıştım ama neyse uğraştırcak biraz teşekür ederim
evet oda var sorun yokplugin istekleri yerine açmışsın konuyu