Skip to content

Commit f00ac60

Browse files
Merge pull request #668 from aunncodes/stuffig
Loads of bug fixes
2 parents b20379f + d176d51 commit f00ac60

9 files changed

Lines changed: 51 additions & 30 deletions

File tree

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/item/ActionItemAbilityBlockLeftUse.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ public void run(PlayerBlockBreakEvent event) {
4040
}
4141

4242
abilityHandler.startAbilityCooldown(item);
43-
ability.execute(player, item, event.getBlockPosition(), event.getBlockFace());
43+
if(ability.execute(player, item, event.getBlockPosition(), event.getBlockFace())){
44+
abilityHandler.startAbilityCooldown(item);
45+
};
4446
}
4547
}
4648
}

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/item/ActionItemAbilityBlockRightUse.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ public void run(PlayerBlockInteractEvent event) {
3737
return;
3838
}
3939

40-
abilityHandler.startAbilityCooldown(item);
41-
ability.execute(player, item, event.getBlockPosition(), event.getBlockFace());
40+
if(ability.execute(player, item, event.getBlockPosition(), event.getBlockFace())){
41+
abilityHandler.startAbilityCooldown(item);
42+
}
4243
}
4344
}
4445
}

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/item/ActionItemAbilityLeftUse.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ public void run(PlayerHandAnimationEvent event) {
4545
return;
4646
}
4747

48-
abilityHandler.startAbilityCooldown(item);
49-
ability.execute(player, item);
48+
if(ability.execute(player, item)){
49+
abilityHandler.startAbilityCooldown(item);
50+
}
5051
}
5152
}
5253
}

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/event/actions/item/ActionItemAbilityRightUse.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ public void run(PlayerUseItemEvent event) {
5050
return;
5151
}
5252

53-
abilityHandler.startAbilityCooldown(item);
54-
ability.execute(player, item);
53+
if(ability.execute(player, item)){
54+
abilityHandler.startAbilityCooldown(item);
55+
}
5556
}
5657
}
5758
}

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/AbilityRegistry.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ public class AbilityRegistry {
2929
50,
3030
new RegisteredAbility.AbilityManaCost(25),
3131
(player, item, ignored, ignored2) -> {
32-
player.teleport(player.getPosition().add(player.getPosition().direction().mul(10)));
32+
BlockVec tpPos = player.getPosition().add(player.getPosition().direction().mul(10)).asBlockVec();
33+
if (!player.getInstance().getBlock(tpPos.add(0, 1, 0)).isAir() || !player.getInstance().getBlock(tpPos.add(0, 2, 0)).isAir()) return false;
34+
player.teleport(new Pos(tpPos.add(0, 1, 0), player.getPosition().yaw(), player.getPosition().pitch()));
35+
return true;
3336
// TODO: damage nearby mobs
3437
}
3538
));
@@ -42,10 +45,13 @@ public class AbilityRegistry {
4245
5,
4346
new RegisteredAbility.AbilityManaCost(50),
4447
(player, item, ignored, ignored2) -> {
45-
player.teleport(player.getPosition().add(player.getPosition().direction().mul(8)));
48+
BlockVec tpPos = player.getPosition().add(player.getPosition().direction().mul(8)).asBlockVec();
49+
if (!player.getInstance().getBlock(tpPos.add(0, 1, 0)).isAir() || !player.getInstance().getBlock(tpPos.add(0, 2, 0)).isAir()) return false; // TODO: Make it so you can't go through walls
50+
player.teleport(new Pos(tpPos.add(0, 1, 0), player.getPosition().yaw(), player.getPosition().pitch()));
4651
ItemStatistics speedStats = ItemStatistics.builder().withBase(ItemStatistic.SPEED, 50.0).build();
4752
TemporaryStatistic speedBoost = TemporaryStatistic.builder().withStatistics(speedStats).withExpirationInMs(3000).withDisplayName("Instant Transmission").build();
4853
player.getStatistics().boostStatistic(speedBoost);
54+
return true;
4955
}
5056
));
5157

@@ -58,10 +64,11 @@ public class AbilityRegistry {
5864
new RegisteredAbility.AbilityManaSoulflowCost(180, 1),
5965
(player, item, ignored, ignored2) -> {
6066
Point targetedBlock = player.getTargetBlockPosition(57);
61-
if (targetedBlock == null) return;
67+
if (targetedBlock == null) return false;
6268
BlockVec tpPos = targetedBlock.asBlockVec();
63-
if (!player.getInstance().getBlock(tpPos.add(0, 1, 0)).isAir() || !player.getInstance().getBlock(tpPos.add(0, 2, 0)).isAir()) return; // TODO: don't consume mana/soulflow if teleport fails
69+
if (!player.getInstance().getBlock(tpPos.add(0, 1, 0)).isAir() || !player.getInstance().getBlock(tpPos.add(0, 2, 0)).isAir()) return false;
6470
player.teleport(new Pos(tpPos.add(0, 1, 0), player.getPosition().yaw(), player.getPosition().pitch()));
71+
return true;
6572
}
6673
));
6774

@@ -75,6 +82,7 @@ public class AbilityRegistry {
7582
(player, item, targetedBlock, blockFace) -> {
7683
player.sendMessage(Component.text("§cThis Feature is not there yet. §aOpen a Pull request HERE to get it added quickly!")
7784
.clickEvent(ClickEvent.openUrl("https://github.com/Swofty-Developments/HypixelSkyBlock")));
85+
return false;
7886
}
7987
));
8088

@@ -89,6 +97,7 @@ public class AbilityRegistry {
8997
ItemStatistics speedStats = ItemStatistics.builder().withBase(ItemStatistic.SPEED, 100.0).build();
9098
TemporaryStatistic speedBoost = TemporaryStatistic.builder().withStatistics(speedStats).withExpirationInMs(30000).withDisplayName("Speed Boost").build();
9199
player.getStatistics().boostStatistic(speedBoost);
100+
return true;
92101
}
93102
));
94103

@@ -121,12 +130,14 @@ public class AbilityRegistry {
121130
))
122131
));
123132

124-
// register(new RegisteredAbility( // TODO: Figure out how to implement passive abilities
133+
// register(new RegisteredPassiveAbility(
125134
// "BEJEWELED_BLADE",
126135
// "Bejeweled Blade",
127136
// "§7Deals §a+150% §7damage to mobs on §bMining Islands.",
128-
// RegisteredAbility.AbilityActivation.
129-
// ))
137+
// List.of(new RegisteredPassiveAbility.Action<>(
138+
//
139+
// ))
140+
// ));
130141

131142
register(new BuildersWandAbility());
132143
}

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/RegisteredAbility.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,20 @@ public RegisteredAbility(String id, String name, BiFunction<SkyBlockPlayer, SkyB
3636
this.action = action;
3737
}
3838

