diff --git a/.gitignore b/.gitignore index 27d5dde..3d6545e 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,6 @@ buildNumber.properties # Common working directory run/ + +server/ +libs/ \ No newline at end of file diff --git a/README.md b/README.md index d4787bb..72e21ee 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ FastBuilder is an in-progress Minecraft plugin designed to enhance your bridging experience. -##It is prohibited to use this plugin for profit +## It is prohibited to use this plugin for profit ## Features @@ -16,6 +16,9 @@ FastBuilder is an in-progress Minecraft plugin designed to enhance your bridging - Cosmetics: Future updates will include cosmetics. - More Accurate Timer: We are working on improving the timer's accuracy to provide a more precise and fair gameplay experience. +## Known Issues +- The Scoreboard has the character limit of 40 per line. It's recommended to stay under 32 characters to avoid the issues. + Stay tuned for more updates as we continue to improve and expand FastBuilder! [Discord](https://discord.gg/CXX3aQ8yWz) diff --git a/src/main/java/com/njdge/fastbuilder/adapters/ScoreboardAdapter.java b/src/main/java/com/njdge/fastbuilder/adapters/ScoreboardAdapter.java index 99a6647..00137ae 100644 --- a/src/main/java/com/njdge/fastbuilder/adapters/ScoreboardAdapter.java +++ b/src/main/java/com/njdge/fastbuilder/adapters/ScoreboardAdapter.java @@ -51,9 +51,9 @@ private List fetchLines(Player player) { private List getPlayingLines(Player player) { PlayerProfile profile = plugin.getProfileManager().get(player.getUniqueId()); Arena arena = profile.getArena(); - String leader1 = arena.getLeader1(); - String leader2 = arena.getLeader2(); - String leader3 = arena.getLeader3(); + String leader1 = arena.getLeader(0); + String leader2 = arena.getLeader(1); + String leader3 = arena.getLeader(2); String pb = profile.getPBString(); String blocks = String.valueOf(profile.getBlocks() == 0 ? CC.GRAY + "-" : profile.getBlocks()); String time = profile.getTimeString(); diff --git a/src/main/java/com/njdge/fastbuilder/arena/Arena.java b/src/main/java/com/njdge/fastbuilder/arena/Arena.java index a8606ad..e9086cd 100644 --- a/src/main/java/com/njdge/fastbuilder/arena/Arena.java +++ b/src/main/java/com/njdge/fastbuilder/arena/Arena.java @@ -81,52 +81,70 @@ public Island getFreeIsland() { } } - public String getLeader1() { - Map.Entry minEntry = players.entrySet().stream() - .filter(entry -> entry.getValue() != null) - .min(Map.Entry.comparingByValue()) - .orElse(null); - - if (minEntry == null) { - return CC.GRAY + "-.---"; - } - - String leader = minEntry.getKey().getName(); - - String formattedTime = formatTime(minEntry.getValue()); - return CC.GREEN + leader + ": " + CC.YELLOW + formattedTime; - } - - public String getLeader2() { - List> sortedPlayers = players.entrySet().stream() - .filter(entry -> entry.getValue() != null) - .sorted(Map.Entry.comparingByValue()) - .collect(Collectors.toList()); - - if (sortedPlayers.size() < 2) { - return CC.GRAY + "-.---"; - } - - String leader = sortedPlayers.get(1).getKey().getName(); - - String formattedTime = formatTime(sortedPlayers.get(1).getValue()); - return CC.GREEN + leader + ": " + CC.YELLOW + formattedTime; - } - - public String getLeader3() { + public String getLeader(int rank) { List> sortedPlayers = players.entrySet().stream() .filter(entry -> entry.getValue() != null) .sorted(Map.Entry.comparingByValue()) .collect(Collectors.toList()); - if (sortedPlayers.size() < 3) { + if (sortedPlayers.size() < rank+1) { return CC.GRAY + "-.---"; } - String leader = sortedPlayers.get(2).getKey().getName(); + Map.Entry entry = sortedPlayers.get(rank); - String formattedTime = formatTime(sortedPlayers.get(2).getValue()); + String leader = entry.getKey().getName(); + String formattedTime = formatTime(entry.getValue()); return CC.GREEN + leader + ": " + CC.YELLOW + formattedTime; } +// +// public String getLeader1() { +// Map.Entry minEntry = players.entrySet().stream() +// .filter(entry -> entry.getValue() != null) +// .min(Map.Entry.comparingByValue()) +// .orElse(null); +// +// if (minEntry == null) { +// return CC.GRAY + "-.---"; +// } +// +// String leader = minEntry.getKey().getName(); +// +// String formattedTime = formatTime(minEntry.getValue()); +// return CC.GREEN + leader + ": " + CC.YELLOW + formattedTime; +// } +// +// public String getLeader2() { +// List> sortedPlayers = players.entrySet().stream() +// .filter(entry -> entry.getValue() != null) +// .sorted(Map.Entry.comparingByValue()) +// .collect(Collectors.toList()); +// +// if (sortedPlayers.size() < 2) { +// return CC.GRAY + "-.---"; +// } +// +// String leader = sortedPlayers.get(1).getKey().getName(); +// +// String formattedTime = formatTime(sortedPlayers.get(1).getValue()); +// return CC.GREEN + leader + ": " + CC.YELLOW + formattedTime; +// } +// +// public String getLeader3() { +// List> sortedPlayers = players.entrySet().stream() +// .filter(entry -> entry.getValue() != null) +// .sorted(Map.Entry.comparingByValue()) +// .collect(Collectors.toList()); +// +// if (sortedPlayers.size() < 3) { +// return CC.GRAY + "-.---"; +// } +// +// String leader = sortedPlayers.get(2).getKey().getName(); +// +// String formattedTime = formatTime(sortedPlayers.get(2).getValue()); +// +// return CC.GREEN + leader + ": " + CC.YELLOW + formattedTime; +// } } diff --git a/src/main/java/com/njdge/fastbuilder/profile/listener/ProfileListener.java b/src/main/java/com/njdge/fastbuilder/profile/listener/ProfileListener.java index 31cb9f6..8536b66 100644 --- a/src/main/java/com/njdge/fastbuilder/profile/listener/ProfileListener.java +++ b/src/main/java/com/njdge/fastbuilder/profile/listener/ProfileListener.java @@ -163,11 +163,10 @@ public void onPlace(BlockPlaceEvent e) { Arena arena = profile.getArena(); Island island = arena.getIsland(player); - profile.setBlocks(profile.getBlocks() + 1); - if (profile.getState().equals(ProfileState.PLAYING)) { if (!island.getPlaceableCuboid().isIn(e.getBlock().getLocation())) { e.setCancelled(true); + profile.setBlocks(profile.getBlocks() - 1); sendActionBar(player, CC.RED + "You can't place blocks here"); } else { if (!profile.isPlaced()) { @@ -180,6 +179,7 @@ public void onPlace(BlockPlaceEvent e) { } else if (profile.getState().equals(ProfileState.EDITING)) { e.setCancelled(false); } + profile.setBlocks(profile.getBlocks() + 1); } @EventHandler diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 17ca108..99cc975 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,5 @@ name: FastBuilder version: '${project.version}' main: com.njdge.fastbuilder.FastBuilder -api-version: '1.8' commands: edit: