Skip to content

Commit a9ead0a

Browse files
committed
Some code improvements, bug fixes, plus other things I think?
1 parent e674df9 commit a9ead0a

File tree

30 files changed

+754
-253
lines changed

30 files changed

+754
-253
lines changed

src/main/java/llc/redstone/hysentials/Hysentials.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ public class Hysentials {
109109
private final ChatHandler chatHandler = new ChatHandler();
110110

111111
public final GuiDisplayHandler guiDisplayHandler = new GuiDisplayHandler();
112-
public final CosmeticManager cosmeticManager = new CosmeticManager();
113112
public static List<ICommand> commands;
114113

115114
public ModAPIHandler hypixelModAPI;

src/main/java/llc/redstone/hysentials/command/ClubCommand.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -250,18 +250,20 @@ public void dashboard() {
250250
UChat.chat("&cYou must be linked to a Discord account to use this feature.");
251251
return;
252252
}
253-
try {
254-
String s = NetworkUtils.getString(getHYSENTIALS_API() + "/club?uuid="
255-
+ Minecraft.getMinecraft().getSession().getProfile().getId().toString()
256-
+ "&key=" + Socket.serverId);
257-
JsonObject clubData = new JsonParser().parse(s).getAsJsonObject();
258-
if (!clubData.get("success").getAsBoolean()) {
259-
UChat.chat(HysentialsConfig.chatPrefix + " &c" + clubData.get("message").getAsString());
260-
return;
253+
Multithreading.runAsync(() -> {
254+
try {
255+
String s = NetworkUtils.getString(getHYSENTIALS_API() + "/club?uuid="
256+
+ Minecraft.getMinecraft().getSession().getProfile().getId().toString()
257+
+ "&key=" + Socket.serverId);
258+
JsonObject clubData = new JsonParser().parse(s).getAsJsonObject();
259+
if (!clubData.get("success").getAsBoolean()) {
260+
UChat.chat(HysentialsConfig.chatPrefix + " &c" + clubData.get("message").getAsString());
261+
return;
262+
}
263+
new ClubDashboard(clubData).open(Minecraft.getMinecraft().thePlayer);
264+
} catch (Exception e) {
265+
e.printStackTrace();
261266
}
262-
new ClubDashboard(clubData).open(Minecraft.getMinecraft().thePlayer);
263-
} catch (Exception e) {
264-
e.printStackTrace();
265-
}
267+
});
266268
}
267269
}

src/main/java/llc/redstone/hysentials/command/HysentialsCommand.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package llc.redstone.hysentials.command;
22

3+
import cc.polyfrost.oneconfig.gui.OneConfigGui;
4+
import cc.polyfrost.oneconfig.gui.pages.ModConfigPage;
5+
import cc.polyfrost.oneconfig.gui.pages.ModsPage;
36
import cc.polyfrost.oneconfig.libs.universal.UChat;
47
import cc.polyfrost.oneconfig.libs.universal.wrappers.message.UTextComponent;
58
import cc.polyfrost.oneconfig.utils.Multithreading;
69
import cc.polyfrost.oneconfig.utils.NetworkUtils;
10+
import cc.polyfrost.oneconfig.utils.gui.GuiUtils;
711
import com.google.gson.JsonArray;
812
import llc.redstone.hysentials.Hysentials;
913
import llc.redstone.hysentials.HysentialsUtilsKt;
@@ -94,7 +98,12 @@ public void processCommand(ICommandSender sender, String[] args) throws CommandE
9498
}
9599

96100
case "config": {
97-
Hysentials.INSTANCE.getConfig().openGui();
101+
ModConfigPage page = new ModConfigPage(Hysentials.INSTANCE.getConfig().mod.defaultPage);
102+
ModsPage page2 = new ModsPage();
103+
page.parents.add(page2);
104+
page.parents.add(page);
105+
106+
GuiUtils.displayScreen(new OneConfigGui(page));
98107
break;
99108
}
100109

@@ -255,7 +264,7 @@ public static void handleLeaderboard(String command, String[] args) {
255264
break;
256265
}
257266
default: {
258-
UChat.chat(HysentialsConfig.chatPrefix + " §cUnknown leaderboard type! Use /hysentials leaderboard <level/emeralds/settings> for a list of types.");
267+
UChat.chat(HysentialsConfig.chatPrefix + " §cUnknown leaderboard type! Use /hysentials leaderboard <levels/emeralds/settings> for a list of types.");
259268
break;
260269

261270
}
@@ -344,7 +353,7 @@ public void helpPage(int page) {
344353
text.appendText("&e/hysentials online &7- &bShows the online players.\n");
345354
text.appendText("&e/hysentials menu &7- &bOpens the Hysentials menu.\n");
346355
text.appendText("&e/hysentials discord &7- &bShows the discord invite link.\n");
347-
text.appendText("&e/hysentials leaderboard <level/emeralds/settings> &7- Leaderboard.\n");
356+
text.appendText("&e/hs leaderboard <levels/emeralds/settings> &7- &bLeaderboard.\n");
348357
text.appendText("§9&m ");
349358
break;
350359
}

