Skip to content

Commit

Permalink
Switch to kyori methods (#42)
Browse files Browse the repository at this point in the history
* Switch to kyori methods

* Update RepairBarCommand.java

* Update RepairBarCommand.java
  • Loading branch information
TylerS1066 authored Jul 16, 2024
1 parent 3bae48e commit f010b0a
Show file tree
Hide file tree
Showing 8 changed files with 177 additions and 160 deletions.
86 changes: 42 additions & 44 deletions src/main/java/net/countercraft/movecraft/repair/RepairSign.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.UUID;
import java.util.WeakHashMap;

import net.kyori.adventure.text.Component;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.BlockState;
Expand All @@ -30,13 +31,15 @@
import net.countercraft.movecraft.repair.types.RepairState;
import net.countercraft.movecraft.repair.types.blobs.RepairBlob;
import net.countercraft.movecraft.repair.util.WEUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class RepairSign implements Listener {
private final String HEADER = "Repair:";
private final Map<UUID, Long> leftClickCache = new WeakHashMap<>();

@EventHandler
public void onSignChange(SignChangeEvent event) {
public void onSignChange(@NotNull SignChangeEvent event) {
if (!ChatColor.stripColor(event.getLine(0)).equalsIgnoreCase(HEADER))
return;

Expand All @@ -48,7 +51,7 @@ public void onSignChange(SignChangeEvent event) {
}

@EventHandler
public void onSignClick(PlayerInteractEvent event) {
public void onSignClick(@NotNull PlayerInteractEvent event) {
if (event.getAction() != Action.RIGHT_CLICK_BLOCK && event.getAction() != Action.LEFT_CLICK_BLOCK)
return;

Expand All @@ -58,25 +61,24 @@ public void onSignClick(PlayerInteractEvent event) {

Sign sign = (Sign) event.getClickedBlock().getState();
String signText = ChatColor.stripColor(sign.getLine(0));
if (signText == null || !signText.equalsIgnoreCase(HEADER))
if (!signText.equalsIgnoreCase(HEADER))
return;

event.setCancelled(true);
Player player = event.getPlayer();
if (Config.RepairTicksPerBlock == 0) {
player.sendMessage(I18nSupport
.getInternationalisedString("Repair functionality is disabled or WorldEdit was not detected"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair functionality is disabled or WorldEdit was not detected"));
return;
}

PlayerCraft craft = CraftManager.getInstance().getCraftByPlayer(player);
if (craft == null) {
player.sendMessage(I18nSupport.getInternationalisedString("You must be piloting a craft"));
player.sendMessage(I18nSupport.getInternationalisedComponent("You must be piloting a craft"));
return;
}

if (!player.hasPermission("movecraft." + craft.getType().getStringProperty(CraftType.NAME) + ".repair")) {
player.sendMessage(I18nSupport.getInternationalisedString("Insufficient Permissions"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Insufficient Permissions"));
return;
}

Expand All @@ -90,7 +92,7 @@ public void onSignClick(PlayerInteractEvent event) {
}
}

public void onRightClick(Sign sign, Player player, PlayerCraft craft) {
public void onRightClick(Sign sign, @NotNull Player player, PlayerCraft craft) {
UUID uuid = player.getUniqueId();

ProtoRepair protoRepair = MovecraftRepair.getInstance().getProtoRepairCache().get(uuid);
Expand All @@ -101,26 +103,24 @@ public void onRightClick(Sign sign, Player player, PlayerCraft craft) {
}

// Cached repair, try running the repair
Repair repair = null;
Repair repair;
try {
repair = protoRepair.execute(craft, sign);
} catch (ProtoRepair.NotEnoughMoneyException e) {
// Not enough money, tell the player
player.sendMessage(I18nSupport.getInternationalisedString("Economy - Not Enough Money"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Economy - Not Enough Money"));
return;
} catch (ProtoRepair.NotEnoughItemsException e) {
// Not enough items, tell the player
for (RepairBlob blob : e.getRemaining().getKeySet()) {
player.sendMessage(
I18nSupport.getInternationalisedString("Repair - Need more of material")
+ String.format(
": %s - %d",
blob.getName(),
(int) Math.ceil(e.getRemaining().get(blob))));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Need more of material")
.append(Component.text(String.format(": %s - %d",
blob.getName(),
(int) Math.ceil(e.getRemaining().get(blob))))));
}
return;
} catch (ProtoRepair.ItemRemovalException e) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Removal exception"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Removal exception"));
return;
} catch (ProtoRepair.ProtoRepairExpiredException | ProtoRepair.ProtoRepairLocationException e) {
// Expired or wrong location, go back to first click
Expand All @@ -142,15 +142,15 @@ public void onRightClick(Sign sign, Player player, PlayerCraft craft) {
MovecraftRepair.getInstance().getRepairManager().start(repair);
}

private void createProtoRepair(Sign sign, UUID uuid, Player player, PlayerCraft craft) {
private void createProtoRepair(@NotNull Sign sign, UUID uuid, Player player, PlayerCraft craft) {
String stateName = ChatColor.stripColor(sign.getLine(1));

// Get the repair state from file
RepairState state;
try {
state = new RepairState(uuid, stateName);
} catch (IOException e) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - State not found"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - State not found"));
return;
}

Expand All @@ -159,40 +159,40 @@ private void createProtoRepair(Sign sign, UUID uuid, Player player, PlayerCraft
try {
protoRepair = state.execute(sign);
} catch (WorldEditException e) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - State not found"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - State not found"));
return;
} catch (RepairState.ProtoRepairCancelledException e) {
player.sendMessage(e.getFailMessage());
return;
}
if (protoRepair == null) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - State not found"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - State not found"));
return;
}

player.sendMessage(I18nSupport.getInternationalisedString("Repair - Total damaged blocks") + ": "
+ protoRepair.getDamagedBlockCount());
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Total damaged blocks")
.append(Component.text(": "))
.append(Component.text(protoRepair.getDamagedBlockCount())));
double percent = 100.0 * protoRepair.getDamagedBlockCount() / craft.getHitBox().size();
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Percentage of craft")
+ String.format(": %.2f", percent));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Percentage of craft")
.append(Component.text(String.format(": %.2f", percent))));
if (percent > Config.RepairMaxPercent) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Failed Craft Too Damaged"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Failed Craft Too Damaged"));
return;
}

