Skip to content

Commit

Permalink
Updated plugin to 4.7
Browse files Browse the repository at this point in the history
Challenge improvements
Translations for leaderboards added
  • Loading branch information
A5H73Y committed Jul 20, 2018
1 parent d645c5d commit 3a00110
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 46 deletions.
2 changes: 1 addition & 1 deletion plugin.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Parkour
version: 4.6
version: 4.7
description: The original and most powerful Parkour plugin available
softdepend: [Vault, BountifulAPI]
author: A5H73Y
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>me.A5H73Y</groupId>
<artifactId>Parkour</artifactId>
<version>4.6</version>
<version>4.7</version>
<packaging>jar</packaging>

<name>Parkour</name>
Expand Down
1 change: 0 additions & 1 deletion src/main/java/me/A5H73Y/Parkour/Course/CourseMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,6 @@ private static void displayPlaying(CommandSender sender) {

sender.sendMessage(Static.getParkourString() + PlayerMethods.getPlaying().size() + " players using Parkour: ");

// TODO pages - reuse courses page
String playingTemplate = Utils.getTranslation("Parkour.Playing", false);
for (Map.Entry<String, ParkourSession> entry : PlayerMethods.getPlaying().entrySet()) {
sender.sendMessage(playingTemplate
Expand Down
36 changes: 18 additions & 18 deletions src/main/java/me/A5H73Y/Parkour/Other/Challenge.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,38 @@ public class Challenge {

private static final List<Challenge> challenges = new ArrayList<>();

private final String player;
private final String targetPlayer;
private final String senderPlayer;
private final String receiverPlayer;
private final String courseName;

/**
* Challenge player
* Created to manage who started the challenge, who's the recipient and which on course.
* Created to manage who started the challenge, who's the receiver and which on course.
*
* @param player
* @param targetPlayer
* @param senderPlayer
* @param receiverPlayer
* @param courseName
*/
private Challenge(String player, String targetPlayer, String courseName){
this.player = player;
this.targetPlayer = targetPlayer;
private Challenge(String senderPlayer, String receiverPlayer, String courseName){
this.senderPlayer = senderPlayer;
this.receiverPlayer = receiverPlayer;
this.courseName = courseName;
}

public String getPlayer() {
return player;
public String getSenderPlayer() {
return senderPlayer;
}

public String getTargetPlayer() {
return targetPlayer;
public String getReceiverPlayer() {
return receiverPlayer;
}

public String getCourseName() {
return courseName;
}

public static Challenge challengePlayer(String player1, String player2, String courseName) {
Challenge challenge = new Challenge(player1, player2, courseName);
public static Challenge challengePlayer(String senderPlayer, String receiverPlayer, String courseName) {
Challenge challenge = new Challenge(senderPlayer, receiverPlayer, courseName);
challenges.add(challenge);
return challenge;
}
Expand All @@ -49,13 +49,13 @@ public static void removeChallenge(Challenge challenge){
}

/**
* Find the challenge the recipient player has recieved.
* @param targetPlayer
* Find the challenge the recipient senderPlayer has received.
* @param receiverPlayer
* @return
*/
public static Challenge getChallenge(String targetPlayer){
public static Challenge getChallenge(String receiverPlayer){
for (Challenge challenge : challenges){
if (challenge.getTargetPlayer().equals(targetPlayer))
if (challenge.getReceiverPlayer().equals(receiverPlayer))
return challenge;
}
return null;
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/me/A5H73Y/Parkour/Other/Configurations.java
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,8 @@ private void saveStrings() {
stringData.addDefault("Parkour.Countdown", "Starting in &b%AMOUNT% &fseconds...");
stringData.addDefault("Parkour.Go", "Go!");
stringData.addDefault("Parkour.BestTime", "This is your best time so far!");
stringData.addDefault("Parkour.LeaderboardHeading", "%COURSE% : Top %AMOUNT% results");
stringData.addDefault("Parkour.LeaderboardEntry", "%POSITION%) &b%PLAYER% &fin &3%TIME%&f, dying &7%DEATHS% &ftimes");

stringData.addDefault("Error.NotOnCourse", "You are not on this course!");
stringData.addDefault("Error.NotOnAnyCourse", "You are not on a course!");
Expand Down Expand Up @@ -445,6 +447,7 @@ public void setupConfig(){
config.addDefault("OnLeaveServer.TeleportToLastCheckpoint", false);

config.addDefault("ParkourModes.Challenge.HidePlayers", true);
config.addDefault("ParkourModes.Challenge.CountdownFrom", 5);
config.addDefault("ParkourModes.Speedy.SetSpeed", 0.8);
config.addDefault("ParkourModes.Speedy.ResetSpeed", 0.2);
config.addDefault("ParkourModes.Moon.Strength", 5);
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/me/A5H73Y/Parkour/Other/ValidationMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,10 @@ public static boolean challengePlayer(String[] args, Player player) {
player.sendMessage(Static.getParkourString() + "This player is not online!");
return false;
}
if (PlayerMethods.isPlaying(player.getName())) {
player.sendMessage(Static.getParkourString() + "You are already on a course!");
return false;
}
if (PlayerMethods.isPlaying(args[2])){
player.sendMessage(Static.getParkourString() + "This player is already playing!");
return false;
Expand Down
47 changes: 25 additions & 22 deletions src/main/java/me/A5H73Y/Parkour/Player/PlayerMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -889,57 +889,60 @@ private static void teardownPlayerMode(Player player) {
* Executed by the recipient of a challenge invite.
* Will prepare each player for the challenge.
*
* @param targetPlayer
* @param receiverPlayer
*/
public static void acceptChallenge(final Player targetPlayer){
Challenge challenge = Challenge.getChallenge(targetPlayer.getName());
public static void acceptChallenge(final Player receiverPlayer){
Challenge challenge = Challenge.getChallenge(receiverPlayer.getName());

if (challenge == null){
targetPlayer.sendMessage(Static.getParkourString() + "You have not been invited!");
receiverPlayer.sendMessage(Static.getParkourString() + "You have not been invited!");
return;
}
if (!PlayerMethods.isPlayerOnline(challenge.getPlayer())){
targetPlayer.sendMessage(Static.getParkourString() + "Player is not online!");
if (!PlayerMethods.isPlayerOnline(challenge.getSenderPlayer())){
receiverPlayer.sendMessage(Static.getParkourString() + "Player is not online!");
return;
}

Challenge.removeChallenge(challenge);
final Player player = Bukkit.getPlayer(challenge.getPlayer());
final Player senderPlayer = Bukkit.getPlayer(challenge.getSenderPlayer());

if (Parkour.getPlugin().getConfig().getBoolean("ParkourModes.Challenge.hidePlayers")){
player.hidePlayer(targetPlayer);
targetPlayer.hidePlayer(player);
senderPlayer.hidePlayer(receiverPlayer);
receiverPlayer.hidePlayer(senderPlayer);
}

CourseMethods.joinCourse(player, challenge.getCourseName());
CourseMethods.joinCourse(targetPlayer, challenge.getCourseName());
CourseMethods.joinCourse(senderPlayer, challenge.getCourseName());
CourseMethods.joinCourse(receiverPlayer, challenge.getCourseName());

final float playerSpeed = player.getWalkSpeed();
final float targetSpeed = targetPlayer.getWalkSpeed();
final float playerSpeed = senderPlayer.getWalkSpeed();
final float targetSpeed = receiverPlayer.getWalkSpeed();

player.setWalkSpeed(0f);
targetPlayer.setWalkSpeed(0f);
senderPlayer.setWalkSpeed(0f);
receiverPlayer.setWalkSpeed(0f);

new Runnable() {
public int taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Parkour.getPlugin(), this, 0L, 20L);

int count = 6;
int count = Parkour.getPlugin().getConfig().getInt("ParkourModes.Challenge.CountdownFrom") + 1;
@Override
public void run() {
if (count > 1) {
count--;

String translation = Utils.getTranslation("Parkour.Countdown", false).replace("%AMOUNT%", String.valueOf(count));
player.sendMessage(translation);
targetPlayer.sendMessage(translation);
senderPlayer.sendMessage(translation);
receiverPlayer.sendMessage(translation);
} else {
Bukkit.getScheduler().cancelTask(taskID);

String translation = Utils.getTranslation("Parkour.Go", false);
player.sendMessage(translation);
targetPlayer.sendMessage(translation);
player.setWalkSpeed(playerSpeed);
targetPlayer.setWalkSpeed(targetSpeed);
senderPlayer.sendMessage(translation);
receiverPlayer.sendMessage(translation);
senderPlayer.setWalkSpeed(playerSpeed);
receiverPlayer.setWalkSpeed(targetSpeed);

getParkourSession(senderPlayer.getName()).resetTimeStarted();
getParkourSession(receiverPlayer.getName()).resetTimeStarted();
}
}
};
Expand Down
16 changes: 13 additions & 3 deletions src/main/java/me/A5H73Y/Parkour/Utilities/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -623,10 +623,20 @@ public static void displayLeaderboard(Player player, List<TimeObject> times, Str
return;
}

player.sendMessage(Utils.getStandardHeading(courseName + " : Top " + times.size() + " results"));
String heading = Utils.getTranslation("Parkour.LeaderboardHeading", false)
.replace("%COURSE%", courseName)
.replace("%AMOUNT%", String.valueOf(times.size()));

player.sendMessage(Utils.getStandardHeading(heading));

for (int i = 0; i < times.size(); i++) {
player.sendMessage(Utils.colour((i + 1) + ") &b" + times.get(i).getPlayer() + "&f in &3" + Utils.displayCurrentTime(times.get(i).getTime()) + "&f, dying &7" + times.get(i).getDeaths() + " &ftimes"));
//TODO - translate
String translation = Utils.getTranslation("Parkour.LeaderboardEntry", false)
.replace("%POSITION%", String.valueOf(i + 1))
.replace("%PLAYER%", times.get(i).getPlayer())
.replace("%TIME%", Utils.displayCurrentTime(times.get(i).getTime()))
.replace("%DEATHS%", String.valueOf(times.get(i).getDeaths()));

player.sendMessage(translation);
}
}

Expand Down

0 comments on commit 3a00110

Please sign in to comment.