Skip to content

Commit

Permalink
feat: Refactor AuthMe and PAPI hooks to use VoteReward instance and P…
Browse files Browse the repository at this point in the history
…layerDataManager
  • Loading branch information
GeorgeV220 committed Jul 4, 2023
1 parent 2d53b60 commit d34410e
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 14 deletions.
31 changes: 24 additions & 7 deletions src/main/java/com/georgev22/voterewards/hooks/AuthMe.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,45 @@
package com.georgev22.voterewards.hooks;

import com.georgev22.voterewards.VoteReward;
import com.georgev22.voterewards.utilities.OptionsUtil;
import com.georgev22.voterewards.utilities.player.UserVoteData;
import com.georgev22.voterewards.utilities.player.VoteUtils;
import com.google.common.collect.Lists;
import fr.xephi.authme.events.LoginEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

import java.io.IOException;
import java.util.logging.Level;

/**
* @author GeorgeV22
*/
public class AuthMe implements Listener {

private final VoteReward voteReward = VoteReward.getInstance();

@EventHandler
public void onAuthLogin(LoginEvent event) throws IOException {
public void onAuthLogin(LoginEvent event) {
if (OptionsUtil.OFFLINE.getBooleanValue()) {
UserVoteData userVoteData = UserVoteData.getUser(event.getPlayer().getUniqueId());
for (String serviceName : userVoteData.getOfflineServices()) {
new VoteUtils(userVoteData.user()).processVote(serviceName, false);
}
userVoteData.setOfflineServices(Lists.newArrayList());
voteReward.getPlayerDataManager().getEntity(event.getPlayer().getUniqueId()).handle((user, throwable) -> {
if (throwable != null) {
voteReward.getLogger().log(Level.SEVERE, "Error while trying process offline services (AuthMe)", throwable);
return null;
}
return user;
}).thenAccept(user -> {
if (user != null) {
for (String serviceName : user.services()) {
try {
new VoteUtils(user).processVote(serviceName, false);
} catch (IOException e) {
voteReward.getLogger().log(Level.SEVERE, "Error while trying process offline services (AuthMe)", e);
}
}
user.services(Lists.newArrayList());
voteReward.getPlayerDataManager().save(user);
}
});
}
}

Expand Down
35 changes: 28 additions & 7 deletions src/main/java/com/georgev22/voterewards/hooks/PAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.georgev22.voterewards.utilities.MessagesUtil;
import com.georgev22.voterewards.utilities.OptionsUtil;
import com.georgev22.voterewards.utilities.configmanager.FileManager;
import com.georgev22.voterewards.utilities.player.UserVoteData;
import com.georgev22.voterewards.utilities.player.VotePartyUtils;
import com.georgev22.voterewards.utilities.player.VoteUtils;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
Expand All @@ -16,9 +15,12 @@
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;

import java.util.Map;
import java.util.UUID;

public class PAPI extends PlaceholderExpansion {

VoteReward plugin = VoteReward.getInstance();
private final VoteReward voteReward = VoteReward.getInstance();

@Override
public @NotNull String getIdentifier() {
Expand All @@ -32,12 +34,12 @@ public String getRequiredPlugin() {

@Override
public @NotNull String getAuthor() {
return "GeorgeV22, Shin1gamiX";
return "GeorgeV22, Shin1gamiX, Antares (GalaxyEaterGR)";
}

@Override
public @NotNull String getVersion() {
return plugin.getVersion();
return voteReward.getVersion();
}

@Override
Expand All @@ -57,14 +59,33 @@ public String onRequest(OfflinePlayer offlinePlayer, @NotNull String identifier)
}

if (StringUtils.startsWithIgnoreCase(identifier, "top_playerVotes_")) {
return String.valueOf(UserVoteData.getUser(Bukkit.getOfflinePlayer(VoteUtils.getTopPlayer(Integer.parseInt(identifier.split("_")[2]) - 1))).user().getVotes());
UUID targetUUID = Bukkit.getOfflinePlayer(VoteUtils.getTopPlayer(Integer.parseInt(identifier.split("_")[2]) - 1)).getUniqueId();
return String.valueOf(
voteReward.getPlayerDataManager().getLoadedEntities().entrySet().stream()
.filter(uuidUserEntry -> uuidUserEntry.getKey().equals(targetUUID))
.map(Map.Entry::getValue)
.findFirst().orElse(voteReward.getPlayerDataManager().getEntity(targetUUID).join())
.votes()
);
}

if (identifier.equalsIgnoreCase("player_votes")) {
return String.valueOf(UserVoteData.getUser(offlinePlayer.getUniqueId()).getVotes());
return String.valueOf(
voteReward.getPlayerDataManager().getLoadedEntities().entrySet().stream()
.filter(uuidUserEntry -> uuidUserEntry.getKey().equals(offlinePlayer.getUniqueId()))
.map(Map.Entry::getValue)
.findFirst().orElse(voteReward.getPlayerDataManager().getEntity(offlinePlayer.getUniqueId()).join())
.votes()
);
}
if (identifier.equalsIgnoreCase("player_all_time_votes")) {
return String.valueOf(UserVoteData.getUser(offlinePlayer.getUniqueId()).getAllTimeVotes());
return String.valueOf(
voteReward.getPlayerDataManager().getLoadedEntities().entrySet().stream()
.filter(uuidUserEntry -> uuidUserEntry.getKey().equals(offlinePlayer.getUniqueId()))
.map(Map.Entry::getValue)
.findFirst().orElse(voteReward.getPlayerDataManager().getEntity(offlinePlayer.getUniqueId()).join())
.totalVotes()
);
}
final FileManager fm = FileManager.getInstance();
if (identifier.equalsIgnoreCase("voteparty_total_votes")) {
Expand Down

0 comments on commit d34410e

Please sign in to comment.