From 38f80b76f6aa79349b90128c3aa7ae4c44cfe3e4 Mon Sep 17 00:00:00 2001 From: ItzKatze <136186750+ItzKatze@users.noreply.github.com> Date: Mon, 29 Dec 2025 23:06:59 +0100 Subject: [PATCH] some spider den work --- .../bedwarslobby/npcs/NPCHypixelStore.java | 2 +- .../type/deepcaverns/npcs/NPCLapisMiner.java | 2 +- .../deepcaverns/npcs/NPCLiftOperator.java | 12 +- .../deepcaverns/npcs/NPCRedstoneMiner.java | 2 +- .../swofty/type/deepcaverns/npcs/NPCRhys.java | 2 +- .../type/deepcaverns/npcs/NPCWalter.java | 2 +- .../dwarvenmines/npcs/NPCBankerBroadjaw.java | 2 +- .../type/dwarvenmines/npcs/NPCBubu.java | 2 +- .../type/dwarvenmines/npcs/NPCBulvar.java | 2 +- .../npcs/NPCCastleGuardEight.java | 2 +- .../dwarvenmines/npcs/NPCCastleGuardFive.java | 2 +- .../dwarvenmines/npcs/NPCCastleGuardFour.java | 2 +- .../dwarvenmines/npcs/NPCCastleGuardOne.java | 2 +- .../npcs/NPCCastleGuardSeven.java | 2 +- .../dwarvenmines/npcs/NPCCastleGuardSix.java | 2 +- .../npcs/NPCCastleGuardThree.java | 2 +- .../dwarvenmines/npcs/NPCCastleGuardTwo.java | 2 +- .../type/dwarvenmines/npcs/NPCFragilis.java | 2 +- .../dwarvenmines/npcs/NPCLiftOperator.java | 2 +- .../type/dwarvenmines/npcs/NPCPuzzler.java | 2 +- .../type/dwarvenmines/npcs/NPCRhys.java | 2 +- .../dwarvenmines/npcs/NPCRoyalGuardOne.java | 2 +- .../type/dwarvenmines/npcs/NPCSilnar.java | 2 +- .../net/swofty/type/hub/npcs/NPCAlda.java | 2 +- .../rusty/GUIRustyAccessories.java | 227 ++--------------- .../rusty/GUIRustyMiscellaneous.java | 209 ++-------------- .../rusty/GUIRustyPetsAndPetItems.java | 211 ++-------------- .../inventories/rusty/GUIRustySubMenu.java | 234 ++++++++++++++++++ .../rusty/GUIRustyWeaponsAndGear.java | 211 ++-------------- .../MissionGiveCharlieBirchLogs.java | 2 +- .../birchpark/MissionTalkToCharlie.java | 2 +- .../birchpark/MissionTalkToCharlieAgain.java | 2 +- .../MissionGiveRyanDarkOakLogs.java | 2 +- .../darkthicket/MissionSneakUpOnRyan.java | 2 +- .../darkthicket/MissionTalkToRyan.java | 2 +- .../thepark/jungle/MissionTalkToMolbert.java | 2 +- .../thepark/savanna/MissionCheckOnMelody.java | 2 +- .../savanna/MissionGiveMelodyAcaciaLogs.java | 2 +- .../thepark/spruce/MissionFindKelly.java | 2 +- .../spruce/MissionGiveKellySpruceLogs.java | 2 +- .../npcs/NPCBramassBeastslayer.java | 31 +++ .../swofty/type/spidersden/npcs/NPCRick.java | 17 ++ .../swofty/type/thepark/npcs/NPCCharlie.java | 2 +- .../swofty/type/thepark/npcs/NPCGustave.java | 2 +- .../swofty/type/thepark/npcs/NPCJuliette.java | 2 +- .../swofty/type/thepark/npcs/NPCKelly.java | 2 +- .../thepark/npcs/NPCMelancholicViking.java | 2 +- .../swofty/type/thepark/npcs/NPCMelody.java | 2 +- .../swofty/type/thepark/npcs/NPCMolbert.java | 2 +- .../type/thepark/npcs/NPCOldShamanNyko.java | 2 +- .../net/swofty/type/thepark/npcs/NPCRyan.java | 4 +- .../type/thepark/npcs/NPCWorkerXavier.java | 2 +- 52 files changed, 401 insertions(+), 841 deletions(-) create mode 100644 type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustySubMenu.java diff --git a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java index be8ed4ee5..a535b1877 100644 --- a/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java +++ b/type.bedwarslobby/src/main/java/net/swofty/type/bedwarslobby/npcs/NPCHypixelStore.java @@ -30,7 +30,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(11.500, 69.000, 20.500, 90, 0); + return new Pos(11.5, 69, 20.5, 90, 0); } @Override diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java index 357688082..3164cc23c 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLapisMiner.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-10.500, 120.000, 35.500, -115, 0); + return new Pos(-10.5, 120, 35.5, -115, 0); } @Override diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLiftOperator.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLiftOperator.java index 18ee4b387..83114ab8a 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLiftOperator.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCLiftOperator.java @@ -34,12 +34,12 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { final Pos[] positions = new Pos[]{ - new Pos(45.500, 150.000, 15.500, 90f, 0f), - new Pos(45.500, 121.000, 15.500, 90f, 0f), - new Pos(45.500, 101.000, 17.500, 90f, 0f), - new Pos(45.500, 66.000, 15.500, 90f, 0f), - new Pos(45.500, 38.000, 15.500, 90f, 0f), - new Pos(45.500, 13.0, 15.500, 90f, 0f), + new Pos(45.5, 150, 15.5, 90f, 0f), + new Pos(45.5, 121, 15.5, 90f, 0f), + new Pos(45.5, 101, 17.5, 90f, 0f), + new Pos(45.5, 66, 15.5, 90f, 0f), + new Pos(45.5, 38, 15.5, 90f, 0f), + new Pos(45.5, 13.0, 15.5, 90f, 0f), }; final Pos playerPos = player.getPosition(); diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java index 4cab334dd..d42d681f0 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRedstoneMiner.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(25.000, 104.000, 16.500, -66, 0); + return new Pos(25, 104, 16.5, -66, 0); } @Override diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java index e89c248db..defb3ddcc 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCRhys.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(31.500, 12.000, 14.500, -90, 0); + return new Pos(31.5, 12, 14.5, -90, 0); } @Override diff --git a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCWalter.java b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCWalter.java index f9ea3f3b7..332e09e17 100644 --- a/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCWalter.java +++ b/type.deepcaverns/src/main/java/net/swofty/type/deepcaverns/npcs/NPCWalter.java @@ -34,7 +34,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(19.000, 156.000, -36.000, -25, 0); + return new Pos(19, 156, -36, -25, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBankerBroadjaw.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBankerBroadjaw.java index 8c8b641c8..4f69cfcfc 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBankerBroadjaw.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBankerBroadjaw.java @@ -29,7 +29,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(13.500, 201.000, -148.500, 44, 0); + return new Pos(13.5, 201, -148.5, 44, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java index 038516ade..dc65bb841 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBubu.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-10.500, 201.000, -103.500, 45, 0); + return new Pos(-10.5, 201, -103.5, 45, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java index 47e105667..c3545bc4f 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCBulvar.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-15.500, 201.000, -98.500, -135, 0); + return new Pos(-15.5, 201, -98.5, -135, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardEight.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardEight.java index fb5ab132a..07db50121 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardEight.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardEight.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(108.500, 202.000, 253.000, -180, 0); + return new Pos(108.5, 202, 253, -180, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFive.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFive.java index 3857782eb..a8ac710fe 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFive.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFive.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(93.000, 196.000, 176.000, 49, 0); + return new Pos(93, 196, 176, 49, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFour.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFour.java index 3987d593e..23be81f41 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFour.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardFour.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(122.000, 192.000, 148.000, -180, 0); + return new Pos(122, 192, 148, -180, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardOne.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardOne.java index d331f88ff..a53b55304 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardOne.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardOne.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(125.000, 187.000, 106.000, -180, 0); + return new Pos(125, 187, 106, -180, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSeven.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSeven.java index d8f53af17..1a36f006e 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSeven.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSeven.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(132.000, 202.000, 252.000, -141, 0); + return new Pos(132, 202, 252, -141, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSix.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSix.java index 8af06f591..06da6c75c 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSix.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardSix.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(196.000, 204.000, 181.000, 90, 0); + return new Pos(196, 204, 181, 90, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardThree.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardThree.java index b5ea870c4..11d2b5363 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardThree.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardThree.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(137.000, 192.0, 148.000, -180, 0); + return new Pos(137, 192.0, 148, -180, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardTwo.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardTwo.java index 076638e55..8a8da3cd3 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardTwo.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCCastleGuardTwo.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(134.000, 187.0, 106.000, -180, 0); + return new Pos(134, 187.0, 106, -180, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCFragilis.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCFragilis.java index 7d7801f48..c93ec2fdf 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCFragilis.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCFragilis.java @@ -29,7 +29,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(88.000, 199.000, -108.000, 0, 0); + return new Pos(88, 199, -108, 0, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java index 0c64c6e9e..6800172a8 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCLiftOperator.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-79.500, 200, -123.500, -59, 0); + return new Pos(-79.5, 200, -123.5, -59, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java index 8c77b6a70..362e5a1b4 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCPuzzler.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(181.500, 196.000, 135.500, 0, 0); + return new Pos(181.5, 196, 135.5, 0, 0); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRhys.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRhys.java index c513af509..56b8ff811 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRhys.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRhys.java @@ -29,7 +29,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-38.000, 200.000, -119.000, 280, -3); + return new Pos(-38, 200, -119, 280, -3); } @Override diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRoyalGuardOne.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRoyalGuardOne.java index 5ec497db4..f3d2a085d 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRoyalGuardOne.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCRoyalGuardOne.java @@ -8,7 +8,7 @@ public NPCRoyalGuardOne() { super( _ -> "seuXIllWZjXjqV2JnR3IcWgjYKWb1wm0gK69ENtKNZZCcP0QKbqjHme1u+K/aIs+JIH0nSkdkj+5PP6/kbsRm64V789hHeDSYJ2aE8lcqamptdez63Ap//Nvv8ykDRPHTddvOlJ/zpeEOj2x2E0u4LtsyLaRlY24Ku8kkiy7L+EKZQ4Pl0mB2o2AtzZNECF1BYhhSguEzFVhu2emweFCD5yYcTcpyecnvKfedXy4uxaeTAls46rqCfGHJSLll6PatUwJ7ZcBQyN95RCR8I0+kdkkkFZ3v2nYllTLd3oJPpRD6GBkOA32uVFYEYXp4HAjN2odDZfPmw663jdVJtLvYIEc9FckQfY6uXjSt3V7/yzOrxP8iV22IMhXY1gaTjQFnoBFa/yRcVrbcJ1GIT3tJMYrB3hS8BnmR7jPQ05crUQjZHCqVzZEa74bM44eus3Db8sL6OALpYznP+u9Ss855AkjpIlwQw533qxMRZEffvnQ1wT556TeczvZDEb9zTszYqzCKt4uLG97k9aTYKpeJHIBbzCo9+xvGD0zzzTXZ7xKe4ZfpzKnFFjUrJRdqjddGRi5iV3WdHFLQ4VVcZyCqIhVNjt5bkCbObuqIdmhmCZNDvf8xmis1p890mLoTeln+Mu6/2NwgVXwuTtKgHnCGff4X7vdzepdomo0pZrgObk=", _ -> "ewogICJ0aW1lc3RhbXAiIDogMTYwNzQ2NDk5NDA2MSwKICAicHJvZmlsZUlkIiA6ICJhMmY4MzQ1OTVjODk0YTI3YWRkMzA0OTcxNmNhOTEwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJiUHVuY2giLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGU3YTQ2YzI1ODI2OGY0MmM4NTlkZDVjODAwOGE5N2M3MmI4ZDM3MGU5ODFjZTJkY2MwYzNmZDQ1MTYzOGVkNyIKICAgIH0KICB9Cn0=", - _ -> new Pos(-45.500, 200.000, -124.500, 90, 0) + _ -> new Pos(-45.5, 200, -124.5, 90, 0) ); } } \ No newline at end of file diff --git a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCSilnar.java b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCSilnar.java index 46e9bd6f4..0c7bcd0d1 100644 --- a/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCSilnar.java +++ b/type.dwarvenmines/src/main/java/net/swofty/type/dwarvenmines/npcs/NPCSilnar.java @@ -31,7 +31,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(53.063, 141.500, 19.500, 45, 0); + return new Pos(53.063, 141.5, 19.5, 45, 0); } @Override diff --git a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAlda.java b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAlda.java index 8cddf3326..a275c0412 100644 --- a/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAlda.java +++ b/type.hub/src/main/java/net/swofty/type/hub/npcs/NPCAlda.java @@ -29,7 +29,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(66.000, 71.000, -59.000, 25, 0); + return new Pos(66, 71, -59, 25, 0); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyAccessories.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyAccessories.java index 98502f5fc..103eeb832 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyAccessories.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyAccessories.java @@ -1,231 +1,38 @@ package net.swofty.type.skyblockgeneric.gui.inventories.rusty; -import net.minestom.server.component.DataComponents; -import net.minestom.server.event.inventory.InventoryPreClickEvent; -import net.minestom.server.inventory.InventoryType; -import net.minestom.server.item.ItemStack; -import net.minestom.server.item.Material; -import net.swofty.commons.StringUtility; -import net.swofty.type.generic.data.datapoints.DatapointToggles; -import net.swofty.type.generic.gui.inventory.HypixelPaginatedGUI; -import net.swofty.type.generic.gui.inventory.ItemStackCreator; -import net.swofty.type.generic.gui.inventory.item.GUIClickableItem; -import net.swofty.type.generic.gui.inventory.item.GUIItem; -import net.swofty.type.generic.user.HypixelPlayer; -import net.swofty.type.generic.utility.PaginationList; -import net.swofty.type.skyblockgeneric.gui.inventories.shop.GUIConfirmBuy; import net.swofty.type.skyblockgeneric.item.SkyBlockItem; -import net.swofty.type.skyblockgeneric.item.updater.NonPlayerItemUpdater; import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; -import java.util.ArrayList; import java.util.List; import java.util.function.Function; -public class GUIRustyAccessories extends HypixelPaginatedGUI { +public class GUIRustyAccessories extends GUIRustySubMenu { public GUIRustyAccessories() { - super(InventoryType.CHEST_6_ROW); + super( + () -> "Rusty ➜ Accessories", + () -> List.of(RustyItem.values()) + ); } - @Override - public boolean allowHotkeying() { - return false; - } - - @Override - public void onBottomClick(InventoryPreClickEvent e) { - e.setCancelled(true); - } - - @Override - public int[] getPaginatedSlots() { - return new int[]{ - 10, 11, 12, 13, 14, 15, 16, - 19, 20, 21, 22, 23, 24, 25, - 28, 29, 30, 31, 32, 33, 34, - 37, 38, 39, 40, 41, 42, 43 - }; - } - - @Override - public PaginationList fillPaged(HypixelPlayer player, PaginationList paged) { - List items = new ArrayList<>(); - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - - for (MiscellaneousItems miscItem : MiscellaneousItems.values()) { - boolean unlocked = miscItem.hasUnlocked.apply(skyblockPlayer); - items.add(new DisplayItem(miscItem, unlocked)); - } - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY)) { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - - int rarity1 = item1.miscItem.item.getAttributeHandler().getRarity().ordinal(); - int rarity2 = item2.miscItem.item.getAttributeHandler().getRarity().ordinal(); - return Integer.compare(rarity1, rarity2); - }); - } else { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - return Integer.compare(item1.miscItem.ordinal(), item2.miscItem.ordinal()); - }); - } - - paged.addAll(items); - return paged; - } - - @Override - public boolean shouldFilterFromSearch(String query, DisplayItem item) { - return false; - } - - @Override - public void performSearch(HypixelPlayer player, String query, int page, int maxPage) { - border(ItemStackCreator.createNamedItemStack(Material.BLACK_STAINED_GLASS_PANE, "")); - set(GUIClickableItem.getGoBackItem(49, new GUIRusty())); - - set(new GUIClickableItem(48) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean purchaseConfirmation = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION, !purchaseConfirmation); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aShop Confirmations", - player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? Material.LIME_DYE : Material.LIGHT_GRAY_DYE, - 1, "§7Confirm when purchasing item worth", "§7at least a million coins.", "", - "§eClick to " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? "disable" : "enable") + "!"); - } - }); - - set(new GUIItem(50) { - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aThe Janitor", Material.REDSTONE_TORCH, 1, - "§7Rusty watches over the neatness of the §6Gold", - "§6Mines§7, but really he watches over the whole of", - "§aSkyBlock§7.", - "", - "§7If you misplace a §6one-time reward §7from a", - "§7quest, it may be offered here!"); - } - }); - - set(new GUIClickableItem(51) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean sortByRarity = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY, !sortByRarity); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aSort by Rarity", - Material.ENDER_EYE, 1, - "§7Enabled: " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY) ? "§aYES" : "§cNO"), - "", - "§eClick to toggle!"); - } - }); - - if (page > 1) { - set(createNavigationButton(this, 45, query, page, false)); - } - if (page < maxPage) { - set(createNavigationButton(this, 53, query, page, true)); - } - } - - @Override - protected String getTitle(HypixelPlayer player, String query, int page, PaginationList paged) { - return "Rusty ➜ Accessories"; - } - - @Override - public GUIClickableItem createItemFor(DisplayItem displayItem, int slot, HypixelPlayer player) { - MiscellaneousItems miscItem = displayItem.miscItem; - boolean unlocked = displayItem.unlocked; - - if (!unlocked) { - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStackHead("§c???", - "5359d91277242fc01c309accb87b533f1929be176ecba2cde63bf635e05e699b", - 1); - } - }; - } - - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - SkyBlockItem item = miscItem.item; - int price = miscItem.price; - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) && price >= 1_000_000) { - new GUIConfirmBuy(item, price).open(player); - return; - } - - if (skyblockPlayer.getCoins() >= price) { - skyblockPlayer.addAndUpdateItem(item); - skyblockPlayer.removeCoins(price); - - skyblockPlayer.sendMessage("§aYou bought " + item.getDisplayName() + " §afor §6" + price + " Coins§a!"); - } else { - skyblockPlayer.sendMessage("§4You don't have enough coins!"); - } - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - ItemStack.Builder itemStack = new NonPlayerItemUpdater(miscItem.item).getUpdatedItem(); - List lore = new ArrayList<>(itemStack.build().get(DataComponents.LORE).stream().map(StringUtility::getTextFromComponent).toList()); - - lore.add(""); - lore.add("§7Cost"); - lore.add("§6" + StringUtility.commaify(miscItem.price) + " Coins"); - lore.add(""); - lore.add("§eClick to trade!"); - - return ItemStackCreator.updateLore(itemStack, lore); - } - }; - } - - public record DisplayItem(MiscellaneousItems miscItem, boolean unlocked) { - } - - private enum MiscellaneousItems { - + public enum RustyItem implements ShopEntry { ; private final SkyBlockItem item; private final int price; - private final Function hasUnlocked; + private final Function unlocked; - MiscellaneousItems(SkyBlockItem item, int price, Function hasUnlocked) { + RustyItem( + SkyBlockItem item, + int price, + Function unlocked + ) { this.item = item; this.price = price; - this.hasUnlocked = hasUnlocked; + this.unlocked = unlocked; } + + @Override public SkyBlockItem item() { return item; } + @Override public int price() { return price; } + @Override public Function hasUnlocked() { return unlocked; } } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyMiscellaneous.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyMiscellaneous.java index 16b9a4b32..8c995853f 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyMiscellaneous.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyMiscellaneous.java @@ -26,211 +26,36 @@ import java.util.List; import java.util.function.Function; -public class GUIRustyMiscellaneous extends HypixelPaginatedGUI { +public class GUIRustyMiscellaneous extends GUIRustySubMenu { public GUIRustyMiscellaneous() { - super(InventoryType.CHEST_6_ROW); - } - - @Override - public boolean allowHotkeying() { - return false; - } - - @Override - public void onBottomClick(InventoryPreClickEvent e) { - e.setCancelled(true); - } - - @Override - public int[] getPaginatedSlots() { - return new int[]{ - 10, 11, 12, 13, 14, 15, 16, - 19, 20, 21, 22, 23, 24, 25, - 28, 29, 30, 31, 32, 33, 34, - 37, 38, 39, 40, 41, 42, 43 - }; - } - - @Override - public PaginationList fillPaged(HypixelPlayer player, PaginationList paged) { - List items = new ArrayList<>(); - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - - for (MiscellaneousItems miscItem : MiscellaneousItems.values()) { - boolean unlocked = miscItem.hasUnlocked.apply(skyblockPlayer); - items.add(new DisplayItem(miscItem, unlocked)); - } - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY)) { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - - int rarity1 = item1.miscItem.item.getAttributeHandler().getRarity().ordinal(); - int rarity2 = item2.miscItem.item.getAttributeHandler().getRarity().ordinal(); - return Integer.compare(rarity1, rarity2); - }); - } else { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - return Integer.compare(item1.miscItem.ordinal(), item2.miscItem.ordinal()); - }); - } - - paged.addAll(items); - return paged; - } - - @Override - public boolean shouldFilterFromSearch(String query, DisplayItem item) { - return false; - } - - @Override - public void performSearch(HypixelPlayer player, String query, int page, int maxPage) { - border(ItemStackCreator.createNamedItemStack(Material.BLACK_STAINED_GLASS_PANE, "")); - set(GUIClickableItem.getGoBackItem(49, new GUIRusty())); - - set(new GUIClickableItem(48) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean purchaseConfirmation = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION, !purchaseConfirmation); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aShop Confirmations", - player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? Material.LIME_DYE : Material.LIGHT_GRAY_DYE, - 1, "§7Confirm when purchasing item worth", "§7at least a million coins.", "", - "§eClick to " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? "disable" : "enable") + "!"); - } - }); - - set(new GUIItem(50) { - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aThe Janitor", Material.REDSTONE_TORCH, 1, - "§7Rusty watches over the neatness of the §6Gold", - "§6Mines§7, but really he watches over the whole of", - "§aSkyBlock§7.", - "", - "§7If you misplace a §6one-time reward §7from a", - "§7quest, it may be offered here!"); - } - }); - - set(new GUIClickableItem(51) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean sortByRarity = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY, !sortByRarity); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aSort by Rarity", - Material.ENDER_EYE, 1, - "§7Enabled: " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY) ? "§aYES" : "§cNO"), - "", - "§eClick to toggle!"); - } - }); - - if (page > 1) { - set(createNavigationButton(this, 45, query, page, false)); - } - if (page < maxPage) { - set(createNavigationButton(this, 53, query, page, true)); - } - } - - @Override - public String getTitle(HypixelPlayer player, String query, int page, PaginationList paged) { - return "Rusty ➜ Miscellaneous"; - } - - @Override - public GUIClickableItem createItemFor(DisplayItem displayItem, int slot, HypixelPlayer player) { - MiscellaneousItems miscItem = displayItem.miscItem; - boolean unlocked = displayItem.unlocked; - - if (!unlocked) { - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStackHead("§c???", - "5359d91277242fc01c309accb87b533f1929be176ecba2cde63bf635e05e699b", - 1); - } - }; - } - - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - SkyBlockItem item = miscItem.item; - int price = miscItem.price; - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) && price >= 1_000_000) { - new GUIConfirmBuy(item, price).open(player); - return; - } - - if (skyblockPlayer.getCoins() >= price) { - skyblockPlayer.addAndUpdateItem(item); - skyblockPlayer.removeCoins(price); - - skyblockPlayer.sendMessage("§aYou bought " + item.getDisplayName() + " §afor §6" + price + " Coins§a!"); - } else { - skyblockPlayer.sendMessage("§4You don't have enough coins!"); - } - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - ItemStack.Builder itemStack = new NonPlayerItemUpdater(miscItem.item).getUpdatedItem(); - List lore = new ArrayList<>(itemStack.build().get(DataComponents.LORE).stream().map(StringUtility::getTextFromComponent).toList()); - - lore.add(""); - lore.add("§7Cost"); - lore.add("§6" + StringUtility.commaify(miscItem.price) + " Coins"); - lore.add(""); - lore.add("§eClick to trade!"); - - return ItemStackCreator.updateLore(itemStack, lore); - } - }; + super( + () -> "Rusty ➜ Miscellaneous", + () -> List.of(RustyItem.values()) + ); } - public record DisplayItem(MiscellaneousItems miscItem, boolean unlocked) { - } - private enum MiscellaneousItems { + public enum RustyItem implements ShopEntry { IRON_PICKAXE(getRustyPickaxe(), 200, (player) -> player.getMissionData().hasCompleted(MissionFindLazyMinerPickaxe.class)), ; private final SkyBlockItem item; private final int price; - private final Function hasUnlocked; + private final Function unlocked; - MiscellaneousItems(SkyBlockItem item, int price, Function hasUnlocked) { + RustyItem( + SkyBlockItem item, + int price, + Function unlocked + ) { this.item = item; this.price = price; - this.hasUnlocked = hasUnlocked; + this.unlocked = unlocked; } + + @Override public SkyBlockItem item() { return item; } + @Override public int price() { return price; } + @Override public Function hasUnlocked() { return unlocked; } } private static SkyBlockItem getRustyPickaxe() { diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyPetsAndPetItems.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyPetsAndPetItems.java index c938c7d6e..6eea53145 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyPetsAndPetItems.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyPetsAndPetItems.java @@ -22,210 +22,33 @@ import java.util.List; import java.util.function.Function; -public class GUIRustyPetsAndPetItems extends HypixelPaginatedGUI { +public class GUIRustyPetsAndPetItems extends GUIRustySubMenu { public GUIRustyPetsAndPetItems() { - super(InventoryType.CHEST_6_ROW); + super( + () -> "Rusty ➜ Pets & Pet Items", + () -> List.of(RustyItem.values()) + ); } - @Override - protected String getTitle(HypixelPlayer player, String query, int page, PaginationList paged) { - return "Rusty ➜ Pets & Pet Items"; - } - - @Override - public boolean allowHotkeying() { - return false; - } - - @Override - public void onBottomClick(InventoryPreClickEvent e) { - e.setCancelled(true); - } - - @Override - public int[] getPaginatedSlots() { - return new int[]{ - 10, 11, 12, 13, 14, 15, 16, - 19, 20, 21, 22, 23, 24, 25, - 28, 29, 30, 31, 32, 33, 34, - 37, 38, 39, 40, 41, 42, 43 - }; - } - - @Override - public PaginationList fillPaged(HypixelPlayer player, PaginationList paged) { - List items = new ArrayList<>(); - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - - for (MiscellaneousItems miscItem : MiscellaneousItems.values()) { - boolean unlocked = miscItem.hasUnlocked.apply(skyblockPlayer); - items.add(new DisplayItem(miscItem, unlocked)); - } - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY)) { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - - int rarity1 = item1.miscItem.item.getAttributeHandler().getRarity().ordinal(); - int rarity2 = item2.miscItem.item.getAttributeHandler().getRarity().ordinal(); - return Integer.compare(rarity1, rarity2); - }); - } else { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - return Integer.compare(item1.miscItem.ordinal(), item2.miscItem.ordinal()); - }); - } - - paged.addAll(items); - return paged; - } - - @Override - public boolean shouldFilterFromSearch(String query, DisplayItem item) { - return false; - } - - @Override - public void performSearch(HypixelPlayer player, String query, int page, int maxPage) { - border(ItemStackCreator.createNamedItemStack(Material.BLACK_STAINED_GLASS_PANE, "")); - set(GUIClickableItem.getGoBackItem(49, new GUIRusty())); - - set(new GUIClickableItem(48) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean purchaseConfirmation = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION, !purchaseConfirmation); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aShop Confirmations", - player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? Material.LIME_DYE : Material.LIGHT_GRAY_DYE, - 1, "§7Confirm when purchasing item worth", "§7at least a million coins.", "", - "§eClick to " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? "disable" : "enable") + "!"); - } - }); - - set(new GUIItem(50) { - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aThe Janitor", Material.REDSTONE_TORCH, 1, - "§7Rusty watches over the neatness of the §6Gold", - "§6Mines§7, but really he watches over the whole of", - "§aSkyBlock§7.", - "", - "§7If you misplace a §6one-time reward §7from a", - "§7quest, it may be offered here!"); - } - }); - - set(new GUIClickableItem(51) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean sortByRarity = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY, !sortByRarity); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aSort by Rarity", - Material.ENDER_EYE, 1, - "§7Enabled: " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY) ? "§aYES" : "§cNO"), - "", - "§eClick to toggle!"); - } - }); - - if (page > 1) { - set(createNavigationButton(this, 45, query, page, false)); - } - if (page < maxPage) { - set(createNavigationButton(this, 53, query, page, true)); - } - } - - @Override - public GUIClickableItem createItemFor(DisplayItem displayItem, int slot, HypixelPlayer player) { - MiscellaneousItems miscItem = displayItem.miscItem; - boolean unlocked = displayItem.unlocked; - - if (!unlocked) { - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStackHead("§c???", - "5359d91277242fc01c309accb87b533f1929be176ecba2cde63bf635e05e699b", - 1); - } - }; - } - - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - SkyBlockItem item = miscItem.item; - int price = miscItem.price; - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) && price >= 1_000_000) { - new GUIConfirmBuy(item, price).open(player); - return; - } - - if (skyblockPlayer.getCoins() >= price) { - skyblockPlayer.addAndUpdateItem(item); - skyblockPlayer.removeCoins(price); - - skyblockPlayer.sendMessage("§aYou bought " + item.getDisplayName() + " §afor §6" + price + " Coins§a!"); - } else { - skyblockPlayer.sendMessage("§4You don't have enough coins!"); - } - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - ItemStack.Builder itemStack = new NonPlayerItemUpdater(miscItem.item).getUpdatedItem(); - List lore = new ArrayList<>(itemStack.build().get(DataComponents.LORE).stream().map(StringUtility::getTextFromComponent).toList()); - - lore.add(""); - lore.add("§7Cost"); - lore.add("§6" + StringUtility.commaify(miscItem.price) + " Coins"); - lore.add(""); - lore.add("§eClick to trade!"); - - return ItemStackCreator.updateLore(itemStack, lore); - } - }; - } - - public record DisplayItem(MiscellaneousItems miscItem, boolean unlocked) { - } - - private enum MiscellaneousItems { - + public enum RustyItem implements ShopEntry { ; private final SkyBlockItem item; private final int price; - private final Function hasUnlocked; + private final Function unlocked; - MiscellaneousItems(SkyBlockItem item, int price, Function hasUnlocked) { + RustyItem( + SkyBlockItem item, + int price, + Function unlocked + ) { this.item = item; this.price = price; - this.hasUnlocked = hasUnlocked; + this.unlocked = unlocked; } + + @Override public SkyBlockItem item() { return item; } + @Override public int price() { return price; } + @Override public Function hasUnlocked() { return unlocked; } } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustySubMenu.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustySubMenu.java new file mode 100644 index 000000000..a4237d43a --- /dev/null +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustySubMenu.java @@ -0,0 +1,234 @@ +package net.swofty.type.skyblockgeneric.gui.inventories.rusty; + +import net.minestom.server.component.DataComponents; +import net.minestom.server.event.inventory.InventoryPreClickEvent; +import net.minestom.server.inventory.InventoryType; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; +import net.swofty.commons.StringUtility; +import net.swofty.type.generic.data.datapoints.DatapointToggles; +import net.swofty.type.generic.gui.inventory.HypixelPaginatedGUI; +import net.swofty.type.generic.gui.inventory.ItemStackCreator; +import net.swofty.type.generic.gui.inventory.item.GUIClickableItem; +import net.swofty.type.generic.gui.inventory.item.GUIItem; +import net.swofty.type.generic.user.HypixelPlayer; +import net.swofty.type.generic.utility.PaginationList; +import net.swofty.type.skyblockgeneric.gui.inventories.shop.GUIConfirmBuy; +import net.swofty.type.skyblockgeneric.item.SkyBlockItem; +import net.swofty.type.skyblockgeneric.item.updater.NonPlayerItemUpdater; +import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; +import java.util.function.Supplier; + +public class GUIRustySubMenu + extends HypixelPaginatedGUI> { + + private final Supplier titleSupplier; + private final Supplier> entriesSupplier; + + public GUIRustySubMenu( + Supplier titleSupplier, + Supplier> entriesSupplier + ) { + super(InventoryType.CHEST_6_ROW); + this.titleSupplier = titleSupplier; + this.entriesSupplier = entriesSupplier; + } + + @Override + protected String getTitle(HypixelPlayer player, String query, int page, PaginationList paged) { + return titleSupplier.get(); + } + + @Override + public boolean allowHotkeying() { + return false; + } + + @Override + public void onBottomClick(InventoryPreClickEvent e) { + e.setCancelled(true); + } + + @Override + public int[] getPaginatedSlots() { + return new int[]{ + 10, 11, 12, 13, 14, 15, 16, + 19, 20, 21, 22, 23, 24, 25, + 28, 29, 30, 31, 32, 33, 34, + 37, 38, 39, 40, 41, 42, 43 + }; + } + + @Override + public PaginationList> fillPaged( + HypixelPlayer player, + PaginationList> paged + ) { + SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; + List> items = new ArrayList<>(); + + for (T entry : entriesSupplier.get()) { + items.add(new DisplayEntry<>(entry, entry.hasUnlocked().apply(skyblockPlayer))); + } + + if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY)) { + items.sort((a, b) -> { + if (a.unlocked && !b.unlocked) return -1; + if (!a.unlocked && b.unlocked) return 1; + return Integer.compare( + a.entry.item().getAttributeHandler().getRarity().ordinal(), + b.entry.item().getAttributeHandler().getRarity().ordinal() + ); + }); + } + + paged.addAll(items); + return paged; + } + + @Override + public boolean shouldFilterFromSearch(String query, DisplayEntry item) { + return false; + } + + @Override public void performSearch(HypixelPlayer player, String query, int page, int maxPage) { + border(ItemStackCreator.createNamedItemStack(Material.BLACK_STAINED_GLASS_PANE, "")); + set(GUIClickableItem.getGoBackItem(49, new GUIRusty())); + + set(new GUIClickableItem(48) { + @Override + public void run(InventoryPreClickEvent e, HypixelPlayer player) { + boolean purchaseConfirmation = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION); + player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION, !purchaseConfirmation); + + GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); + newGui.open(player); + } + + @Override + public ItemStack.Builder getItem(HypixelPlayer player) { + return ItemStackCreator.getStack("§aShop Confirmations", + player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? Material.LIME_DYE : Material.LIGHT_GRAY_DYE, 1, + "§7Confirm when purchasing item worth", + "§7at least a million coins.", + "", + "§eClick to " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? "disable" : "enable") + "!"); + } + }); + + set(new GUIItem(50) { + @Override + public ItemStack.Builder getItem(HypixelPlayer player) { + return ItemStackCreator.getStack("§aThe Janitor", Material.REDSTONE_TORCH, 1, + "§7Rusty watches over the neatness of the §6Gold", + "§6Mines§7, but really he watches over the whole of", + "§aSkyBlock§7.", + "", + "§7If you misplace a §6one-time reward §7from a", + "§7quest, it may be offered here!"); + } + }); + + set(new GUIClickableItem(51) { + @Override + public void run(InventoryPreClickEvent e, HypixelPlayer player) { + boolean sortByRarity = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY); + player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY, !sortByRarity); + + GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); + newGui.open(player); + } + + @Override + public ItemStack.Builder getItem(HypixelPlayer player) { + return ItemStackCreator.getStack("§aSort by Rarity", Material.ENDER_EYE, 1, + "§7Enabled: " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY) ? "§aYES" : "§cNO"), + "", + "§eClick to toggle!"); + } + }); + + if (page > 1) { + set(createNavigationButton(this, 45, query, page, false)); + } + if (page < maxPage) { + set(createNavigationButton(this, 53, query, page, true)); + } + } + + @Override + public GUIClickableItem createItemFor(DisplayEntry display, int slot, HypixelPlayer player) { + T entry = display.entry; + boolean unlocked = display.unlocked; + + if (!unlocked) { + return new GUIClickableItem(slot) { + @Override public void run(InventoryPreClickEvent e, HypixelPlayer player) {} + @Override public ItemStack.Builder getItem(HypixelPlayer player) { + return ItemStackCreator.getStackHead( + "§c???", + "5359d91277242fc01c309accb87b533f1929be176ecba2cde63bf635e05e699b" + ); + } + }; + } + + return new GUIClickableItem(slot) { + @Override + public void run(InventoryPreClickEvent e, HypixelPlayer player) { + SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; + SkyBlockItem item = entry.item(); + int price = entry.price(); + + if (player.getToggles() + .get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) + && price >= 1_000_000) { + new GUIConfirmBuy(item, price).open(player); + return; + } + + if (skyblockPlayer.getCoins() >= price) { + skyblockPlayer.addAndUpdateItem(item); + skyblockPlayer.removeCoins(price); + skyblockPlayer.sendMessage("§aYou bought " + item.getDisplayName() + " §afor §6" + price + " Coins§a!"); + } else { + skyblockPlayer.sendMessage("§4You don't have enough coins!"); + } + } + + @Override + public ItemStack.Builder getItem(HypixelPlayer player) { + ItemStack.Builder stack = + new NonPlayerItemUpdater(entry.item()).getUpdatedItem(); + + List lore = new ArrayList<>( + stack.build() + .get(DataComponents.LORE) + .stream() + .map(StringUtility::getTextFromComponent) + .toList() + ); + + lore.add(""); + lore.add("§7Cost"); + lore.add("§6" + StringUtility.commaify(entry.price()) + " Coins"); + lore.add(""); + lore.add("§eClick to trade!"); + + return ItemStackCreator.updateLore(stack, lore); + } + }; + } + + public record DisplayEntry(T entry, boolean unlocked) {} + + public interface ShopEntry { + SkyBlockItem item(); + int price(); + Function hasUnlocked(); + } +} \ No newline at end of file diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyWeaponsAndGear.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyWeaponsAndGear.java index 9acbd0e82..eac628fcd 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyWeaponsAndGear.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/gui/inventories/rusty/GUIRustyWeaponsAndGear.java @@ -22,210 +22,33 @@ import java.util.List; import java.util.function.Function; -public class GUIRustyWeaponsAndGear extends HypixelPaginatedGUI { +public class GUIRustyWeaponsAndGear extends GUIRustySubMenu { public GUIRustyWeaponsAndGear() { - super(InventoryType.CHEST_6_ROW); + super( + () -> "Rusty ➜ Weapons & Gear", + () -> List.of(RustyItem.values()) + ); } - @Override - protected String getTitle(HypixelPlayer player, String query, int page, PaginationList paged) { - return "Rusty ➜ Weapons & Gear"; - } - - @Override - public boolean allowHotkeying() { - return false; - } - - @Override - public void onBottomClick(InventoryPreClickEvent e) { - e.setCancelled(true); - } - - @Override - public int[] getPaginatedSlots() { - return new int[]{ - 10, 11, 12, 13, 14, 15, 16, - 19, 20, 21, 22, 23, 24, 25, - 28, 29, 30, 31, 32, 33, 34, - 37, 38, 39, 40, 41, 42, 43 - }; - } - - @Override - public PaginationList fillPaged(HypixelPlayer player, PaginationList paged) { - List items = new ArrayList<>(); - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - - for (MiscellaneousItems miscItem : MiscellaneousItems.values()) { - boolean unlocked = miscItem.hasUnlocked.apply(skyblockPlayer); - items.add(new DisplayItem(miscItem, unlocked)); - } - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY)) { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - - int rarity1 = item1.miscItem.item.getAttributeHandler().getRarity().ordinal(); - int rarity2 = item2.miscItem.item.getAttributeHandler().getRarity().ordinal(); - return Integer.compare(rarity1, rarity2); - }); - } else { - items.sort((item1, item2) -> { - if (item1.unlocked && !item2.unlocked) return -1; - if (!item1.unlocked && item2.unlocked) return 1; - return Integer.compare(item1.miscItem.ordinal(), item2.miscItem.ordinal()); - }); - } - - paged.addAll(items); - return paged; - } - - @Override - public boolean shouldFilterFromSearch(String query, DisplayItem item) { - return false; - } - - @Override - public void performSearch(HypixelPlayer player, String query, int page, int maxPage) { - border(ItemStackCreator.createNamedItemStack(Material.BLACK_STAINED_GLASS_PANE, "")); - set(GUIClickableItem.getGoBackItem(49, new GUIRusty())); - - set(new GUIClickableItem(48) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean purchaseConfirmation = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION, !purchaseConfirmation); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aShop Confirmations", - player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? Material.LIME_DYE : Material.LIGHT_GRAY_DYE, - 1, "§7Confirm when purchasing item worth", "§7at least a million coins.", "", - "§eClick to " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) ? "disable" : "enable") + "!"); - } - }); - - set(new GUIItem(50) { - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aThe Janitor", Material.REDSTONE_TORCH, 1, - "§7Rusty watches over the neatness of the §6Gold", - "§6Mines§7, but really he watches over the whole of", - "§aSkyBlock§7.", - "", - "§7If you misplace a §6one-time reward §7from a", - "§7quest, it may be offered here!"); - } - }); - - set(new GUIClickableItem(51) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - boolean sortByRarity = player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY); - player.getToggles().set(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY, !sortByRarity); - - GUIRustyMiscellaneous newGui = new GUIRustyMiscellaneous(); - newGui.open(player); - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStack("§aSort by Rarity", - Material.ENDER_EYE, 1, - "§7Enabled: " + (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_SORT_BY_RARITY) ? "§aYES" : "§cNO"), - "", - "§eClick to toggle!"); - } - }); - - if (page > 1) { - set(createNavigationButton(this, 45, query, page, false)); - } - if (page < maxPage) { - set(createNavigationButton(this, 53, query, page, true)); - } - } - - @Override - public GUIClickableItem createItemFor(DisplayItem displayItem, int slot, HypixelPlayer player) { - MiscellaneousItems miscItem = displayItem.miscItem; - boolean unlocked = displayItem.unlocked; - - if (!unlocked) { - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - return ItemStackCreator.getStackHead("§c???", - "5359d91277242fc01c309accb87b533f1929be176ecba2cde63bf635e05e699b", - 1); - } - }; - } - - return new GUIClickableItem(slot) { - @Override - public void run(InventoryPreClickEvent e, HypixelPlayer player) { - SkyBlockPlayer skyblockPlayer = (SkyBlockPlayer) player; - SkyBlockItem item = miscItem.item; - int price = miscItem.price; - - if (player.getToggles().get(DatapointToggles.Toggles.ToggleType.RUSTY_PURCHASE_CONFIRMATION) && price >= 1_000_000) { - new GUIConfirmBuy(item, price).open(player); - return; - } - - if (skyblockPlayer.getCoins() >= price) { - skyblockPlayer.addAndUpdateItem(item); - skyblockPlayer.removeCoins(price); - - skyblockPlayer.sendMessage("§aYou bought " + item.getDisplayName() + " §afor §6" + price + " Coins§a!"); - } else { - skyblockPlayer.sendMessage("§4You don't have enough coins!"); - } - } - - @Override - public ItemStack.Builder getItem(HypixelPlayer player) { - ItemStack.Builder itemStack = new NonPlayerItemUpdater(miscItem.item).getUpdatedItem(); - List lore = new ArrayList<>(itemStack.build().get(DataComponents.LORE).stream().map(StringUtility::getTextFromComponent).toList()); - - lore.add(""); - lore.add("§7Cost"); - lore.add("§6" + StringUtility.commaify(miscItem.price) + " Coins"); - lore.add(""); - lore.add("§eClick to trade!"); - - return ItemStackCreator.updateLore(itemStack, lore); - } - }; - } - - public record DisplayItem(MiscellaneousItems miscItem, boolean unlocked) { - } - - private enum MiscellaneousItems { - + public enum RustyItem implements ShopEntry { ; private final SkyBlockItem item; private final int price; - private final Function hasUnlocked; + private final Function unlocked; - MiscellaneousItems(SkyBlockItem item, int price, Function hasUnlocked) { + RustyItem( + SkyBlockItem item, + int price, + Function unlocked + ) { this.item = item; this.price = price; - this.hasUnlocked = hasUnlocked; + this.unlocked = unlocked; } + + @Override public SkyBlockItem item() { return item; } + @Override public int price() { return price; } + @Override public Function hasUnlocked() { return unlocked; } } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionGiveCharlieBirchLogs.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionGiveCharlieBirchLogs.java index 12fdcdaed..d796dc2ba 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionGiveCharlieBirchLogs.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionGiveCharlieBirchLogs.java @@ -44,6 +44,6 @@ public Set getValidRegions() { @Override public Pos getLocation() { - return new Pos(-277.500, 80.000, -17.500); + return new Pos(-277.5, 80, -17.500); } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlie.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlie.java index 2bce5a015..ef062d1f5 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlie.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlie.java @@ -40,6 +40,6 @@ public Set getValidRegions() { @Override public Pos getLocation() { - return new Pos(-277.500, 80.000, -17.500); + return new Pos(-277.5, 80, -17.500); } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlieAgain.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlieAgain.java index ed6ac91e0..f8c7ba560 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlieAgain.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/birchpark/MissionTalkToCharlieAgain.java @@ -45,6 +45,6 @@ public Set getValidRegions() { @Override public Pos getLocation() { - return new Pos(-277.500, 80.000, -17.500); + return new Pos(-277.5, 80, -17.500); } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionGiveRyanDarkOakLogs.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionGiveRyanDarkOakLogs.java index 9f80d21f1..42ec99156 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionGiveRyanDarkOakLogs.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionGiveRyanDarkOakLogs.java @@ -22,7 +22,7 @@ public class MissionGiveRyanDarkOakLogs extends SkyBlockMission implements Locat @Override public Pos getLocation() { - return new Pos(-364.500, 102.500, -90.500); + return new Pos(-364.5, 102.5, -90.500); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionSneakUpOnRyan.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionSneakUpOnRyan.java index 2ce178a05..d4971f034 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionSneakUpOnRyan.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionSneakUpOnRyan.java @@ -14,7 +14,7 @@ public class MissionSneakUpOnRyan extends SkyBlockMission implements LocationAss @Override public Pos getLocation() { - return new Pos(-364.500, 102.500, -90.500); + return new Pos(-364.5, 102.5, -90.500); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionTalkToRyan.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionTalkToRyan.java index b932a9d2e..8f6f02b65 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionTalkToRyan.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/darkthicket/MissionTalkToRyan.java @@ -14,7 +14,7 @@ public class MissionTalkToRyan extends SkyBlockMission implements LocationAssoci @Override public Pos getLocation() { - return new Pos(-364.500, 102.500, -90.500); + return new Pos(-364.5, 102.5, -90.500); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/jungle/MissionTalkToMolbert.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/jungle/MissionTalkToMolbert.java index 106f5675f..f29d22c30 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/jungle/MissionTalkToMolbert.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/jungle/MissionTalkToMolbert.java @@ -14,7 +14,7 @@ public class MissionTalkToMolbert extends SkyBlockMission implements LocationAss @Override public Pos getLocation() { - return new Pos(-447.500, 120.000, -63.500); + return new Pos(-447.5, 120, -63.500); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionCheckOnMelody.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionCheckOnMelody.java index 9c03fa6a2..4ab4fbc35 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionCheckOnMelody.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionCheckOnMelody.java @@ -40,6 +40,6 @@ public Set getValidRegions() { @Override public Pos getLocation() { - return new Pos(-411.500, 109.000, 71.500); + return new Pos(-411.5, 109, 71.500); } } diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionGiveMelodyAcaciaLogs.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionGiveMelodyAcaciaLogs.java index edb07b565..2072491f5 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionGiveMelodyAcaciaLogs.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/savanna/MissionGiveMelodyAcaciaLogs.java @@ -21,7 +21,7 @@ public class MissionGiveMelodyAcaciaLogs extends SkyBlockMission implements Loca @Override public Pos getLocation() { - return new Pos(-411.500, 109.000, 71.500); + return new Pos(-411.5, 109, 71.500); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionFindKelly.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionFindKelly.java index 40dcf6755..de04e80a7 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionFindKelly.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionFindKelly.java @@ -14,7 +14,7 @@ public class MissionFindKelly extends SkyBlockMission implements LocationAssocia @Override public Pos getLocation() { - return new Pos(-350.500, 94.000, 33.500); + return new Pos(-350.5, 94, 33.500); } @Override diff --git a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionGiveKellySpruceLogs.java b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionGiveKellySpruceLogs.java index fdbfb9bd6..471cd78cc 100644 --- a/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionGiveKellySpruceLogs.java +++ b/type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/mission/missions/thepark/spruce/MissionGiveKellySpruceLogs.java @@ -15,7 +15,7 @@ public class MissionGiveKellySpruceLogs extends SkyBlockMission implements Locat @Override public Pos getLocation() { - return new Pos(-350.500, 94.000, 33.500); + return new Pos(-350.5, 94, 33.500); } @Override diff --git a/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCBramassBeastslayer.java b/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCBramassBeastslayer.java index f45b7e160..d737ac150 100644 --- a/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCBramassBeastslayer.java +++ b/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCBramassBeastslayer.java @@ -2,6 +2,7 @@ import net.minestom.server.coordinate.Pos; import net.swofty.commons.ChatColor; +import net.swofty.commons.skyblock.statistics.ItemStatistic; import net.swofty.type.generic.data.datapoints.DatapointToggles; import net.swofty.type.generic.entity.npc.HypixelNPC; import net.swofty.type.generic.entity.npc.configuration.HumanConfiguration; @@ -52,6 +53,8 @@ public void onClick(NPCInteractEvent event) { player.getToggles().set(DatapointToggles.Toggles.ToggleType.HAS_SPOKEN_TO_BRAMASS_BEASTSLAYER, true); }); } + + setDialogue(player, "idle-" + (1 + (int)(Math.random() * 7))); } @Override @@ -66,6 +69,34 @@ public DialogueSet[] dialogues(HypixelPlayer player) { "View your mob stats, unlock rewards, and more!", "You can find the Bestiary in your " + ChatColor.GREEN + "Combat Skill" + ChatColor.WHITE + " menu!" }).build(), + DialogueSet.builder() + .key("idle-1").lines(new String[] { + "Killing mobs in a Family enough times rewards you with " + ItemStatistic.MAGIC_FIND.getFullDisplayName() + ChatColor.WHITE + " towards that mob!" + }).build(), + DialogueSet.builder() + .key("idle-2").lines(new String[] { + "This increases your chance to find rare loot when killing this mob!" + }).build(), + DialogueSet.builder() + .key("idle-3").lines(new String[] { + "Killing enough mobs in a given " + ChatColor.GREEN + "Family" + ChatColor.WHITE + " unlocks " + ChatColor.GREEN + "rewards" + ChatColor.WHITE + "." + }).build(), + DialogueSet.builder() + .key("idle-4").lines(new String[] { + "You can unlock " + ItemStatistic.MAGIC_FIND.getFullDisplayName() + ChatColor.WHITE + ", " + ItemStatistic.STRENGTH.getFullDisplayName() + ChatColor.WHITE + " bonuses, and loot drop information for that Family!" + }).build(), + DialogueSet.builder() + .key("idle-5").lines(new String[] { + "You can always view your Bestiary in your " + ChatColor.GREEN + "Combat Skill" + ChatColor.WHITE + " menu!" + }).build(), + DialogueSet.builder() + .key("idle-6").lines(new String[] { + "Reach " + ChatColor.GREEN + "Milestones" + ChatColor.WHITE + " in your Bestiary by unlocking unique Family tiers." + }).build(), + DialogueSet.builder() + .key("idle-7").lines(new String[] { + "Reaching Milestones rewards " + ItemStatistic.HEALTH.getFullDisplayName() + ChatColor.WHITE + ", " + ChatColor.DARK_AQUA + "Combat Exp" + ChatColor.WHITE + ", and more!" + }).build(), }; } } diff --git a/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCRick.java b/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCRick.java index ddaf22959..ee2953833 100644 --- a/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCRick.java +++ b/type.spidersden/src/main/java/net/swofty/type/spidersden/npcs/NPCRick.java @@ -56,16 +56,21 @@ public void onClick(NPCInteractEvent event) { player.getToggles().set(DatapointToggles.Toggles.ToggleType.HAS_SPOKEN_TO_RICK, true); missionData.startMission(MissionTheFlintBros.class); }); + return; } else if (missionData.isCurrentlyActive(MissionTheFlintBros.class)) { if (player.removeItemFromPlayer(ItemType.IRON_INGOT, 2)) { setDialogue(player, "got-iron").thenRun(() -> { missionData.endMission(MissionTheFlintBros.class); player.addAndUpdateItem(ItemType.PROMISING_SHOVEL); }); + return; } else { setDialogue(player, "still-need-iron"); + return; } } + + setDialogue(player, "idle-" + (1 + (int)(Math.random() * 3))); } @Override @@ -84,6 +89,18 @@ public DialogueSet[] dialogues(HypixelPlayer player) { .key("got-iron").lines(new String[] { "Thanks a lot. Here's your Promising Shovel." }).build(), + DialogueSet.builder() + .key("idle-1").lines(new String[] { + "Have you met Pat? He's my brother. We're the Flint Bros!" + }).build(), + DialogueSet.builder() + .key("idle-2").lines(new String[] { + "Careful when it rains around here, it gets dangerous!" + }).build(), + DialogueSet.builder() + .key("idle-3").lines(new String[] { + "Mining gravel is hard work, but the flint is worth it." + }).build(), }; } } diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCCharlie.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCCharlie.java index 64b7dfdda..0d8743ae4 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCCharlie.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCCharlie.java @@ -34,7 +34,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-277.500, 80.000, -17.500, -90, 0); + return new Pos(-277.5, 80, -17.5, -90, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCGustave.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCGustave.java index 72354a300..d1f487ded 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCGustave.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCGustave.java @@ -27,7 +27,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-363.500, 89.000, 44.500, -135, 0); + return new Pos(-363.5, 89, 44.5, -135, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCJuliette.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCJuliette.java index 2164dfa1f..1b6a9f368 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCJuliette.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCJuliette.java @@ -27,7 +27,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-415.500, 130.000, -121.500, 14, 0); + return new Pos(-415.5, 130, -121.5, 14, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCKelly.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCKelly.java index 4265e2c4f..f1510d3c0 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCKelly.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCKelly.java @@ -36,7 +36,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-350.500, 94.000, 33.500, -180, 0); + return new Pos(-350.5, 94, 33.5, -180, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelancholicViking.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelancholicViking.java index 07ac4c361..10135398b 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelancholicViking.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelancholicViking.java @@ -27,7 +27,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-335.500, 92.500, 73.500, -180, 0); + return new Pos(-335.5, 92.5, 73.5, -180, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelody.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelody.java index 047296810..d981cc373 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelody.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMelody.java @@ -39,7 +39,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-411.500, 109.000, 71.500, 169, 0); + return new Pos(-411.5, 109, 71.5, 169, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMolbert.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMolbert.java index 80585e795..7c7d37f7e 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMolbert.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCMolbert.java @@ -27,7 +27,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-447.500, 120.000, -63.500, 45, 0); + return new Pos(-447.5, 120, -63.5, 45, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCOldShamanNyko.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCOldShamanNyko.java index aedfa96fc..c2716cc91 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCOldShamanNyko.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCOldShamanNyko.java @@ -27,7 +27,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-370.500, 84.000, -64.500, 45, 0); + return new Pos(-370.5, 84, -64.5, 45, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCRyan.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCRyan.java index 0b66d4423..297bba9aa 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCRyan.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCRyan.java @@ -53,9 +53,9 @@ public Pos position(HypixelPlayer p) { && !hasInteractedMap.getOrDefault(player.getUuid(), false)) { long step = (System.currentTimeMillis() / 30000) % 4; int rotation = (int) (step * 90); - return new Pos(-364.500, 102.500, -90.500, rotation, 0); + return new Pos(-364.5, 102.5, -90.5, rotation, 0); } - return new Pos(-364.500, 102.500, -90.500, -135, 0); + return new Pos(-364.5, 102.5, -90.5, -135, 0); } @Override diff --git a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCWorkerXavier.java b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCWorkerXavier.java index a9e4cda0f..3b06869bc 100644 --- a/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCWorkerXavier.java +++ b/type.thepark/src/main/java/net/swofty/type/thepark/npcs/NPCWorkerXavier.java @@ -32,7 +32,7 @@ public String texture(HypixelPlayer player) { @Override public Pos position(HypixelPlayer player) { - return new Pos(-424.500, 110.000, -15.500, -60, 0); + return new Pos(-424.5, 110, -15.5, -60, 0); } @Override