for (RepairBlob blob : protoRepair.getMaterials().getKeySet()) {
player.sendMessage(String.format(
"%s : %d",
player.sendMessage(String.format("%s : %d",
blob.getName(),
(int) Math.ceil(protoRepair.getMaterials().get(blob))));
}

long duration = (long) Math.ceil(protoRepair.getQueue().size() * Config.RepairTicksPerBlock / 20.0);
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Seconds to complete repair")
+ String.format(": %d", duration));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Seconds to complete repair")
.append(Component.text(String.format(": %d", duration))));

player.sendMessage(I18nSupport.getInternationalisedString("Repair - Money to complete repair")
+ String.format(": %.2f", protoRepair.getQueue().size() * Config.RepairMoneyPerBlock));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Money to complete repair")
.append(Component.text(String.format(": %.2f",protoRepair.getQueue().size() * Config.RepairMoneyPerBlock))));

// Add to cache only if not empty
if (!protoRepair.getQueue().isEmpty())
Expand All @@ -202,29 +202,27 @@ private void createProtoRepair(Sign sign, UUID uuid, Player player, PlayerCraft
public void onLeftClick(Sign sign, Player player, PlayerCraft craft) {
if (!Config.DisableDoubleClick) {
Long lastLeftClick = leftClickCache.get(player.getUniqueId());
if (lastLeftClick == null || (System.currentTimeMillis() - lastLeftClick.longValue() > 5000)) {
if (lastLeftClick == null || (System.currentTimeMillis() - lastLeftClick > 5000)) {
// First click, just add to the map
leftClickCache.put(player.getUniqueId(), System.currentTimeMillis());
return;
}
}

if (!WEUtils.saveCraftSchematic(craft, sign)) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Could not save file"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Could not save file"));
return;
}

