add autorankup - closes #2
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group 'sh.okx'
|
group 'sh.okx'
|
||||||
version '3.2'
|
version '3.2.1-beta'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package sh.okx.rankup;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AutoRankup extends BukkitRunnable {
|
||||||
|
private final Rankup rankup;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||||
|
if (rankup.checkRankup(player, false)) {
|
||||||
|
rankup.rankup(player);
|
||||||
|
} else if (rankup.getPrestiges() != null && rankup.checkPrestige(player, false)) {
|
||||||
|
rankup.prestige(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -78,6 +78,7 @@ public class Rankup extends JavaPlugin {
|
|||||||
* Players who cannot rankup/prestige for a certain amount of time.
|
* Players who cannot rankup/prestige for a certain amount of time.
|
||||||
*/
|
*/
|
||||||
private Map<Player, Long> cooldowns;
|
private Map<Player, Long> cooldowns;
|
||||||
|
private AutoRankup autoRankup;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@@ -123,7 +124,16 @@ public class Rankup extends JavaPlugin {
|
|||||||
closeInventories();
|
closeInventories();
|
||||||
loadConfigs();
|
loadConfigs();
|
||||||
|
|
||||||
if (config.getInt("version") < 1) {
|
if(autoRankup != null) {
|
||||||
|
autoRankup.cancel();
|
||||||
|
}
|
||||||
|
long time = config.getInt("autorankup-interval") * 60 * 20;
|
||||||
|
if(time > 0) {
|
||||||
|
autoRankup = new AutoRankup(this);
|
||||||
|
autoRankup.runTaskTimer(this, time, time);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.getInt("version") < 2) {
|
||||||
getLogger().severe("You are using an outdated config!");
|
getLogger().severe("You are using an outdated config!");
|
||||||
getLogger().severe("This means that some things might not work!");
|
getLogger().severe("This means that some things might not work!");
|
||||||
getLogger().severe("To update, please rename ALL your config files (or the folder they are in),");
|
getLogger().severe("To update, please rename ALL your config files (or the folder they are in),");
|
||||||
@@ -294,6 +304,10 @@ public class Rankup extends JavaPlugin {
|
|||||||
applyCooldown(player);
|
applyCooldown(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean checkRankup(Player player) {
|
||||||
|
return checkRankup(player, true);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a player can rankup,
|
* Checks if a player can rankup,
|
||||||
* and if they can't, sends the player a message and returns false
|
* and if they can't, sends the player a message and returns false
|
||||||
@@ -301,32 +315,36 @@ public class Rankup extends JavaPlugin {
|
|||||||
* @param player the player to check if they can rankup
|
* @param player the player to check if they can rankup
|
||||||
* @return true if the player can rankup, false otherwise
|
* @return true if the player can rankup, false otherwise
|
||||||
*/
|
*/
|
||||||
public boolean checkRankup(Player player) {
|
public boolean checkRankup(Player player, boolean message) {
|
||||||
Rank rank = rankups.getByPlayer(player);
|
Rank rank = rankups.getByPlayer(player);
|
||||||
if (rank == null) { // check if in ladder
|
if (rank == null) { // check if in ladder
|
||||||
getMessage(Message.NOT_IN_LADDER)
|
getMessage(Message.NOT_IN_LADDER)
|
||||||
.replace(Variable.PLAYER, player.getName())
|
.replace(Variable.PLAYER, player.getName())
|
||||||
|
.failIf(!message)
|
||||||
.send(player);
|
.send(player);
|
||||||
return false;
|
return false;
|
||||||
} else if (rank.isLast()) { // check if they are at the highest rank
|
} else if (rank.isLast()) { // check if they are at the highest rank
|
||||||
if(prestiges != null) {
|
// if(prestiges != null) {
|
||||||
Prestige prestige = prestiges.getByPlayer(player);
|
// Prestige prestige = prestiges.getByPlayer(player);
|
||||||
if(prestige.isLast()) {
|
// if(prestige.isLast()) {
|
||||||
getMessage(rank, Message.NO_RANKUP)
|
// getMessage(rank, Message.NO_RANKUP)
|
||||||
.replaceRanks(player, prestige)
|
// .failIf(!message)
|
||||||
.send(player);
|
// .replaceRanks(player, prestige)
|
||||||
}
|
// .send(player);
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
getMessage(rank, prestiges == null ? Message.NO_RANKUP : prestiges.getByPlayer(player).isLast() ? Message.NO_RANKUP : Message.MUST_PRESTIGE)
|
getMessage(rank, prestiges == null ? Message.NO_RANKUP : prestiges.getByPlayer(player).isLast() ? Message.NO_RANKUP : Message.MUST_PRESTIGE)
|
||||||
|
.failIf(!message)
|
||||||
.replaceRanks(player, rank)
|
.replaceRanks(player, rank)
|
||||||
.send(player);
|
.send(player);
|
||||||
return false;
|
return false;
|
||||||
} else if (!rank.hasRequirements(player)) { // check if they can afford it
|
} else if (!rank.hasRequirements(player)) { // check if they can afford it
|
||||||
replaceMoneyRequirements(getMessage(rank, Message.REQUIREMENTS_NOT_MET)
|
replaceMoneyRequirements(getMessage(rank, Message.REQUIREMENTS_NOT_MET)
|
||||||
|
.failIf(!message)
|
||||||
.replaceRanks(player, rank, rankups.next(rank)), player, rank)
|
.replaceRanks(player, rank, rankups.next(rank)), player, rank)
|
||||||
.send(player);
|
.send(player);
|
||||||
return false;
|
return false;
|
||||||
} else if (checkCooldown(player, rank)) {
|
} else if (message && checkCooldown(player, rank)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,20 +384,27 @@ public class Rankup extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkPrestige(Player player) {
|
public boolean checkPrestige(Player player) {
|
||||||
|
return checkPrestige(player, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkPrestige(Player player, boolean message) {
|
||||||
Prestige prestige = prestiges.getByPlayer(player);
|
Prestige prestige = prestiges.getByPlayer(player);
|
||||||
if (!prestige.isEligable(player)) { // check if in ladder
|
if (!prestige.isEligable(player)) { // check if in ladder
|
||||||
getMessage(Message.NOT_HIGH_ENOUGH)
|
getMessage(Message.NOT_HIGH_ENOUGH)
|
||||||
|
.failIf(!message)
|
||||||
.replace(Variable.PLAYER, player.getName())
|
.replace(Variable.PLAYER, player.getName())
|
||||||
.send(player);
|
.send(player);
|
||||||
return false;
|
return false;
|
||||||
} else if (prestige.isLast()) { // check if they are at the highest rank
|
} else if (prestige.isLast()) { // check if they are at the highest rank
|
||||||
getMessage(prestige, Message.NO_RANKUP)
|
getMessage(prestige, Message.NO_RANKUP)
|
||||||
|
.failIf(!message)
|
||||||
.replaceRanks(player, prestige)
|
.replaceRanks(player, prestige)
|
||||||
.replaceFromTo(prestige)
|
.replaceFromTo(prestige)
|
||||||
.send(player);
|
.send(player);
|
||||||
return false;
|
return false;
|
||||||
} else if (!prestige.hasRequirements(player)) { // check if they can afford it
|
} else if (!prestige.hasRequirements(player)) { // check if they can afford it
|
||||||
replaceMoneyRequirements(getMessage(prestige, Message.REQUIREMENTS_NOT_MET)
|
replaceMoneyRequirements(getMessage(prestige, Message.REQUIREMENTS_NOT_MET)
|
||||||
|
.failIf(!message)
|
||||||
.replaceRanks(player, prestige, prestiges.next(prestige)), player, prestige)
|
.replaceRanks(player, prestige, prestiges.next(prestige)), player, prestige)
|
||||||
.replaceFromTo(prestige)
|
.replaceFromTo(prestige)
|
||||||
.send(player);
|
.send(player);
|
||||||
|
|||||||
@@ -7,12 +7,9 @@ class EmptyMessageBuilder extends MessageBuilder {
|
|||||||
super(null);
|
super(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* what are you doing failing if empty when it has already failed?
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public MessageBuilder failIfEmpty() {
|
public MessageBuilder failIfEmpty() {
|
||||||
throw new UnsupportedOperationException();
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
# this is used for letting you know that you need to update/change your config file
|
# this is used for letting you know that you need to update/change your config file
|
||||||
version: 1
|
version: 2
|
||||||
|
|
||||||
|
# interval (in minutes) to check to autorankup players
|
||||||
|
# ranking up manually wil always be enabled
|
||||||
|
# set to 0 to disable
|
||||||
|
autorankup-interval: 0
|
||||||
|
|
||||||
# whether /ranks and /prestiges should be enabled (true) or disabled (false)
|
# whether /ranks and /prestiges should be enabled (true) or disabled (false)
|
||||||
# /rankup3 reload will not do anything if this is changed,
|
# /rankup3 reload will not do anything if this is changed,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: Rankup
|
name: Rankup
|
||||||
version: 3.2
|
version: 3.2.1-beta
|
||||||
main: sh.okx.rankup.Rankup
|
main: sh.okx.rankup.Rankup
|
||||||
author: Okx
|
author: Okx
|
||||||
depend: [Vault]
|
depend: [Vault]
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ first:
|
|||||||
P1example:
|
P1example:
|
||||||
from: 'D'
|
from: 'D'
|
||||||
to: 'A'
|
to: 'A'
|
||||||
# the rank add to indicate this prestige
|
# the rank added to indicate this prestige
|
||||||
rank: 'P1'
|
rank: 'P1'
|
||||||
next: 'P2example'
|
next: 'P2example'
|
||||||
requirements:
|
requirements:
|
||||||
|
|||||||
Reference in New Issue
Block a user