Begin Whitelist add
This commit is contained in:
@@ -49,10 +49,10 @@ public class InventoryListener implements Listener{
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if (iname.equals("Whitelist")) {
|
} else if (iname.equals("Whitelist")) {
|
||||||
p.openInventory(InventoryMenu.pvpWhitelistMenu(p));
|
p.openInventory(InventoryMenu.pvpListMenu(p,"Whitelist","whitelist"));
|
||||||
return;
|
return;
|
||||||
} else if (iname.equals("Blacklist")) {
|
} else if (iname.equals("Blacklist")) {
|
||||||
p.openInventory(InventoryMenu.pvpBlacklistMenu(p));
|
p.openInventory(InventoryMenu.pvpListMenu(p,"Blacklist","blacklist"));
|
||||||
return;
|
return;
|
||||||
} else if (iname.equals("Menu für Operators")) {
|
} else if (iname.equals("Menu für Operators")) {
|
||||||
p.openInventory(InventoryMenu.pvpOpSettingsMenu(p));
|
p.openInventory(InventoryMenu.pvpOpSettingsMenu(p));
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import benkralex.pvptoggle.Pvptoggle;
|
|||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.entity.Blaze;
|
import org.bukkit.entity.Blaze;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
|
import org.bukkit.inventory.AnvilInventory;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@@ -15,6 +17,7 @@ import org.bukkit.persistence.PersistentDataType;
|
|||||||
import org.bukkit.profile.PlayerProfile;
|
import org.bukkit.profile.PlayerProfile;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@@ -31,6 +34,8 @@ public class InventoryMenu {
|
|||||||
public static final int PVP_TIME=9;
|
public static final int PVP_TIME=9;
|
||||||
public static final int PVP_TIME_PLUS=10;
|
public static final int PVP_TIME_PLUS=10;
|
||||||
public static final int PVP_TIME_MINUS=11;
|
public static final int PVP_TIME_MINUS=11;
|
||||||
|
|
||||||
|
private static HashSet<Inventory> inventories=new HashSet<Inventory>();
|
||||||
|
|
||||||
public static ItemStack getMenuItem(int i, Player p) {
|
public static ItemStack getMenuItem(int i, Player p) {
|
||||||
List<String> lore = new ArrayList<>();
|
List<String> lore = new ArrayList<>();
|
||||||
@@ -168,7 +173,7 @@ public class InventoryMenu {
|
|||||||
Pvptoggle.pvptoggle.getLogger().warning(ChatColor.RED + "ERROR IN pvpMenuFillEmpty(): " + e.toString());
|
Pvptoggle.pvptoggle.getLogger().warning(ChatColor.RED + "ERROR IN pvpMenuFillEmpty(): " + e.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return inv;
|
return registerInv(inv);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Inventory pvpMenu(Player p) {
|
public static Inventory pvpMenu(Player p) {
|
||||||
@@ -186,29 +191,30 @@ public class InventoryMenu {
|
|||||||
inv.setItem(8, getMenuItem(CLOSE, p));
|
inv.setItem(8, getMenuItem(CLOSE, p));
|
||||||
|
|
||||||
inv2 = pvpMenuFillEmpty(inv, p);
|
inv2 = pvpMenuFillEmpty(inv, p);
|
||||||
return inv2;
|
return registerInv(inv2);
|
||||||
} else {
|
} else {
|
||||||
return pvpMenuFillEmpty(Bukkit.createInventory(null, 3*9, "No Permissiom"), p);
|
return registerInv(pvpMenuFillEmpty(Bukkit.createInventory(null, 3*9, "No Permission"), p));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Inventory pvpBlacklistMenu(Player p) {
|
public static Inventory pvpListMenu(Player p,String listname, String key) {
|
||||||
Inventory inv = Bukkit.createInventory(null, 3*9, "Blacklist-Menu");
|
Inventory inv = Bukkit.createInventory(null, 3*9, listname+"-Menu");
|
||||||
PersistentDataContainer pdc = p.getPersistentDataContainer();
|
PersistentDataContainer pdc = p.getPersistentDataContainer();
|
||||||
PersistentDataContainer pBlacklist = pdc.get(new NamespacedKey(Pvptoggle.pvptoggle, "blacklist"), PersistentDataType.TAG_CONTAINER);
|
PersistentDataContainer plist = pdc.get(new NamespacedKey(Pvptoggle.pvptoggle, key), PersistentDataType.TAG_CONTAINER);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (NamespacedKey blacklistedPlayerUuid:pBlacklist.getKeys()) {
|
for (NamespacedKey listedPlayerUuid:plist.getKeys()) {
|
||||||
ItemStack item = new ItemStack(Material.PLAYER_HEAD);
|
ItemStack item = new ItemStack(Material.PLAYER_HEAD);
|
||||||
SkullMeta m = (SkullMeta) item.getItemMeta();
|
SkullMeta m = (SkullMeta) item.getItemMeta();
|
||||||
OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(blacklistedPlayerUuid.getKey()));
|
OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(listedPlayerUuid.getKey()));
|
||||||
PlayerProfile profile=target.getPlayerProfile().update().join();
|
target.getPlayerProfile().update().thenAccept(profile->{
|
||||||
m.setDisplayName(ChatColor.GREEN + profile.getName());
|
m.setDisplayName(ChatColor.GREEN + profile.getName());
|
||||||
m.setOwningPlayer(target);
|
m.setOwnerProfile(profile);
|
||||||
List<String> lore = new ArrayList<>();
|
List<String> lore = new ArrayList<>();
|
||||||
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen");
|
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen");
|
||||||
m.setLore(lore);
|
m.setLore(lore);
|
||||||
item.setItemMeta(m);
|
item.setItemMeta(m);
|
||||||
|
});
|
||||||
if (!((i == 8) || (i == 26))) {
|
if (!((i == 8) || (i == 26))) {
|
||||||
inv.setItem(i, item);
|
inv.setItem(i, item);
|
||||||
} else {
|
} else {
|
||||||
@@ -219,42 +225,18 @@ public class InventoryMenu {
|
|||||||
}
|
}
|
||||||
inv.setItem(8, getMenuItem(CLOSE, p));
|
inv.setItem(8, getMenuItem(CLOSE, p));
|
||||||
inv.setItem(26, getMenuItem(BACK, p));
|
inv.setItem(26, getMenuItem(BACK, p));
|
||||||
|
|
||||||
return pvpMenuFillEmpty(inv, p);
|
return registerInv(pvpMenuFillEmpty(inv, p));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Inventory pvpListAddMenu(Player p,String listname, String key){
|
||||||
public static Inventory pvpWhitelistMenu(Player p) {
|
AnvilInventory inv =(AnvilInventory) Bukkit.createInventory(null, InventoryType.ANVIL,"Bitte Spielername eingeben");
|
||||||
Inventory inv = Bukkit.createInventory(null, 3*9, "Whitelist-Menu");
|
inv.setItem(0,new ItemStack(Material.PAPER));
|
||||||
PersistentDataContainer pdc = p.getPersistentDataContainer();
|
inv.setRepairCost(0);
|
||||||
PersistentDataContainer pWhitelist = pdc.get(new NamespacedKey(Pvptoggle.pvptoggle, "whitelist"), PersistentDataType.TAG_CONTAINER);
|
|
||||||
int i = 0;
|
return registerInv(inv);
|
||||||
for (NamespacedKey whitelistedPlayerUuid:pWhitelist.getKeys()) {
|
|
||||||
ItemStack item = new ItemStack(Material.PLAYER_HEAD);
|
|
||||||
SkullMeta m = (SkullMeta) item.getItemMeta();
|
|
||||||
OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey()));
|
|
||||||
PlayerProfile profile=target.getPlayerProfile().update().join();
|
|
||||||
m.setDisplayName(ChatColor.GREEN + profile.getName());
|
|
||||||
m.setOwningPlayer(target);
|
|
||||||
List<String> lore = new ArrayList<>();
|
|
||||||
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen");
|
|
||||||
m.setLore(lore);
|
|
||||||
item.setItemMeta(m);
|
|
||||||
if (!((i == 8) || (i == 26))) {
|
|
||||||
inv.setItem(i, item);
|
|
||||||
} else {
|
|
||||||
i++;
|
|
||||||
inv.setItem(i, item);
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
inv.setItem(8, getMenuItem(CLOSE, p));
|
|
||||||
inv.setItem(26, getMenuItem(BACK, p));
|
|
||||||
|
|
||||||
return pvpMenuFillEmpty(inv, p);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Inventory pvpOpSettingsMenu(Player p) {
|
public static Inventory pvpOpSettingsMenu(Player p) {
|
||||||
Inventory inv = Bukkit.createInventory(null, 3*9, "Operator-Menu");
|
Inventory inv = Bukkit.createInventory(null, 3*9, "Operator-Menu");
|
||||||
inv.setItem(8, getMenuItem(CLOSE, p));
|
inv.setItem(8, getMenuItem(CLOSE, p));
|
||||||
@@ -263,8 +245,13 @@ public class InventoryMenu {
|
|||||||
inv.setItem(13, getMenuItem(PVP_TIME_MINUS, p));
|
inv.setItem(13, getMenuItem(PVP_TIME_MINUS, p));
|
||||||
inv.setItem(14, getMenuItem(PVP_TIME, p));
|
inv.setItem(14, getMenuItem(PVP_TIME, p));
|
||||||
inv.setItem(15, getMenuItem(PVP_TIME_PLUS, p));
|
inv.setItem(15, getMenuItem(PVP_TIME_PLUS, p));
|
||||||
|
|
||||||
return pvpMenuFillEmpty(inv, p);
|
return registerInv(pvpMenuFillEmpty(inv, p));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Inventory registerInv(Inventory inv) {
|
||||||
|
inventories.add(inv);
|
||||||
|
return inv;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package benkralex.pvptoggle;
|
||||||
|
|
||||||
|
public class ListAddInventoryListener {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -23,10 +23,10 @@ public class ListListener implements Listener {
|
|||||||
OfflinePlayer ptarget = ((SkullMeta) item.getItemMeta()).getOwningPlayer();
|
OfflinePlayer ptarget = ((SkullMeta) item.getItemMeta()).getOwningPlayer();
|
||||||
if (invtitle.equals("Whitelist-Menu")) {
|
if (invtitle.equals("Whitelist-Menu")) {
|
||||||
PvpCommand.pvpList(p, ptarget, "whitelist", "Whitelist", 3);
|
PvpCommand.pvpList(p, ptarget, "whitelist", "Whitelist", 3);
|
||||||
p.openInventory(InventoryMenu.pvpWhitelistMenu(p));
|
p.openInventory(InventoryMenu.pvpListMenu(p,"Whitelist","whitelist"));
|
||||||
} else if (invtitle.equals("Blacklist-Menu")) {
|
} else if (invtitle.equals("Blacklist-Menu")) {
|
||||||
PvpCommand.pvpList(p, ptarget, "blacklist", "Blacklist", 3);
|
PvpCommand.pvpList(p, ptarget, "blacklist", "Blacklist", 3);
|
||||||
p.openInventory(InventoryMenu.pvpBlacklistMenu(p));
|
p.openInventory(InventoryMenu.pvpListMenu(p, "Blacklist", "blacklist"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,39 +136,40 @@ public class PvpCommand {
|
|||||||
//PvP Whitelist Command
|
//PvP Whitelist Command
|
||||||
PersistentDataContainer pdc = sender.getPersistentDataContainer();
|
PersistentDataContainer pdc = sender.getPersistentDataContainer();
|
||||||
PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer());
|
PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer());
|
||||||
PlayerProfile targetProfile=ptarget.getPlayerProfile().update().join();
|
ptarget.getPlayerProfile().update().thenAccept(targetProfile->{
|
||||||
if (action == 1) {
|
if (action == 1) {
|
||||||
//anzeigen
|
//anzeigen
|
||||||
if(!pdcList.isEmpty()){
|
if(!pdcList.isEmpty()){
|
||||||
int i = 0;
|
int i = 0;
|
||||||
sender.sendMessage(ChatColor.DARK_GREEN + "Deine " + listName + ":");
|
sender.sendMessage(ChatColor.DARK_GREEN + "Deine " + listName + ":");
|
||||||
for (NamespacedKey uuid:pdcList.getKeys()) {
|
for (NamespacedKey uuid:pdcList.getKeys()) {
|
||||||
i++;
|
i++;
|
||||||
sender.sendMessage("" + ChatColor.BLUE + i + ". " + Bukkit.getOfflinePlayer(UUID.fromString(uuid.getKey())).getName());
|
sender.sendMessage("" + ChatColor.BLUE + i + ". " + Bukkit.getOfflinePlayer(UUID.fromString(uuid.getKey())).getName());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sender.sendMessage("Deine " + listName + " ist leer");
|
||||||
|
}
|
||||||
|
} else if (action == 2) {
|
||||||
|
//hinzufügen
|
||||||
|
if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist schon in deiner " + listName);
|
||||||
|
}else{
|
||||||
|
pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer());
|
||||||
|
sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt");
|
||||||
|
}
|
||||||
|
} else if (action == 3) {
|
||||||
|
//entfernen
|
||||||
|
if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist nicht in deiner "+listName);
|
||||||
|
}else{
|
||||||
|
pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()));
|
||||||
|
sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Deine " + listName + " ist leer");
|
sender.sendMessage("Fehler");
|
||||||
}
|
}
|
||||||
} else if (action == 2) {
|
pdc.set(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdcList);
|
||||||
//hinzufügen
|
});
|
||||||
if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
|
|
||||||
sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist schon in deiner " + listName);
|
|
||||||
}else{
|
|
||||||
pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer());
|
|
||||||
sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt");
|
|
||||||
}
|
|
||||||
} else if (action == 3) {
|
|
||||||
//entfernen
|
|
||||||
if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
|
|
||||||
sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist nicht in deiner "+listName);
|
|
||||||
}else{
|
|
||||||
pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()));
|
|
||||||
sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
sender.sendMessage("Fehler");
|
|
||||||
}
|
|
||||||
pdc.set(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdcList);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user