mirror of
https://github.com/carm-outsource/TimeReward.git
synced 2026-06-05 09:11:10 +08:00
feat(time): 尝试支持按日/周/月/总时长判别奖励。
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
package cc.carm.plugin.timereward.command.sub;
|
||||
|
||||
import cc.carm.lib.easyplugin.command.SubCommand;
|
||||
import cc.carm.plugin.timereward.Main;
|
||||
import cc.carm.plugin.timereward.TimeRewardAPI;
|
||||
import cc.carm.plugin.timereward.command.MainCommand;
|
||||
import cc.carm.plugin.timereward.conf.PluginMessages;
|
||||
import cc.carm.plugin.timereward.manager.RewardManager;
|
||||
import cc.carm.plugin.timereward.data.RewardContents;
|
||||
import cc.carm.plugin.timereward.manager.RewardManager;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
@@ -40,11 +39,8 @@ public class ClaimCommand extends SubCommand<MainCommand> {
|
||||
return null;
|
||||
}
|
||||
|
||||
Main.getInstance().getScheduler().run(() -> unclaimedRewards.forEach(
|
||||
// 在同步进程中为玩家发放奖励
|
||||
unclaimedReward -> manager.claimReward(player, unclaimedReward, false)
|
||||
));
|
||||
|
||||
// 为玩家发放奖励
|
||||
manager.claimRewards(player, unclaimedRewards, false);
|
||||
} else {
|
||||
|
||||
RewardContents reward = manager.getReward(rewardID);
|
||||
@@ -57,8 +53,16 @@ public class ClaimCommand extends SubCommand<MainCommand> {
|
||||
PluginMessages.NOT_CLAIMABLE.send(sender, reward.getDisplayName());
|
||||
return null;
|
||||
}
|
||||
Main.getInstance().getScheduler().run(() -> manager.claimReward(player, reward, false));
|
||||
|
||||
// 为玩家发放奖励
|
||||
manager.claimReward(player, reward, false);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(@NotNull CommandSender sender) {
|
||||
return sender.hasPermission("TimeReward.claim");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,12 +25,12 @@ public class ListCommand extends SubCommand<MainCommand> {
|
||||
for (RewardContents reward : awards) {
|
||||
if (reward.getPermission() != null) {
|
||||
PluginMessages.LIST.OBJECT_PERM.send(sender,
|
||||
reward.getRewardID(), reward.getDisplayName(),
|
||||
reward.getRewardID(), reward.getDisplayName(), reward.getType().name(),
|
||||
reward.getTime(), reward.getPermission()
|
||||
);
|
||||
} else {
|
||||
PluginMessages.LIST.OBJECT.send(sender,
|
||||
reward.getRewardID(), reward.getDisplayName(), reward.getTime()
|
||||
reward.getRewardID(), reward.getDisplayName(), reward.getType().name(), reward.getTime()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ public class ReloadCommand extends SubCommand<MainCommand> {
|
||||
try {
|
||||
Main.getInstance().getConfigProvider().reload();
|
||||
Main.getInstance().getMessageProvider().reload();
|
||||
Main.getInstance().getRewardProvider().reload();
|
||||
|
||||
PluginMessages.RELOAD.COMPLETE.send(sender, System.currentTimeMillis() - s1, TimeRewardAPI.getRewardManager().listRewards().size());
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -5,13 +5,15 @@ import cc.carm.lib.easyplugin.command.SubCommand;
|
||||
import cc.carm.plugin.timereward.TimeRewardAPI;
|
||||
import cc.carm.plugin.timereward.command.MainCommand;
|
||||
import cc.carm.plugin.timereward.conf.PluginMessages;
|
||||
import cc.carm.plugin.timereward.data.UserData;
|
||||
import cc.carm.plugin.timereward.data.IntervalType;
|
||||
import cc.carm.plugin.timereward.user.UserRewardData;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
public class UserCommand extends SubCommand<MainCommand> {
|
||||
@@ -30,11 +32,21 @@ public class UserCommand extends SubCommand<MainCommand> {
|
||||
return null;
|
||||
}
|
||||
|
||||
UserData user = TimeRewardAPI.getUserManager().getData(player);
|
||||
UserRewardData user = TimeRewardAPI.getUserManager().get(player);
|
||||
PluginMessages.USER_INFO.send(sender,
|
||||
player.getName(), user.getAllSeconds(),
|
||||
user.getClaimedRewards().size(), String.join("&8, &f", user.getClaimedRewards())
|
||||
player.getName(),
|
||||
user.getOnlineDuration(IntervalType.DAILY).getSeconds(),
|
||||
user.getOnlineDuration(IntervalType.WEEKLY).getSeconds(),
|
||||
user.getOnlineDuration(IntervalType.MONTHLY).getSeconds(),
|
||||
user.getOnlineDuration(IntervalType.TOTAL).getSeconds(),
|
||||
user.getClaimedRewards().size()
|
||||
);
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
user.getClaimedRewards().forEach((id, time) -> {
|
||||
PluginMessages.USER_RECEIVED.send(sender, id, time.format(formatter));
|
||||
});
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user