mirror of
https://github.com/songoda/EpicHeads.git
synced 2024-12-01 23:14:13 +01:00
Added latest pack option and changed from tags to category.
This commit is contained in:
parent
622dfc62a0
commit
41b4fc0eb2
@ -1,9 +1,9 @@
|
|||||||
package com.songoda.epicheads;
|
package com.songoda.epicheads;
|
||||||
|
|
||||||
import com.songoda.epicheads.command.CommandManager;
|
import com.songoda.epicheads.command.CommandManager;
|
||||||
|
import com.songoda.epicheads.head.Category;
|
||||||
import com.songoda.epicheads.head.Head;
|
import com.songoda.epicheads.head.Head;
|
||||||
import com.songoda.epicheads.head.HeadManager;
|
import com.songoda.epicheads.head.HeadManager;
|
||||||
import com.songoda.epicheads.head.Tag;
|
|
||||||
import com.songoda.epicheads.listeners.ItemListeners;
|
import com.songoda.epicheads.listeners.ItemListeners;
|
||||||
import com.songoda.epicheads.listeners.LoginListeners;
|
import com.songoda.epicheads.listeners.LoginListeners;
|
||||||
import com.songoda.epicheads.players.EPlayer;
|
import com.songoda.epicheads.players.EPlayer;
|
||||||
@ -159,6 +159,7 @@ public class EpicHeads extends JavaPlugin {
|
|||||||
private boolean loadHeads() {
|
private boolean loadHeads() {
|
||||||
try {
|
try {
|
||||||
this.headManager.clear();
|
this.headManager.clear();
|
||||||
|
this.headManager.addCategory(new Category("Latest Pack", true));
|
||||||
|
|
||||||
JSONParser parser = new JSONParser();
|
JSONParser parser = new JSONParser();
|
||||||
JSONArray jsonArray = (JSONArray) parser.parse(new FileReader(getDataFolder() + "/heads.json"));
|
JSONArray jsonArray = (JSONArray) parser.parse(new FileReader(getDataFolder() + "/heads.json"));
|
||||||
@ -166,22 +167,23 @@ public class EpicHeads extends JavaPlugin {
|
|||||||
for (Object o : jsonArray) {
|
for (Object o : jsonArray) {
|
||||||
JSONObject jsonObject = (JSONObject) o;
|
JSONObject jsonObject = (JSONObject) o;
|
||||||
|
|
||||||
String tags = (String) jsonObject.get("tags");
|
String categoryStr = (String) jsonObject.get("tags");
|
||||||
Optional<Tag> tagOptional = headManager.getTags().stream().filter(t -> t.getName().equalsIgnoreCase(tags)).findFirst();
|
Optional<Category> tagOptional = headManager.getTags().stream().filter(t -> t.getName().equalsIgnoreCase(categoryStr)).findFirst();
|
||||||
|
|
||||||
Tag tag = tagOptional.orElseGet(() -> new Tag(tags));
|
Category category = tagOptional.orElseGet(() -> new Category(categoryStr));
|
||||||
|
|
||||||
Head head = new Head(Integer.parseInt((String) jsonObject.get("id")),
|
Head head = new Head(Integer.parseInt((String) jsonObject.get("id")),
|
||||||
(String) jsonObject.get("name"),
|
(String) jsonObject.get("name"),
|
||||||
(String) jsonObject.get("url"),
|
(String) jsonObject.get("url"),
|
||||||
tag,
|
category,
|
||||||
|
(String) jsonObject.get("pack"),
|
||||||
Byte.parseByte((String) jsonObject.get("staff_picked")));
|
Byte.parseByte((String) jsonObject.get("staff_picked")));
|
||||||
|
|
||||||
if (head.getName() == null ||
|
if (head.getName() == null || head.getName().equals("null")
|
||||||
head.getName().equals("null")) continue;
|
|| head.getPack() != null && head.getPack().equals("null")) continue;
|
||||||
|
|
||||||
if (!tagOptional.isPresent())
|
if (!tagOptional.isPresent())
|
||||||
headManager.addTag(tag);
|
headManager.addCategory(category);
|
||||||
headManager.addHead(head);
|
headManager.addHead(head);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,19 +191,20 @@ public class EpicHeads extends JavaPlugin {
|
|||||||
for (StorageRow row : storage.getRowsByGroup("local")) {
|
for (StorageRow row : storage.getRowsByGroup("local")) {
|
||||||
String tagStr = row.get("category").asString();
|
String tagStr = row.get("category").asString();
|
||||||
|
|
||||||
Optional<Tag> tagOptional = headManager.getTags().stream()
|
Optional<Category> tagOptional = headManager.getTags().stream()
|
||||||
.filter(t -> t.getName().equalsIgnoreCase(tagStr)).findFirst();
|
.filter(t -> t.getName().equalsIgnoreCase(tagStr)).findFirst();
|
||||||
|
|
||||||
Tag tag = tagOptional.orElseGet(() -> new Tag(tagStr));
|
Category category = tagOptional.orElseGet(() -> new Category(tagStr));
|
||||||
|
|
||||||
Head head = new Head(row.get("id").asInt(),
|
Head head = new Head(row.get("id").asInt(),
|
||||||
row.get("name").asString(),
|
row.get("name").asString(),
|
||||||
row.get("url").asString(),
|
row.get("url").asString(),
|
||||||
tag,
|
category,
|
||||||
|
null,
|
||||||
(byte) 0);
|
(byte) 0);
|
||||||
|
|
||||||
if (!tagOptional.isPresent())
|
if (!tagOptional.isPresent())
|
||||||
headManager.addTag(tag);
|
headManager.addCategory(category);
|
||||||
headManager.addLocalHead(head);
|
headManager.addLocalHead(head);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package com.songoda.epicheads.gui;
|
|||||||
|
|
||||||
import com.songoda.epicheads.EpicHeads;
|
import com.songoda.epicheads.EpicHeads;
|
||||||
import com.songoda.epicheads.head.Head;
|
import com.songoda.epicheads.head.Head;
|
||||||
import com.songoda.epicheads.head.Tag;
|
import com.songoda.epicheads.head.Category;
|
||||||
import com.songoda.epicheads.players.EPlayer;
|
import com.songoda.epicheads.players.EPlayer;
|
||||||
import com.songoda.epicheads.utils.AbstractChatConfirm;
|
import com.songoda.epicheads.utils.AbstractChatConfirm;
|
||||||
import com.songoda.epicheads.utils.SettingsManager;
|
import com.songoda.epicheads.utils.SettingsManager;
|
||||||
@ -52,10 +52,10 @@ public class GUIHeads extends AbstractGUI {
|
|||||||
player.sendMessage(plugin.getReferences().getPrefix() + plugin.getLocale().getMessage("general.search.nonefound"));
|
player.sendMessage(plugin.getReferences().getPrefix() + plugin.getLocale().getMessage("general.search.nonefound"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Tag tag = heads.get(0).getTag();
|
Category category = heads.get(0).getCategory();
|
||||||
|
|
||||||
this.maxPage = (int) Math.floor(numHeads / 45.0);
|
this.maxPage = (int) Math.floor(numHeads / 45.0);
|
||||||
init((query != null ? plugin.getLocale().getMessage("general.word.query") + ": " + query : tag.getName())
|
init((query != null ? plugin.getLocale().getMessage("general.word.query") + ": " + query : category.getName())
|
||||||
+ " (" + numHeads + ") " + plugin.getLocale().getMessage("general.word.page") + " " + (page + 1) + "/" + (maxPage + 1), 54);
|
+ " (" + numHeads + ") " + plugin.getLocale().getMessage("general.word.page") + " " + (page + 1) + "/" + (maxPage + 1), 54);
|
||||||
constructGUI();
|
constructGUI();
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package com.songoda.epicheads.gui;
|
package com.songoda.epicheads.gui;
|
||||||
|
|
||||||
import com.songoda.epicheads.EpicHeads;
|
import com.songoda.epicheads.EpicHeads;
|
||||||
import com.songoda.epicheads.head.Tag;
|
import com.songoda.epicheads.head.Category;
|
||||||
|
import com.songoda.epicheads.head.Head;
|
||||||
import com.songoda.epicheads.utils.Methods;
|
import com.songoda.epicheads.utils.Methods;
|
||||||
import com.songoda.epicheads.utils.ServerVersion;
|
import com.songoda.epicheads.utils.ServerVersion;
|
||||||
import com.songoda.epicheads.utils.SettingsManager;
|
import com.songoda.epicheads.utils.SettingsManager;
|
||||||
@ -57,23 +58,27 @@ public class GUIOverview extends AbstractGUI {
|
|||||||
inventory.setItem(38, Methods.getBackgroundGlass(false));
|
inventory.setItem(38, Methods.getBackgroundGlass(false));
|
||||||
inventory.setItem(42, Methods.getBackgroundGlass(false));
|
inventory.setItem(42, Methods.getBackgroundGlass(false));
|
||||||
|
|
||||||
List<Tag> tags = plugin.getHeadManager().getTags();
|
List<Category> tags = plugin.getHeadManager().getTags();
|
||||||
int add = 0;
|
int add = 0;
|
||||||
for (int i = 0; i < tags.size(); i++) {
|
for (int i = 0; i < tags.size(); i++) {
|
||||||
if (i + add == 7 || i + add == 16) add = add + 2;
|
if (i + add == 7 || i + add == 16) add = add + 2;
|
||||||
|
|
||||||
Tag tag = plugin.getHeadManager().getTags().get(i);
|
Category category = plugin.getHeadManager().getTags().get(i);
|
||||||
|
|
||||||
if (!player.hasPermission("epicheads.category." + tag.getName().replace(" ", "_"))) continue;
|
List<Head> heads = category.isLatestPack() ? plugin.getHeadManager().getLatestPack() : plugin.getHeadManager().getHeadsByTag(category);
|
||||||
|
|
||||||
|
Head firstHead = heads.get(0);
|
||||||
|
|
||||||
|
if (!player.hasPermission("epicheads.category." + category.getName().replace(" ", "_"))) continue;
|
||||||
|
|
||||||
createButton(i + 10 + add, Methods.addTexture(new ItemStack(plugin.isServerVersionAtLeast(ServerVersion.V1_13)
|
createButton(i + 10 + add, Methods.addTexture(new ItemStack(plugin.isServerVersionAtLeast(ServerVersion.V1_13)
|
||||||
? Material.PLAYER_HEAD : Material.valueOf("SKULL_ITEM"), 1, (byte) 3),
|
? Material.PLAYER_HEAD : Material.valueOf("SKULL_ITEM"), 1, (byte) 3),
|
||||||
plugin.getHeadManager().getHeadsByTag(tag).get(0).getURL()),
|
firstHead.getURL()),
|
||||||
plugin.getLocale().getMessage("gui.overview.headname", Color.getRandomColor() + tag.getName()),
|
plugin.getLocale().getMessage("gui.overview.headname", Color.getRandomColor() + category.getName()),
|
||||||
plugin.getLocale().getMessage("gui.overview.headlore", String.format("%,d", tag.getCount())));
|
category.isLatestPack() ? plugin.getLocale().getMessage("gui.overview.packlore", firstHead.getPack()) : plugin.getLocale().getMessage("gui.overview.headlore", String.format("%,d", category.getCount())));
|
||||||
|
|
||||||
registerClickable(i + 10 + add, ((player1, inventory1, cursor, slot, type) ->
|
registerClickable(i + 10 + add, ((player1, inventory1, cursor, slot, type) ->
|
||||||
new GUIHeads(plugin, player, null, plugin.getHeadManager().getHeadsByTag(tag))));
|
new GUIHeads(plugin, player, category.isLatestPack() ? category.getName() : null, heads)));
|
||||||
}
|
}
|
||||||
|
|
||||||
createButton(SettingsManager.Setting.DISCORD.getBoolean() ? 39 : 40, Material.COMPASS, plugin.getLocale().getMessage("gui.overview.search"));
|
createButton(SettingsManager.Setting.DISCORD.getBoolean() ? 39 : 40, Material.COMPASS, plugin.getLocale().getMessage("gui.overview.search"));
|
||||||
@ -92,7 +97,6 @@ public class GUIOverview extends AbstractGUI {
|
|||||||
plugin.getLocale().getMessage("gui.overview.discord"),
|
plugin.getLocale().getMessage("gui.overview.discord"),
|
||||||
lore2);
|
lore2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
31
src/main/java/com/songoda/epicheads/head/Category.java
Normal file
31
src/main/java/com/songoda/epicheads/head/Category.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.songoda.epicheads.head;
|
||||||
|
|
||||||
|
import com.songoda.epicheads.EpicHeads;
|
||||||
|
|
||||||
|
public class Category {
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
private boolean latestPack = false;
|
||||||
|
|
||||||
|
public Category(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Category(String name, boolean latestPack) {
|
||||||
|
this.name = name;
|
||||||
|
this.latestPack = latestPack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLatestPack() {
|
||||||
|
return latestPack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCount() {
|
||||||
|
return Math.toIntExact(EpicHeads.getInstance().getHeadManager()
|
||||||
|
.getHeads().stream().filter(head -> head.getCategory() == this).count());
|
||||||
|
}
|
||||||
|
}
|
@ -11,21 +11,24 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class Head {
|
public class Head {
|
||||||
|
|
||||||
private final int id;
|
private final int id;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String URL;
|
private final String URL;
|
||||||
|
private final String pack;
|
||||||
private final byte staffPicked;
|
private final byte staffPicked;
|
||||||
|
|
||||||
private final Tag tag;
|
private final Category category;
|
||||||
|
|
||||||
public Head(int id, String name, String URL, Tag tag, byte staffPicked) {
|
public Head(int id, String name, String URL, Category category, String pack, byte staffPicked) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.URL = URL;
|
this.URL = URL;
|
||||||
this.tag = tag;
|
this.category = category;
|
||||||
|
this.pack = pack;
|
||||||
this.staffPicked = staffPicked;
|
this.staffPicked = staffPicked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,12 +40,14 @@ public class Head {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getPack() { return pack; }
|
||||||
|
|
||||||
public String getURL() {
|
public String getURL() {
|
||||||
return URL;
|
return URL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tag getTag() {
|
public Category getCategory() {
|
||||||
return tag;
|
return category;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getStaffPicked() {
|
public byte getStaffPicked() {
|
||||||
@ -81,7 +86,8 @@ public class Head {
|
|||||||
+ "Id:\"" + id + "\","
|
+ "Id:\"" + id + "\","
|
||||||
+ "Name:\"" + name + "\","
|
+ "Name:\"" + name + "\","
|
||||||
+ "URL:\"" + URL + "\","
|
+ "URL:\"" + URL + "\","
|
||||||
+ "Tags:\"" + tag.getName() + "\","
|
+ "Category:\"" + category.getName() + "\","
|
||||||
|
+ "Pack:\"" + pack + "\","
|
||||||
+ "StaffPicked:\"" + staffPicked + "\""
|
+ "StaffPicked:\"" + staffPicked + "\""
|
||||||
+ "}";
|
+ "}";
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ public class HeadManager {
|
|||||||
|
|
||||||
private static final Set<Head> registeredHeads = new HashSet<>();
|
private static final Set<Head> registeredHeads = new HashSet<>();
|
||||||
private static final List<Head> localRegisteredHeads = new ArrayList<>();
|
private static final List<Head> localRegisteredHeads = new ArrayList<>();
|
||||||
private static final List<Tag> registeredTags = new ArrayList<>();
|
private static final List<Category> registeredTags = new ArrayList<>();
|
||||||
|
|
||||||
public Head addHead(Head head) {
|
public Head addHead(Head head) {
|
||||||
registeredHeads.add(head);
|
registeredHeads.add(head);
|
||||||
@ -43,17 +43,17 @@ public class HeadManager {
|
|||||||
List<Head> result = getHeads().stream().filter(head -> head.getName().contains(query)).collect(Collectors.toList());
|
List<Head> result = getHeads().stream().filter(head -> head.getName().contains(query)).collect(Collectors.toList());
|
||||||
|
|
||||||
if (result.isEmpty()) {
|
if (result.isEmpty()) {
|
||||||
for (Tag tag : registeredTags) {
|
for (Category tag : registeredTags) {
|
||||||
if (!tag.getName().equalsIgnoreCase(query)) continue;
|
if (!tag.getName().equalsIgnoreCase(query)) continue;
|
||||||
return getHeads().stream().filter(head -> head.getTag() == tag).collect(Collectors.toList());
|
return getHeads().stream().filter(head -> head.getCategory() == tag).collect(Collectors.toList());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Head> getHeadsByTag(Tag tag) {
|
public List<Head> getHeadsByTag(Category tag) {
|
||||||
return getHeads().stream().filter(head -> head.getTag() == tag).collect(Collectors.toList());
|
return getHeads().stream().filter(head -> head.getCategory() == tag).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Head> getHeads() {
|
public List<Head> getHeads() {
|
||||||
@ -76,16 +76,30 @@ public class HeadManager {
|
|||||||
return new ArrayList<>(registeredHeads);
|
return new ArrayList<>(registeredHeads);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Head> getLatestPack() {
|
||||||
|
List<Head> heads = getHeads().stream().sorted(Comparator.comparingInt(Head::getId)).filter(head -> head.getPack() != null).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Collections.reverse(heads);
|
||||||
|
|
||||||
|
if (heads.isEmpty()) return new ArrayList<>();
|
||||||
|
|
||||||
|
String latestPack = heads.get(0).getPack();
|
||||||
|
|
||||||
|
heads = heads.stream().filter(head -> head.getPack().equals(latestPack)).collect(Collectors.toList());
|
||||||
|
|
||||||
|
return heads;
|
||||||
|
}
|
||||||
|
|
||||||
public void removeLocalHead(Head head) {
|
public void removeLocalHead(Head head) {
|
||||||
localRegisteredHeads.remove(head);
|
localRegisteredHeads.remove(head);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tag addTag(Tag tag) {
|
public Category addCategory(Category category) {
|
||||||
registeredTags.add(tag);
|
registeredTags.add(category);
|
||||||
return tag;
|
return category;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tag> getTags() {
|
public List<Category> getTags() {
|
||||||
return Collections.unmodifiableList(registeredTags);
|
return Collections.unmodifiableList(registeredTags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package com.songoda.epicheads.head;
|
|
||||||
|
|
||||||
import com.songoda.epicheads.EpicHeads;
|
|
||||||
|
|
||||||
public class Tag {
|
|
||||||
|
|
||||||
private final String name;
|
|
||||||
|
|
||||||
public Tag(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCount() {
|
|
||||||
return Math.toIntExact(EpicHeads.getInstance().getHeadManager()
|
|
||||||
.getHeads().stream().filter(head -> head.getTag() == this).count());
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,7 +3,7 @@ package com.songoda.epicheads.listeners;
|
|||||||
import com.songoda.epicheads.EpicHeads;
|
import com.songoda.epicheads.EpicHeads;
|
||||||
import com.songoda.epicheads.head.Head;
|
import com.songoda.epicheads.head.Head;
|
||||||
import com.songoda.epicheads.head.HeadManager;
|
import com.songoda.epicheads.head.HeadManager;
|
||||||
import com.songoda.epicheads.head.Tag;
|
import com.songoda.epicheads.head.Category;
|
||||||
import com.songoda.epicheads.utils.Methods;
|
import com.songoda.epicheads.utils.Methods;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -32,13 +32,13 @@ public class LoginListeners implements Listener {
|
|||||||
|
|
||||||
String tagStr = "Player Heads";
|
String tagStr = "Player Heads";
|
||||||
|
|
||||||
Optional<Tag> tagOptional = headManager.getTags()
|
Optional<Category> tagOptional = headManager.getTags()
|
||||||
.stream().filter(t -> t.getName().equalsIgnoreCase(tagStr)).findFirst();
|
.stream().filter(t -> t.getName().equalsIgnoreCase(tagStr)).findFirst();
|
||||||
|
|
||||||
Tag tag = tagOptional.orElseGet(() -> new Tag(tagStr));
|
Category tag = tagOptional.orElseGet(() -> new Category(tagStr));
|
||||||
|
|
||||||
if (!tagOptional.isPresent())
|
if (!tagOptional.isPresent())
|
||||||
headManager.addTag(tag);
|
headManager.addCategory(tag);
|
||||||
|
|
||||||
Optional<Head> optional = headManager.getLocalHeads().stream()
|
Optional<Head> optional = headManager.getLocalHeads().stream()
|
||||||
.filter(h -> h.getName().equalsIgnoreCase(event.getPlayer().getName())).findFirst();
|
.filter(h -> h.getName().equalsIgnoreCase(event.getPlayer().getName())).findFirst();
|
||||||
@ -51,7 +51,7 @@ public class LoginListeners implements Listener {
|
|||||||
headManager.removeLocalHead(head);
|
headManager.removeLocalHead(head);
|
||||||
}
|
}
|
||||||
|
|
||||||
headManager.addLocalHeads(new Head(id, player.getName(), url, tag, (byte) 0));
|
headManager.addLocalHeads(new Head(id, player.getName(), url, tag, null, (byte) 0));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ public abstract class Storage {
|
|||||||
prepareSaveItem("local", new StorageItem("url", head.getURL()),
|
prepareSaveItem("local", new StorageItem("url", head.getURL()),
|
||||||
new StorageItem("name", head.getName()),
|
new StorageItem("name", head.getName()),
|
||||||
new StorageItem("id", head.getId()),
|
new StorageItem("id", head.getId()),
|
||||||
new StorageItem("category", head.getTag().getName()));
|
new StorageItem("category", head.getCategory().getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ gui.overview.title = "EpicHeads (%count% heads)"
|
|||||||
gui.overview.search = "&a&lSearch"
|
gui.overview.search = "&a&lSearch"
|
||||||
gui.overview.headname = "&c&l%name%"
|
gui.overview.headname = "&c&l%name%"
|
||||||
gui.overview.headlore = "&e%count% heads"
|
gui.overview.headlore = "&e%count% heads"
|
||||||
|
gui.overview.packlore = "&e%pack%"
|
||||||
gui.overview.viewfavorites = "&6&lView Favorites"
|
gui.overview.viewfavorites = "&6&lView Favorites"
|
||||||
gui.overview.favoriteslore = "&8Shift click any head|&8to save as a favorite."
|
gui.overview.favoriteslore = "&8Shift click any head|&8to save as a favorite."
|
||||||
gui.overview.discord = "&9&lDiscord"
|
gui.overview.discord = "&9&lDiscord"
|
||||||
|
Loading…
Reference in New Issue
Block a user