Skip to content

Commit 37c50dd

Browse files
Merge pull request electronicboy#4 from broccolai/master
Add Xprate per skill placeholder
2 parents 04b72a7 + 5aab1e6 commit 37c50dd

File tree

6 files changed

+88
-1
lines changed

6 files changed

+88
-1
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Development builds are here: https://atlas.valaria.pw/jenkins/view/Plugins/job/m
2121
| mcmmo_party_size | The size of the party |
2222
| mcmmo_is_xp_event_active | is the xp bonus event active |
2323
| mcmmo_xprate | The current bonus XP rate |
24+
| mcmmo_xprate_\<skillname> | The current bonus XP rate for the skill |
2425
| mcmmo_xp_\<skillname> | current xp for skill |
2526
| mcmmo_xp_needed_\<skillname> | total XP required for needed for next rank |
2627
| mcmmo_xp_remaining_\<skillname> | XP remaining for player to read the next level |

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
allprojects {
33

44
group = 'pw.valaria'
5-
version = '1.0.1-SNAPSHOT'
5+
version = '1.0.2-SNAPSHOT'
66
}
77

88
subprojects {

mcmmo-placeholders-bridge-2-1/src/main/java/pw/valaria/placeholders/mcmmo/bridge/v2_1/McmmoBridge21.java

+27
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
88
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
99
import com.gmail.nossr50.mcMMO;
10+
import com.gmail.nossr50.util.Permissions;
1011
import com.gmail.nossr50.util.player.UserManager;
1112

1213
import org.bukkit.entity.Player;
@@ -137,6 +138,32 @@ public String getXpRate(Player player) {
137138
return String.valueOf(ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
138139
}
139140

141+
@Override
142+
public String getSkillXpRate(ISkillType skillType, Player player) {
143+
final McMMOPlayer user = UserManager.getPlayer(player);
144+
if (user == null) return null;
145+
146+
PrimarySkillType skill = (PrimarySkillType) skillType.getNativeSkill();
147+
double modifier = 1.0F;
148+
149+
if (Permissions.customXpBoost(player, skill))
150+
modifier = ExperienceConfig.getInstance().getCustomXpPerkBoost();
151+
else if (Permissions.quadrupleXp(player, skill))
152+
modifier = 4;
153+
else if (Permissions.tripleXp(player, skill))
154+
modifier = 3;
155+
else if (Permissions.doubleAndOneHalfXp(player, skill))
156+
modifier = 2.5;
157+
else if (Permissions.doubleXp(player, skill))
158+
modifier = 2;
159+
else if (Permissions.oneAndOneHalfXp(player, skill))
160+
modifier = 1.5;
161+
else if (Permissions.oneAndOneTenthXp(player, skill))
162+
modifier = 1.1;
163+
164+
return String.valueOf(modifier);
165+
}
166+
140167
@Override
141168
public String isExpEventActive(Player player) {
142169
return mcMMO.p.isXPEventEnabled() ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse();

mcmmo-placeholders-bridge-classic/src/main/java/pw/valaria/placeholders/mcmmo/bridge/classic/McmmoBridgeClassic.java

+27
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.gmail.nossr50.datatypes.party.Party;
77
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
88
import com.gmail.nossr50.mcMMO;
9+
import com.gmail.nossr50.util.Permissions;
910
import com.gmail.nossr50.util.player.UserManager;
1011

1112
import org.bukkit.Bukkit;
@@ -145,6 +146,32 @@ public String getXpRate(Player player) {
145146
return String.valueOf(ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
146147
}
147148

149+
@Override
150+
public String getSkillXpRate(ISkillType skillType, Player player) {
151+
final McMMOPlayer user = UserManager.getPlayer(player);
152+
if (user == null) return null;
153+
154+
com.gmail.nossr50.datatypes.skills.SkillType skill = (com.gmail.nossr50.datatypes.skills.SkillType) skillType.getNativeSkill();
155+
double modifier = 1.0F;
156+
157+
if (Permissions.customXpBoost(player, skill))
158+
modifier = ExperienceConfig.getInstance().getCustomXpPerkBoost();
159+
else if (Permissions.quadrupleXp(player, skill))
160+
modifier = 4;
161+
else if (Permissions.tripleXp(player, skill))
162+
modifier = 3;
163+
else if (Permissions.doubleAndOneHalfXp(player, skill))
164+
modifier = 2.5;
165+
else if (Permissions.doubleXp(player, skill))
166+
modifier = 2;
167+
else if (Permissions.oneAndOneHalfXp(player, skill))
168+
modifier = 1.5;
169+
else if (Permissions.oneAndOneTenthXp(player, skill))
170+
modifier = 1.1;
171+
172+
return String.valueOf(modifier);
173+
}
174+
148175
@Override
149176
public String isExpEventActive(Player player) {
150177
return mcMMO.p.isXPEventEnabled() ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse();

mcmmo-placeholders-bridge/src/main/java/pw/valaria/placeholders/mcmmo/bridge/McmmoBridge.java

+6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import pw.valaria.placeholders.mcmmo.bridge.placeholders.SkillRankPlaceholder;
2020
import pw.valaria.placeholders.mcmmo.bridge.placeholders.XpEventActivePlaceholder;
2121
import pw.valaria.placeholders.mcmmo.bridge.placeholders.XpRatePlaceholder;
22+
import pw.valaria.placeholders.mcmmo.bridge.placeholders.SkillXpRatePlaceholder;
2223

2324
public abstract class McmmoBridge<S extends ISkillType> {
2425
McMMOPlaceholderExpansion expansion;
@@ -51,6 +52,9 @@ protected void postInit() {
5152

5253
//%mcmmo_rank_<skillname>%
5354
getExpansion().registerPlaceholder(new SkillRankPlaceholder(this, skill));
55+
56+
//%mcmmo_xprate_<skillname>%
57+
getExpansion().registerPlaceholder(new SkillXpRatePlaceholder(this, skill));
5458
});
5559

5660

@@ -111,5 +115,7 @@ public McMMOPlaceholderExpansion getExpansion() {
111115

112116
public abstract String getXpRate(Player player);
113117

118+
public abstract String getSkillXpRate(ISkillType skill, Player player);
119+
114120
public abstract String isExpEventActive(Player player);
115121
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package pw.valaria.placeholders.mcmmo.bridge.placeholders;
2+
3+
import org.bukkit.entity.Player;
4+
import pw.valaria.placeholders.mcmmo.bridge.McmmoBridge;
5+
import pw.valaria.placeholders.mcmmo.bridge.data.ISkillType;
6+
7+
public class SkillXpRatePlaceholder implements Placeholder {
8+
private McmmoBridge bridge;
9+
private ISkillType skillType;
10+
11+
public SkillXpRatePlaceholder(McmmoBridge bridge, ISkillType skillType) {
12+
this.bridge = bridge;
13+
this.skillType = skillType;
14+
}
15+
16+
@Override
17+
public String process(Player p, String params) {
18+
final String skillLevel = bridge.getSkillXpRate(skillType, p);
19+
return (skillLevel == null) ? "" : skillLevel;
20+
}
21+
22+
@Override
23+
public String getName() {
24+
return "xprate_" + skillType;
25+
}
26+
}

0 commit comments

Comments
 (0)