diff --git a/src/main/java/dev/zontreck/libzontreck/util/heads/CreditsEntry.java b/src/main/java/dev/zontreck/libzontreck/util/heads/CreditsEntry.java new file mode 100644 index 0000000..bddb5af --- /dev/null +++ b/src/main/java/dev/zontreck/libzontreck/util/heads/CreditsEntry.java @@ -0,0 +1,60 @@ +package dev.zontreck.libzontreck.util.heads; + +import java.util.Properties; + +import dev.zontreck.libzontreck.chat.ChatColor; +import dev.zontreck.libzontreck.items.lore.LoreContainer; +import dev.zontreck.libzontreck.items.lore.LoreEntry; +import dev.zontreck.libzontreck.util.heads.HeadCache.HeadCacheItem; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.item.BookItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.WrittenBookItem; +import net.minecraft.world.scores.Team; + +public class CreditsEntry { + public HeadCacheItem player; + public String name; + public String role; + public String description; + + public CreditsEntry(HeadCacheItem item, String name, String role, String descript){ + player=item; + this.name=name; + this.role=role; + this.description=descript; + } + + /** + * Compiles all the information into the head item, then applies the Lore Entry with the role the person has played, and a description + * @return + */ + public ItemStack compile() + { + ItemStack stack = player.getAsItem(); + stack.setHoverName(new TextComponent(name)); + LoreContainer contain = new LoreContainer(stack); + LoreEntry entry = new LoreEntry(); + entry.text = ChatColor.doColors("!Dark_Purple!Role: "+role); + entry.bold=true; + entry.italic=true; + contain.miscData.LoreData.add(entry); + entry = new LoreEntry(); + entry.text = ChatColor.doColors("!White!About: !Dark_Green!"+description); + entry.italic=true; + contain.miscData.LoreData.add(entry); + + contain.commitLore(); + + return stack; + } + /** + * Generates a written book that can serve as an about-page about the person being creditted. + * @return + */ + public ItemStack compileInfosBook() + { + // Will return a patchouli book + return null; + } +} diff --git a/src/main/java/dev/zontreck/libzontreck/util/HeadCache.java b/src/main/java/dev/zontreck/libzontreck/util/heads/HeadCache.java similarity index 80% rename from src/main/java/dev/zontreck/libzontreck/util/HeadCache.java rename to src/main/java/dev/zontreck/libzontreck/util/heads/HeadCache.java index eaaa4d8..c4a1d38 100644 --- a/src/main/java/dev/zontreck/libzontreck/util/HeadCache.java +++ b/src/main/java/dev/zontreck/libzontreck/util/heads/HeadCache.java @@ -1,4 +1,4 @@ -package dev.zontreck.libzontreck.util; +package dev.zontreck.libzontreck.util.heads; import java.io.IOException; import java.nio.file.Path; @@ -7,6 +7,7 @@ import java.util.List; import java.util.UUID; import dev.zontreck.libzontreck.LibZontreck; +import dev.zontreck.libzontreck.util.ChatHelpers; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.IntArrayTag; import net.minecraft.nbt.ListTag; @@ -17,6 +18,7 @@ import net.minecraft.network.chat.TextComponent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.PlayerHeadItem; +import net.minecraftforge.items.ItemStackHandler; public class HeadCache { @@ -67,7 +69,7 @@ public class HeadCache skullOwner.put("Properties", properties); head.addTagElement(PlayerHeadItem.TAG_SKULL_OWNER, skullOwner); - TextComponent headname = ChatHelpers.macro("!Dark_red![0]'s Head", name); + TextComponent headname = ChatHelpers.macro("[0]'s Head", name); head.setHoverName(headname); return head; @@ -98,6 +100,21 @@ public class HeadCache }else { CACHE.resetCache(); } + + + List creds = new ArrayList<>(); + + creds.add( + new CreditsEntry(HeadUtilities.cachedLookup("zontreck"), "Aria (zontreck)", "Developer", "Aria is the primary developer and project maintainer")); + creds.add( + new CreditsEntry(HeadUtilities.cachedLookup("PossumTheWarrior"), "PossumTheWarrior", "Tester", "Poss has helped to test the mods from very early on")); + creds.add( + new CreditsEntry(HeadUtilities.cachedLookup("GemMD"), "GemMD", "Adviser", "GemMD has provided advise on marketing and development decisions for various mods")); + + CREDITS = creds; + + + CACHE.compile(); } private void initFromCache(CompoundTag tag) @@ -165,6 +182,17 @@ public class HeadCache HeadUtilities.get("GemMD"); } + public List compiled = new ArrayList<>(); + public static final List CREDITS; + public void compile() + { + compiled.clear(); + + for (CreditsEntry entry : CREDITS) { + compiled.add(entry.compile()); + } + } + public boolean hasHead(String playerName) { for (HeadCacheItem item : items) { diff --git a/src/main/java/dev/zontreck/libzontreck/util/HeadUtilities.java b/src/main/java/dev/zontreck/libzontreck/util/heads/HeadUtilities.java similarity index 88% rename from src/main/java/dev/zontreck/libzontreck/util/HeadUtilities.java rename to src/main/java/dev/zontreck/libzontreck/util/heads/HeadUtilities.java index 1152415..090f8b3 100644 --- a/src/main/java/dev/zontreck/libzontreck/util/HeadUtilities.java +++ b/src/main/java/dev/zontreck/libzontreck/util/heads/HeadUtilities.java @@ -1,4 +1,4 @@ -package dev.zontreck.libzontreck.util; +package dev.zontreck.libzontreck.util.heads; import java.net.MalformedURLException; import java.net.URL; @@ -8,14 +8,15 @@ import java.util.UUID; import com.google.gson.Gson; import dev.zontreck.libzontreck.LibZontreck; -import dev.zontreck.libzontreck.util.HeadCache.HeadCacheItem; +import dev.zontreck.libzontreck.util.HttpHelper; +import dev.zontreck.libzontreck.util.heads.HeadCache.HeadCacheItem; import net.minecraft.world.item.ItemStack; /** * Added to showcase Patreon supporters and those who have helped test or provide feedback and suggestions! */ public class HeadUtilities { - private static HeadCacheItem cachedLookup(String playerName) + protected static HeadCacheItem cachedLookup(String playerName) { if(HeadCache.CACHE.hasHead(playerName)) { diff --git a/src/main/java/dev/zontreck/libzontreck/util/PlayerInfo.java b/src/main/java/dev/zontreck/libzontreck/util/heads/PlayerInfo.java similarity index 68% rename from src/main/java/dev/zontreck/libzontreck/util/PlayerInfo.java rename to src/main/java/dev/zontreck/libzontreck/util/heads/PlayerInfo.java index 1ca1b71..9586e98 100644 --- a/src/main/java/dev/zontreck/libzontreck/util/PlayerInfo.java +++ b/src/main/java/dev/zontreck/libzontreck/util/heads/PlayerInfo.java @@ -1,4 +1,4 @@ -package dev.zontreck.libzontreck.util; +package dev.zontreck.libzontreck.util.heads; import java.util.UUID; diff --git a/src/main/java/dev/zontreck/libzontreck/util/PlayerProfileInfo.java b/src/main/java/dev/zontreck/libzontreck/util/heads/PlayerProfileInfo.java similarity index 77% rename from src/main/java/dev/zontreck/libzontreck/util/PlayerProfileInfo.java rename to src/main/java/dev/zontreck/libzontreck/util/heads/PlayerProfileInfo.java index cf6fdbd..553195c 100644 --- a/src/main/java/dev/zontreck/libzontreck/util/PlayerProfileInfo.java +++ b/src/main/java/dev/zontreck/libzontreck/util/heads/PlayerProfileInfo.java @@ -1,4 +1,4 @@ -package dev.zontreck.libzontreck.util; +package dev.zontreck.libzontreck.util.heads; import java.util.List; diff --git a/src/main/java/dev/zontreck/libzontreck/util/PlayerTextureContainer.java b/src/main/java/dev/zontreck/libzontreck/util/heads/PlayerTextureContainer.java similarity index 66% rename from src/main/java/dev/zontreck/libzontreck/util/PlayerTextureContainer.java rename to src/main/java/dev/zontreck/libzontreck/util/heads/PlayerTextureContainer.java index a6e54bc..b4ffe11 100644 --- a/src/main/java/dev/zontreck/libzontreck/util/PlayerTextureContainer.java +++ b/src/main/java/dev/zontreck/libzontreck/util/heads/PlayerTextureContainer.java @@ -1,4 +1,4 @@ -package dev.zontreck.libzontreck.util; +package dev.zontreck.libzontreck.util.heads; public class PlayerTextureContainer { public String name;