src/main/java/llc/redstone/hysentials/cosmetics/AbstractCosmetic.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,15 @@
1414
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
1515
import net.minecraftforge.fml.common.gameevent.TickEvent;
1616

17+
import java.util.ArrayList;
18+
import java.util.List;
1719
import java.util.Map;
1820
import java.util.UUID;
1921

2022
import static java.lang.Thread.sleep;
2123

2224
public abstract class AbstractCosmetic <E extends Entity>{
25+
public static List<Cosmetic> cosmetics = new ArrayList<>();
2326
private final boolean selfOnly;
2427

2528
public AbstractCosmetic(boolean selfOnly) {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package llc.redstone.hysentials.cosmetics;
2+
3+
import net.minecraft.client.Minecraft;
4+
import net.minecraft.client.model.ModelBase;
5+
import net.minecraft.client.renderer.GlStateManager;
6+
import net.minecraft.entity.player.EntityPlayer;
7+
import net.minecraft.util.ResourceLocation;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
public interface Cosmetic {
13+
boolean canUse(EntityPlayer player);
14+
ModelBase getModel();
15+
ResourceLocation getTexture();
16+
String getName();
17+
18+
default void renderPreview(int x, int y, int ticks) {
19+
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
20+
if (!canUse(player)) return;
21+
Minecraft.getMinecraft().getTextureManager().bindTexture(getTexture());
22+
GlStateManager.pushMatrix();
23+
24+
GlStateManager.rotate(toRadians(ticks /20f), 0f, 1.0F, 0.0F);
25+
// GlStateManager.translate(x, y, 0);
26+
float n = 1;
27+
GlStateManager.scale(n, n, n);
28+
29+
getModel().render(player, 0, 0, 0, 0, 0, n);
30+
31+
GlStateManager.popMatrix();
32+
}
33+
34+
default float toRadians(float degrees) {
35+
return (float) (degrees * (Math.PI / 180));
36+
}
37+
}

src/main/java/llc/redstone/hysentials/cosmetics/backpack/BackpackCosmetic.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,55 @@
11
package llc.redstone.hysentials.cosmetics.backpack;
22

33
import llc.redstone.hysentials.cosmetic.CosmeticGui;
4-
import llc.redstone.hysentials.cosmetic.CosmeticUtilsKt;
4+
import llc.redstone.hysentials.cosmetic.CosmeticManager;
55
import llc.redstone.hysentials.cosmetics.AbstractCosmetic;
6+
import llc.redstone.hysentials.cosmetics.Cosmetic;
67
import llc.redstone.hysentials.cosmetics.hats.cat.CatHat;
78
import llc.redstone.hysentials.cosmetics.hats.cat.CatModel;
89
import llc.redstone.hysentials.cosmetic.CosmeticGui;
10+
import net.minecraft.client.Minecraft;
11+
import net.minecraft.client.model.ModelBase;
12+
import net.minecraft.client.renderer.GlStateManager;
913
import net.minecraft.entity.player.EntityPlayer;
1014
import net.minecraft.util.ResourceLocation;
1115

1216
import java.util.ArrayList;
1317
import java.util.List;
1418

15-
public class BackpackCosmetic {
19+
public class BackpackCosmetic implements Cosmetic {
1620
public static List<BackpackCosmetic> backpacks = new ArrayList<>();
21+
boolean catpack;
1722
BackpackModel model;
1823
CatPackModel catModel;
1924
String name;
2025
ResourceLocation texture;
2126
public BackpackCosmetic(String name, boolean catpack) {
27+
this.catpack = catpack;
2228
if (catpack) {
2329
catModel = new CatPackModel();
2430
} else {
2531
model = new BackpackModel();
2632
}
2733
this.name = name;
2834
texture = new ResourceLocation("hysentials:backpacks/" + name + ".png");
35+
AbstractCosmetic.cosmetics.add(this);
2936
}
3037
public boolean canUse(EntityPlayer player) {
31-
return CosmeticUtilsKt.equippedCosmetic(player.getUniqueID(), name)
32-
&& CosmeticUtilsKt.hasCosmetic(player.getUniqueID(), name);
38+
return CosmeticManager.equippedCosmetic(player.getUniqueID(), name)
39+
&& CosmeticManager.hasCosmetic(player.getUniqueID(), name);
40+
}
41+
42+
public ModelBase getModel() {
43+
return catpack ? catModel : model;
44+
}
45+
46+
public ResourceLocation getTexture() {
47+
return texture;
48+
}
49+
50+
@Override
51+
public String getName() {
52+
return name;
3353
}
3454

3555
public static void loadBackpacks() {

src/main/java/llc/redstone/hysentials/cosmetics/capes/CapeHandler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package llc.redstone.hysentials.cosmetics.capes;
22

3-
import llc.redstone.hysentials.cosmetic.CosmeticUtilsKt;
3+
import llc.redstone.hysentials.cosmetic.CosmeticManager;
44
import llc.redstone.hysentials.schema.HysentialsSchema;
55
import llc.redstone.hysentials.websocket.Socket;
66
import net.minecraft.client.Minecraft;
@@ -25,11 +25,11 @@ public void onTickEvent(TickEvent.ClientTickEvent event) {
2525
for (String id : Socket.cachedUsers.keySet()) {
2626
UUID uuid = UUID.fromString(id);
2727
boolean wearingCape = false;
28-
for (HysentialsSchema.Cosmetic cosmetic : CosmeticUtilsKt.getEquippedCosmetics(uuid)) {
28+
for (HysentialsSchema.Cosmetic cosmetic : CosmeticManager.getEquippedCosmetics(uuid)) {
2929
if (cosmetic.getSubType() != null && cosmetic.getSubType().equals("cape")) {
3030
wearingCape = true;
3131
String name = cosmetic.getName();
32-
if (CosmeticUtilsKt.hasCosmetic(uuid, name)) {
32+
if (CosmeticManager.hasCosmetic(uuid, name)) {
3333
ResourceLocation location = new ResourceLocation(cosmetic.getResource());
3434
resourceMap.put(uuid, cosmetic.getResource());
3535
try {

src/main/java/llc/redstone/hysentials/cosmetics/cubit/CubitCompanion.java

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,36 @@
22

33
import cc.polyfrost.oneconfig.libs.universal.UChat;
44
import llc.redstone.hysentials.cosmetic.CosmeticGui;
5-
import llc.redstone.hysentials.cosmetic.CosmeticUtilsKt;
5+
import llc.redstone.hysentials.cosmetic.CosmeticManager;
66
import llc.redstone.hysentials.cosmetics.AbstractCosmetic;
7+
import llc.redstone.hysentials.cosmetics.Cosmetic;
78
import llc.redstone.hysentials.util.BUtils;
89
import llc.redstone.hysentials.websocket.Socket;
910
import llc.redstone.hysentials.cosmetic.CosmeticGui;
1011
import llc.redstone.hysentials.cosmetics.AbstractCosmetic;
1112
import llc.redstone.hysentials.util.BUtils;
1213
import llc.redstone.hysentials.websocket.Socket;
1314
import net.minecraft.client.Minecraft;
15+
import net.minecraft.client.model.ModelBase;
1416
import net.minecraft.client.multiplayer.WorldClient;
17+
import net.minecraft.client.renderer.EntityRenderer;
18+
import net.minecraft.client.renderer.GlStateManager;
1519
import net.minecraft.entity.Entity;
1620
import net.minecraft.entity.item.EntityArmorStand;
1721
import net.minecraft.entity.player.EntityPlayer;
22+
import net.minecraft.util.ResourceLocation;
1823

1924
import java.util.HashMap;
2025
import java.util.Map;
2126
import java.util.UUID;
2227

23-
public class CubitCompanion extends AbstractCosmetic<EntityCubit> {
28+
public class CubitCompanion extends AbstractCosmetic<EntityCubit> implements Cosmetic {
2429
private Map<UUID, EntityCubit> cubits = new HashMap<>();
30+
private CubitModel model = new CubitModel();
2531

2632
public CubitCompanion() {
2733
super(false);
34+
AbstractCosmetic.cosmetics.add(this);
2835
}
2936

3037
@Override
@@ -34,11 +41,26 @@ public Map<UUID, EntityCubit> getEntities() {
3441

3542
@Override
3643
public boolean canUse(EntityPlayer player) {
37-
return CosmeticUtilsKt.equippedCosmetic(player.getUniqueID(), "cubit")
38-
&& CosmeticUtilsKt.hasCosmetic(player.getUniqueID(), "cubit")
44+
return CosmeticManager.equippedCosmetic(player.getUniqueID(), "cubit")
45+
&& CosmeticManager.hasCosmetic(player.getUniqueID(), "cubit")
3946
&& !player.isInvisible();
4047
}
4148

49+
@Override
50+
public ModelBase getModel() {
51+
return model;
52+
}
53+
54+
@Override
55+
public ResourceLocation getTexture() {
56+
return new ResourceLocation("hysentials:pets/cubit.png");
57+
}
58+
59+
@Override
60+
public String getName() {
61+
return "cubit";
62+
}
63+
4264
public static long cooldown = 0;
4365
@Override
4466
public void interact(EntityCubit entity) {

src/main/java/llc/redstone/hysentials/cosmetics/hamster/HamsterCompanion.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,30 @@
1818
package llc.redstone.hysentials.cosmetics.hamster;
1919

2020
import llc.redstone.hysentials.cosmetic.CosmeticGui;
21-
import llc.redstone.hysentials.cosmetic.CosmeticUtilsKt;
21+
import llc.redstone.hysentials.cosmetic.CosmeticManager;
2222
import llc.redstone.hysentials.cosmetics.AbstractCosmetic;
23+
import llc.redstone.hysentials.cosmetics.Cosmetic;
2324
import llc.redstone.hysentials.event.InvokeEvent;
2425
import llc.redstone.hysentials.cosmetic.CosmeticGui;
2526
import llc.redstone.hysentials.cosmetics.AbstractCosmetic;
2627
import net.minecraft.client.Minecraft;
28+
import net.minecraft.client.model.ModelBase;
2729
import net.minecraft.client.multiplayer.WorldClient;
2830
import net.minecraft.entity.Entity;
2931
import net.minecraft.entity.item.EntityArmorStand;
3032
import net.minecraft.entity.player.EntityPlayer;
33+
import net.minecraft.util.ResourceLocation;
3134
import net.minecraft.world.World;
3235

3336
import java.util.*;
3437

35-
public class HamsterCompanion extends AbstractCosmetic<EntityHamster> {
38+
public class HamsterCompanion extends AbstractCosmetic<EntityHamster> implements Cosmetic {
3639
private Map<UUID, EntityHamster> hamsters = new HashMap<>();
40+
private HamsterModel model = new HamsterModel();
3741

3842
public HamsterCompanion() {
3943
super(false);
44+
AbstractCosmetic.cosmetics.add(this);
4045
}
4146

4247

@@ -65,11 +70,26 @@ public Map<UUID, EntityHamster> getEntities() {
6570

6671
@Override
6772
public boolean canUse(EntityPlayer player) {
68-
return CosmeticUtilsKt.equippedCosmetic(player.getUniqueID(), "hamster")
69-
&& CosmeticUtilsKt.hasCosmetic(player.getUniqueID(), "hamster")
73+
return CosmeticManager.equippedCosmetic(player.getUniqueID(), "hamster")
74+
&& CosmeticManager.hasCosmetic(player.getUniqueID(), "hamster")
7075
&& !player.isInvisible();
7176
}
7277

78+
@Override
79+
public ModelBase getModel() {
80+
return model;
81+
}
82+
83+
@Override
84+
public ResourceLocation getTexture() {
85+
return new ResourceLocation("hysentials:pets/hamsterbrown.png");
86+
}
87+
88+
@Override
89+
public String getName() {
90+
return "hamster";
91+
}
92+
7393
@Override
7494
public void interact(EntityHamster entity) {
7595

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,34 @@
11
package llc.redstone.hysentials.cosmetics.hats.blackcat;
22

33
import llc.redstone.hysentials.cosmetic.CosmeticGui;
4-
import llc.redstone.hysentials.cosmetic.CosmeticUtilsKt;
4+
import llc.redstone.hysentials.cosmetic.CosmeticManager;
5+
import llc.redstone.hysentials.cosmetics.AbstractCosmetic;
6+
import llc.redstone.hysentials.cosmetics.Cosmetic;
57
import llc.redstone.hysentials.cosmetics.hats.technocrown.TechnoCrownModel;
68
import net.minecraft.entity.player.EntityPlayer;
9+
import net.minecraft.util.ResourceLocation;
710

8-
public class BlackCat {
11+
public class BlackCat implements Cosmetic {
912
BlackCatModel model;
1013
public BlackCat() {
1114
model = new BlackCatModel();
15+
AbstractCosmetic.cosmetics.add(this);
1216
}
1317
public boolean canUse(EntityPlayer player) {
14-
return CosmeticUtilsKt.equippedCosmetic(player.getUniqueID(), "black cat")
15-
&& CosmeticUtilsKt.hasCosmetic(player.getUniqueID(), "black cat");
18+
return CosmeticManager.equippedCosmetic(player.getUniqueID(), "black cat")
19+
&& CosmeticManager.hasCosmetic(player.getUniqueID(), "black cat");
20+
}
21+
22+
public BlackCatModel getModel() {
23+
return model;
24+
}
25+
26+
public ResourceLocation getTexture() {
27+
return new ResourceLocation("hysentials:hats/blackcat.png");
28+
}
29+
30+
@Override
31+
public String getName() {
32+
return "black cat";
1633
}
1734
}

0 commit comments

Comments
 (0)