player.sendMessage(I18nSupport.getInternationalisedString("Repair - State saved"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - State saved"));
}

private Material getItemInHand(Player player, EquipmentSlot slot) {
switch (slot) {
case HAND:
return player.getInventory().getItemInMainHand().getType();
case OFF_HAND:
return player.getInventory().getItemInOffHand().getType();
default:
return null;
}
@Nullable
private Material getItemInHand(Player player, @NotNull EquipmentSlot slot) {
return switch (slot) {
case HAND -> player.getInventory().getItemInMainHand().getType();
case OFF_HAND -> player.getInventory().getItemInOffHand().getType();
default -> null;
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
public class RepairBarManager extends BukkitRunnable implements Listener {
@NotNull
private final PlayerManager manager;
private Map<Repair, BossBar> bossBars = new HashMap<>();
private final Map<Repair, BossBar> bossBars = new HashMap<>();

public RepairBarManager(@NotNull PlayerManager manager) {
this.manager = manager;
Expand Down Expand Up @@ -71,7 +71,7 @@ public void onRepairStart(@NotNull RepairStartedEvent event) {

Player player = Bukkit.getPlayer(repair.getPlayerUUID());
if (player != null) {
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Repairs underway"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Repairs underway"));
if (manager.getBarSetting(player)) {
bossBar.addPlayer(player);
} else {
Expand All @@ -88,7 +88,7 @@ public void onRepairFinished(@NotNull RepairFinishedEvent event) {
if (player == null)
return;

player.sendMessage(I18nSupport.getInternationalisedString("Repair - Repairs complete"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Repairs complete"));
}

@EventHandler
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package net.countercraft.movecraft.repair.commands;

import net.countercraft.movecraft.repair.localisation.I18nSupport;
import net.countercraft.movecraft.util.ChatUtils;
import net.kyori.adventure.text.Component;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

import net.countercraft.movecraft.localisation.I18nSupport;
import net.countercraft.movecraft.repair.bar.config.PlayerManager;

import static net.countercraft.movecraft.util.ChatUtils.MOVECRAFT_COMMAND_PREFIX;

public class RepairBarCommand implements CommandExecutor {
@NotNull
private final PlayerManager manager;
Expand All @@ -22,21 +22,22 @@ public RepairBarCommand(@NotNull PlayerManager manager) {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s,
@NotNull String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(
MOVECRAFT_COMMAND_PREFIX + I18nSupport.getInternationalisedString("Repair - Must Be Player"));
if (!(sender instanceof Player player)) {
sender.sendMessage(ChatUtils.commandPrefix().append(I18nSupport.getInternationalisedComponent("Repair - Must Be Player")));
return true;
}
Player player = (Player) sender;

if (!player.hasPermission("movecraft.repair.repairbar")) {
player.sendMessage(MOVECRAFT_COMMAND_PREFIX + net.countercraft.movecraft.localisation.I18nSupport
.getInternationalisedString("Insufficient Permissions"));
player.sendMessage(ChatUtils.commandPrefix()
.append(net.countercraft.movecraft.localisation.I18nSupport.getInternationalisedComponent("Insufficient Permissions")));
return true;
}

manager.toggleBarSetting(player);
player.sendMessage(MOVECRAFT_COMMAND_PREFIX + I18nSupport.getInternationalisedString("Command - Bar set") + ": " + manager.getBarSetting(player));
player.sendMessage(ChatUtils.commandPrefix()
.append(I18nSupport.getInternationalisedComponent("Command - Bar Set"))
.append(Component.text(": "))
.append(Component.text(manager.getBarSetting(player))));
return true;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.countercraft.movecraft.repair.commands;

import net.countercraft.movecraft.util.ChatUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
Expand All @@ -10,22 +11,17 @@
import net.countercraft.movecraft.repair.localisation.I18nSupport;
import net.countercraft.movecraft.repair.types.Repair;

import static net.countercraft.movecraft.util.ChatUtils.MOVECRAFT_COMMAND_PREFIX;

public class RepairCancelCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s,
@NotNull String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(
MOVECRAFT_COMMAND_PREFIX + I18nSupport.getInternationalisedString("Repair - Must Be Player"));
if (!(sender instanceof Player player)) {
sender.sendMessage(ChatUtils.commandPrefix().append(I18nSupport.getInternationalisedComponent("Repair - Must Be Player")));
return true;
}
Player player = (Player) sender;

if (!player.hasPermission("movecraft.repair.repaircancel")) {
player.sendMessage(MOVECRAFT_COMMAND_PREFIX + net.countercraft.movecraft.localisation.I18nSupport
.getInternationalisedString("Insufficient Permissions"));
player.sendMessage(ChatUtils.commandPrefix().append(I18nSupport.getInternationalisedComponent("Insufficient Permissions")));
return true;
}

Expand All @@ -42,14 +38,13 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command

// No repairs
if (newest == null) {
player.sendMessage(
MOVECRAFT_COMMAND_PREFIX + I18nSupport.getInternationalisedString("Repair - No Repairs"));
player.sendMessage(ChatUtils.commandPrefix().append(I18nSupport.getInternationalisedComponent("Repair - No Repairs")));
return true;
}

// Cancel
MovecraftRepair.getInstance().getRepairManager().cancel(newest);
player.sendMessage(I18nSupport.getInternationalisedString("Repair - Repair cancelled"));
player.sendMessage(I18nSupport.getInternationalisedComponent("Repair - Repair cancelled"));

return true;
}
Expand Down
Loading

0 comments on commit f010b0a

Please sign in to comment.