39-
public void execute(SkyBlockPlayer player, SkyBlockItem item) {
40-
execute(player, item, null, null);
39+
public boolean execute(SkyBlockPlayer player, SkyBlockItem item) {
40+
return execute(player, item, null, null);
4141
}
4242

43-
public void execute(SkyBlockPlayer player, SkyBlockItem item, Point targetedBlock, BlockFace blockFace) {
43+
public boolean execute(SkyBlockPlayer player, SkyBlockItem item, Point targetedBlock, BlockFace blockFace) {
4444
if (!cost.canUse(player)) {
4545
cost.onFail(player);
46-
return;
46+
return false;
47+
}
48+
if (!action.execute(player, item, targetedBlock, blockFace)){
49+
return false;
4750
}
48-
4951
cost.onUse(player, this);
50-
action.execute(player, item, targetedBlock, blockFace);
52+
return true;
5153
}
5254

5355
@FunctionalInterface
@@ -57,7 +59,7 @@ public interface Description {
5759

5860
@FunctionalInterface
5961
public interface AbilityAction {
60-
void execute(SkyBlockPlayer player, SkyBlockItem item, Point targetedBlock, BlockFace blockFace);
62+
boolean execute(SkyBlockPlayer player, SkyBlockItem item, Point targetedBlock, BlockFace blockFace);
6163
}
6264

6365
@Getter

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/RegisteredPassiveAbility.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ public class RegisteredPassiveAbility extends RegisteredAbility {
2121
private final List<Action<?>> passiveAction;
2222

2323
public RegisteredPassiveAbility(String id, String name, BiFunction<SkyBlockPlayer, SkyBlockItem, String> description, List<Action<?>> action) {
24-
super(id, name, description, AbilityActivation.NEVER, 0, new NoAbilityCost(), ((_, _, _, _) -> {}));
24+
super(id, name, description, AbilityActivation.NEVER, 0, new NoAbilityCost(), ((_, _, _, _) -> {
25+
return false;
26+
}));
2527
this.passiveAction = action;
2628
}
2729

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/ability/abilities/BuildersWandAbility.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minestom.server.instance.block.BlockFace;
88
import net.minestom.server.item.Material;
99
import net.swofty.commons.skyblock.item.ItemType;
10+
import net.swofty.type.generic.HypixelConst;
1011
import net.swofty.type.skyblockgeneric.item.handlers.ability.RegisteredAbility;
1112
import net.swofty.type.skyblockgeneric.user.SkyBlockPlayer;
1213

@@ -20,11 +21,11 @@ public BuildersWandAbility() {
2021
(player, item) -> "Right-click the face of a block to extend all connected block faces.",
2122
AbilityActivation.RIGHT_CLICK_BLOCK, 0, new RegisteredAbility.NoAbilityCost(),
2223
(player, item, origin, face) -> {
23-
fillConnectedFaces(player, new Pos(origin), face);
24+
return fillConnectedFaces(player, new Pos(origin), face);
2425
});
2526
}
2627

27-
private static void fillConnectedFaces(SkyBlockPlayer player, Pos origin, BlockFace face) {
28+
private static boolean fillConnectedFaces(SkyBlockPlayer player, Pos origin, BlockFace face) {
2829
Material fillMaterial = Material.fromKey(player.getInstance().getBlock(origin).key());
2930
int blocksInInventory = player.countItem(ItemType.fromMaterial(fillMaterial));
3031
int blockLimit = 164;
@@ -64,8 +65,7 @@ private static void fillConnectedFaces(SkyBlockPlayer player, Pos origin, BlockF
6465
}
6566
}
6667
Pos fillBlock = l.add(translate);
67-
// TODO: make sure player is on island
68-
if (player.isOnIsland()) {
68+
if (HypixelConst.isIslandServer()) {
6969
blocks.removeIf(blocks.getFirst()::equals);
7070
if (!player.getInstance().getBlock(fillBlock).key().equals(fillMaterial.key())) {
7171
player.getInstance().setBlock(fillBlock, Block.fromKey(fillMaterial.key()));
@@ -83,10 +83,10 @@ private static void fillConnectedFaces(SkyBlockPlayer player, Pos origin, BlockF
8383
}
8484
if (blocksPlaced == 0) {
8585
player.sendMessage("§cYou cannot place any blocks! You do not have enough blocks to place with your Builder's wand!");
86+
return false;
8687
}
87-
if (blocksPlaced != 0) {
88-
player.takeItem(ItemType.fromMaterial(fillMaterial), blocksPlaced);
89-
player.sendMessage("&eYou built &a" + blocksPlaced + "&e blocks!");
90-
}
88+
player.takeItem(ItemType.fromMaterial(fillMaterial), blocksPlaced);
89+
player.sendMessage("&eYou built &a" + blocksPlaced + "&e blocks!");
90+
return true;
9191
}
9292
}

type.skyblockgeneric/src/main/java/net/swofty/type/skyblockgeneric/item/handlers/interactable/InteractableRegistry.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class InteractableRegistry {
5858

5959
ServerHolograms.addExternalHologram(hologram);
6060
jerryInformation.setHologram(hologram);
61+
skyBlockItem.setAmount(0);
6162
})
6263
).build());
6364
}

0 commit comments

Comments
 (0)