Skip to content

Commit b85cacf

Browse files
feat: Use MatrixCombatLevel plugin for several plugin dependencies
feat: Add several new stats fix: Change type of sflevel
1 parent b275519 commit b85cacf

8 files changed

Lines changed: 136 additions & 102 deletions

File tree

build.gradle

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ spigot {
3434
authors = [project.property("author")]
3535
apiVersion = project.property("apiVersion")
3636
load = POSTWORLD
37-
depends = ['Essentials', 'SkinsRestorer', 'Magic', 'EliteMobs', 'Slimefun', 'ProjectKorra','mcMMO', 'AuthMe']
37+
depends = ['Essentials', 'MatrixCombatLevel', 'SkinsRestorer', 'Magic', 'EliteMobs', 'Slimefun', 'ProjectKorra','mcMMO', 'AuthMe']
3838
excludeLibraries = ['*']
3939
}
4040

@@ -88,14 +88,10 @@ dependencies {
8888
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5',
8989
// Uncomment the next line if you want to use RSASSA-PSS (PS256, PS384, PS512) algorithms:
9090
//'org.bouncycastle:bcprov-jdk15on:1.70',
91-
'io.jsonwebtoken:jjwt-jackson:0.11.5' // or 'io.jsonwebtoken:jjwt-gson:0.11.5' for gso
91+
'io.jsonwebtoken:jjwt-jackson:0.11.5' // or 'io.jsonwebtoken:jjwt-gson:0.11.5' for gsos
9292
compileOnly("fr.xephi:authme:5.6.0-SNAPSHOT")
93-
compileOnly("com.gmail.nossr50.mcMMO:mcMMO:2.1.219-SNAPSHOT")
94-
compileOnly("com.github.Slimefun:Slimefun4:RC-32")
9593
compileOnly("com.github.ProjectKorra:ProjectKorra:1.11.1")
96-
97-
compileOnly(files("libs/EliteMobs.jar"))
98-
compileOnly(files("libs/Magic.jar"))
94+
compileOnly(files("libs/MatrixCombatLevel.jar"))
9995
compileOnly(files("libs/SkinsRestorer.jar"))
10096
compileOnly(files("libs/EssentialsX.jar"))
10197

libs/EliteMobs.jar

-8.4 MB
Binary file not shown.

libs/Magic.jar

-5.58 MB
Binary file not shown.

libs/MatrixCombatLevel.jar

35.3 KB
Binary file not shown.

src/main/java/org/matrixnetwork/stats2/MatrixStats.java

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package org.matrixnetwork.stats2;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import com.magmaguy.elitemobs.playerdata.ElitePlayerInventory;
54
import com.sun.net.httpserver.HttpServer;
6-
import io.github.thebusybiscuit.slimefun4.implementation.Slimefun;
75
import net.milkbowl.vault.economy.Economy;
86
import net.skinsrestorer.api.SkinsRestorerAPI;
97
import org.bukkit.Bukkit;
@@ -26,9 +24,6 @@
2624
import java.net.URI;
2725
import java.util.List;
2826

29-
import static com.magmaguy.elitemobs.adventurersguild.GuildRank.getActiveGuildRank;
30-
import static com.magmaguy.elitemobs.adventurersguild.GuildRank.getGuildPrestigeRank;
31-
3227
public class MatrixStats extends JavaPlugin{
3328

3429
private static MatrixStats plugin;
@@ -99,54 +94,4 @@ public static org.bukkit.plugin.Plugin getPlugin() {
9994
return plugin;
10095
}
10196

102-
// private int getLevel(PlayerProfile mcMMOProfile, PrimarySkillType skillType) {
103-
// int skillLevel = mcMMOProfile.getSkillLevel(skillType);
104-
// return Math.min(skillLevel, MAX_LEVEL);
105-
// }
106-
107-
public static int getGuildRank(String playerName) {
108-
Player player = Bukkit.getPlayer(playerName);
109-
if (player == null) {
110-
return 0;
111-
} else {
112-
// Get the player's guild level from elite mobs
113-
return getActiveGuildRank(player, true);
114-
}
115-
}
116-
117-
public static int getElitePrestige(String playerName) {
118-
Player player = Bukkit.getPlayer(playerName);
119-
if (player == null) {
120-
return 0;
121-
} else {
122-
// Get the player's elite prestige from elite mobs
123-
return getGuildPrestigeRank(player, true);
124-
}
125-
}
126-
127-
public static int getThreatTier(String playerName) {
128-
Player player = Bukkit.getPlayer(playerName);
129-
if (player == null) {
130-
return 0;
131-
} else {
132-
return ElitePlayerInventory.playerInventories.get(player.getUniqueId()).getFullPlayerTier(true);
133-
}
134-
}
135-
136-
public static int getSlimefunLevel(String playerName) {
137-
Player player = Bukkit.getPlayer(playerName);
138-
if (player == null) {
139-
return 0;
140-
} else {
141-
try {
142-
io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile slimefunProfile = Slimefun.getRegistry().getPlayerProfiles().get(player.getUniqueId());
143-
List<String> titles = Slimefun.getRegistry().getResearchRanks();
144-
float fraction = (float) slimefunProfile.getResearches().size() / Slimefun.getRegistry().getResearches().size();
145-
return (int) (fraction * (titles.size() - 1));
146-
} catch(NullPointerException e){
147-
return 0;
148-
}
149-
150-
}
151-
}
15297
}

src/main/java/org/matrixnetwork/stats2/entity/PlayerStats.java

Lines changed: 89 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.matrixnetwork.stats2.entity;
22

33

4-
import com.fasterxml.jackson.annotation.JsonFormat;
54
import org.json.simple.JSONObject;
65

76
import javax.persistence.*;
@@ -25,10 +24,16 @@ public class PlayerStats {
2524
private String lastDamageCause;
2625
private int remainingAir;
2726
private LocalDateTime timeStamp;
28-
private int guildRank;
27+
private String guildRankName;
2928
private int threatTier;
30-
private int sfLevel;
31-
private int prestige;
29+
private String sfTitle;
30+
private int mcmmoPower;
31+
private String mageRank;
32+
private String skillClass;
33+
private int skillLevel;
34+
private String element;
35+
private int matrik;
36+
3237

3338
@ManyToOne(fetch = FetchType.EAGER, targetEntity = MatrixPlayer.class)
3439
private MatrixPlayer matrixPlayer;
@@ -44,10 +49,15 @@ public PlayerStats(float exp,
4449
String lastDamageCause,
4550
int remainingAir,
4651
LocalDateTime timeStamp,
47-
int guildRank,
52+
String guildRankName,
4853
int threatTier,
49-
int sfLevel,
50-
int prestige,
54+
String sfTitle,
55+
int mcmmoPower,
56+
String mageRank,
57+
String skillClass,
58+
int skillLevel,
59+
String element,
60+
int matrik,
5161
MatrixPlayer matrixPlayer) {
5262
this.exp = exp;
5363
this.foodLevel = foodLevel;
@@ -60,10 +70,15 @@ public PlayerStats(float exp,
6070
this.lastDamageCause = lastDamageCause;
6171
this.remainingAir = remainingAir;
6272
this.timeStamp = timeStamp;
63-
this.setGuildRank(guildRank);
73+
this.setGuildRankName(guildRankName);
6474
this.setThreatTier(threatTier);
65-
this.setSfLevel(sfLevel);
66-
this.setPrestige(prestige);
75+
this.setSfTitle(sfTitle);
76+
this.setMcmmoPower(mcmmoPower);
77+
this.setMageRank(mageRank);
78+
this.setSkillClass(skillClass);
79+
this.setSkillLevel(skillLevel);
80+
this.setElement(getElement());
81+
this.setMatrik(matrik);
6782
this.matrixPlayer = matrixPlayer;
6883
}
6984

@@ -138,21 +153,19 @@ public JSONObject toJSON() {
138153
jo.put("last_damage_cause", getLastDamageCause());
139154
jo.put("remaining_air", getRemainingAir());
140155
jo.put("timestamp", getTimeStamp().toString());
141-
jo.put("guildRank", getGuildRank());
156+
jo.put("guildRankName", getGuildRankName());
142157
jo.put("threatTier", getThreatTier());
143-
jo.put("sfLevel", getSfLevel());
144-
jo.put("prestige", getPrestige());
158+
jo.put("sfTitle", getSfTitle());
159+
jo.put("mcMMO_Power", getMcmmoPower());
160+
jo.put("mageRank", getMageRank());
161+
jo.put("skillClass", getSkillClass());
162+
jo.put("skillLevel", getSkillLevel());
163+
jo.put("element", getElement());
164+
jo.put("matrik", getMatrik());
145165

146166
return jo;
147167
}
148168

149-
public int getGuildRank() {
150-
return guildRank;
151-
}
152-
153-
public void setGuildRank(int guildRank) {
154-
this.guildRank = guildRank;
155-
}
156169

157170
public int getThreatTier() {
158171
return threatTier;
@@ -162,19 +175,67 @@ public void setThreatTier(int threatTier) {
162175
this.threatTier = threatTier;
163176
}
164177

165-
public int getSfLevel() {
166-
return sfLevel;
178+
public String getSfTitle() {
179+
return sfTitle;
180+
}
181+
182+
public void setSfTitle(String sfLevel) {
183+
this.sfTitle = sfTitle;
184+
}
185+
186+
public int getMcmmoPower() {
187+
return mcmmoPower;
188+
}
189+
190+
public void setMcmmoPower(int mcmmoPower) {
191+
this.mcmmoPower = mcmmoPower;
192+
}
193+
194+
public String getMageRank() {
195+
return mageRank;
196+
}
197+
198+
public void setMageRank(String mageRank) {
199+
this.mageRank = mageRank;
200+
}
201+
202+
public int getSkillLevel() {
203+
return skillLevel;
204+
}
205+
206+
public void setSkillLevel(int skillLevel) {
207+
this.skillLevel = skillLevel;
208+
}
209+
210+
public String getSkillClass() {
211+
return skillClass;
212+
}
213+
214+
public void setSkillClass(String skillClass) {
215+
this.skillClass = skillClass;
216+
}
217+
218+
public int getMatrik() {
219+
return matrik;
220+
}
221+
222+
public void setMatrik(int matrik) {
223+
this.matrik = matrik;
224+
}
225+
226+
public String getGuildRankName() {
227+
return guildRankName;
167228
}
168229

169-
public void setSfLevel(int sfLevel) {
170-
this.sfLevel = sfLevel;
230+
public void setGuildRankName(String guildRankName) {
231+
this.guildRankName = guildRankName;
171232
}
172233

173-
public int getPrestige() {
174-
return prestige;
234+
public String getElement() {
235+
return element;
175236
}
176237

177-
public void setPrestige(int prestige) {
178-
this.prestige = prestige;
238+
public void setElement(String element) {
239+
this.element = element;
179240
}
180241
}

src/main/java/org/matrixnetwork/stats2/handler/StatsHandler.java

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.matrixnetwork.stats2.handler;
22

3+
import com.gmail.mrphpfan.mccombatlevel.McCombatLevel;
4+
import com.projectkorra.projectkorra.BendingPlayer;
5+
import com.projectkorra.projectkorra.Element;
36
import org.bukkit.entity.Player;
47
import org.bukkit.scheduler.BukkitRunnable;
58
import org.bukkit.scheduler.BukkitTask;
@@ -12,6 +15,10 @@
1215

1316
import java.time.LocalDateTime;
1417

18+
import static com.gmail.mrphpfan.mccombatlevel.calculator.JavaScriptCalculator.*;
19+
import static com.projectkorra.projectkorra.BendingPlayer.getBendingPlayer;
20+
import static com.projectkorra.projectkorra.Element.getElement;
21+
1522
public class StatsHandler {
1623
private BukkitTask runnable;
1724

@@ -46,10 +53,20 @@ public void run() {
4653
}
4754

4855
double balance = MatrixStats.getEcon().getBalance(p);
49-
int prestige = MatrixStats.getElitePrestige(p.getName());
50-
int guildRank = MatrixStats.getGuildRank(p.getName());
51-
int sfLevel = MatrixStats.getSlimefunLevel(p.getName());
52-
int threatTier = MatrixStats.getThreatTier(p.getName());
56+
String guildRank = getGuildRankName(p.getName());
57+
String sfTitle = getSlimefunTitle(p.getName());
58+
int threatTier = getThreatTier(p.getName());
59+
String mageRank = "Beginner"; //placeholder for now
60+
String skillClass = getSkillClass(p.getName());
61+
int skillLevel = getSkillLevel(p.getName());
62+
int mcmmoPower = (int) getMcMMOLvl(p);
63+
String element = "";
64+
BendingPlayer bPlayer = getBendingPlayer(p);
65+
for (Element e : bPlayer.getElements()) {
66+
element = e.getColor() + e.getName() + ", ";
67+
}
68+
element = bPlayer.getElements().size() == 0 ? "None" : element;
69+
int matrik = McCombatLevel.inst().getPlayerLevels().get(p.getName());
5370
PlayerStats data = new PlayerStats(p.getExp(),
5471
p.getFoodLevel(),
5572
p.getLocation().getX(),
@@ -63,8 +80,13 @@ public void run() {
6380
LocalDateTime.now(),
6481
guildRank,
6582
threatTier,
66-
sfLevel,
67-
prestige,
83+
sfTitle,
84+
mcmmoPower,
85+
mageRank,
86+
skillClass,
87+
skillLevel,
88+
element,
89+
matrik,
6890
player);
6991
session.merge(data);
7092
}

src/main/java/org/matrixnetwork/stats2/pojo/PlayerStatsDTO.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@ public record PlayerStatsDTO(
1616
String lastDamageCause,
1717
int remainingAir,
1818
String timeStamp,
19-
int guildRank,
19+
String guildRankName,
2020
int threatTier,
21-
int sfLevel,
22-
int prestige
21+
String sfTitle,
22+
int mcmmoPower,
23+
String mageRank,
24+
String skillClass,
25+
int skillLevel,
26+
String element,
27+
int matrik
2328
) {
2429
public static PlayerStatsDTO from(PlayerStats stats) {
2530
return new PlayerStatsDTO(
@@ -34,10 +39,15 @@ public static PlayerStatsDTO from(PlayerStats stats) {
3439
stats.getLastDamageCause(),
3540
stats.getRemainingAir(),
3641
stats.getTimeStamp().format(DateTimeFormatter.ofPattern("yyyy-MM-dd@HH:mm")),
37-
stats.getGuildRank(),
42+
stats.getGuildRankName(),
3843
stats.getThreatTier(),
39-
stats.getSfLevel(),
40-
stats.getPrestige()
44+
stats.getSfTitle(),
45+
stats.getMcmmoPower(),
46+
stats.getMageRank(),
47+
stats.getSkillClass(),
48+
stats.getSkillLevel(),
49+
stats.getElement(),
50+
stats.getMatrik()
4151
);
4252
}
4353
}

0 commit comments

Comments
 (0)