Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
<dependency>
<groupId>dev.padrewin</groupId>
<artifactId>colddev</artifactId>
<version>1.4.6</version>
<version>1.4.9</version>
<scope>compile</scope>
</dependency>
<dependency>
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/dev/padrewin/coldbits/ColdBits.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import dev.padrewin.coldbits.manager.LocaleManager;
import dev.padrewin.coldbits.setting.SettingKey;
import dev.padrewin.coldbits.util.BitsUtils;
import org.black_ixx.playerpoints.PlayerPointsAPI;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.ServicePriority;
Expand All @@ -30,7 +29,7 @@
public class ColdBits extends ColdPlugin {

private static ColdBits instance;
private PlayerPointsAPI api;
private ColdBitsAPI api;
private ColdBitsVaultLayer vaultLayer;

String ANSI_RESET = "\u001B[0m";
Expand All @@ -45,13 +44,14 @@ public class ColdBits extends ColdPlugin {
public ColdBits() {
super("Cold-Development", "ColdBits", 23639, DataManager.class, LocaleManager.class, null);
instance = this;
this.api = new ColdBitsAPI(this);
}

@Override
public void enable() {

instance = this;
this.api = new PlayerPointsAPI(this);
this.api = new ColdBitsAPI(this);

String name = getDescription().getName();
getLogger().info("");
Expand Down Expand Up @@ -191,7 +191,7 @@ public static ColdBits getInstance() {
*
* @return API instance.
*/
public PlayerPointsAPI getAPI() {
public ColdBitsAPI getAPI() {
return api;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package dev.padrewin.coldbits.commands;

import dev.padrewin.colddev.command.framework.BaseColdCommand;
import dev.padrewin.coldbits.ColdBits;
import dev.padrewin.coldbits.manager.LocaleManager;
import dev.padrewin.coldbits.ColdBitsAPI;

public abstract class BaseBitsCommand extends BaseColdCommand {

protected final ColdBitsAPI api;
protected final LocaleManager localeManager;

public BaseBitsCommand(ColdBits coldBits) {
super(coldBits);
this.api = coldBits.getAPI();
this.localeManager = coldBits.getManager(LocaleManager.class);
}

}
78 changes: 78 additions & 0 deletions src/main/java/dev/padrewin/coldbits/commands/BaseCommand.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package dev.padrewin.coldbits.commands;

import dev.padrewin.colddev.command.HelpCommand;
import dev.padrewin.colddev.command.PrimaryCommand;
import dev.padrewin.colddev.command.ReloadCommand;
import dev.padrewin.colddev.command.framework.Argument;
import dev.padrewin.colddev.command.framework.ArgumentsDefinition;
import dev.padrewin.colddev.command.framework.CommandContext;
import dev.padrewin.colddev.command.framework.CommandInfo;
import dev.padrewin.colddev.command.framework.ColdCommand;
import dev.padrewin.colddev.command.framework.annotation.ColdExecutable;
import java.util.Optional;
import dev.padrewin.coldbits.ColdBits;
import dev.padrewin.coldbits.setting.SettingKey;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class BaseCommand extends PrimaryCommand {

private final ColdBits coldBits;

public BaseCommand(ColdBits coldBits) {
super(coldBits);
this.coldBits = coldBits;
}

@ColdExecutable
@Override
public void execute(CommandContext context) {
String baseRedirect = SettingKey.BASE_COMMAND_REDIRECT.get();
if (baseRedirect.trim().isEmpty())
baseRedirect = "me";

CommandSender sender = context.getSender();
Optional<ColdCommand> subcommand = this.findCommand(sender, baseRedirect);
if (subcommand.isPresent()) {
subcommand.get().invoke(context);
} else {
this.findCommand(sender, "help").ifPresent(x -> x.invoke(context));
}
}

private Optional<ColdCommand> findCommand(CommandSender sender, String name) {
Argument.SubCommandArgument argument = (Argument.SubCommandArgument) this.getCommandArguments().get(0);
return argument.subCommands().stream()
.filter(x -> x.getName().equalsIgnoreCase(name) || x.getAliases().stream().anyMatch(y -> y.equalsIgnoreCase(name)))
.findFirst()
.filter(x -> !x.isPlayerOnly() || sender instanceof Player);
}

@Override
protected CommandInfo createCommandInfo() {
return CommandInfo.builder("bits")
.aliases("bits")
.permission("coldbits.basecommand")
.arguments(ArgumentsDefinition.builder()
.optionalSub(
new BroadcastCommand(this.coldBits),
new ExportCommand(this.coldBits),
new GiveAllCommand(this.coldBits),
new GiveCommand(this.coldBits),
new HelpCommand(this.coldBits, this),
new ImportCommand(this.coldBits),
new ImportLegacyCommand(this.coldBits),
new LeadCommand(this.coldBits),
new LookCommand(this.coldBits),
new MeCommand(this.coldBits),
new PayCommand(this.coldBits),
new ReloadCommand(this.coldBits),
new ResetCommand(this.coldBits),
new SetCommand(this.coldBits),
new TakeCommand(this.coldBits),
new VersionCommand(this.coldBits)
))
.build();
}

}
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
package dev.padrewin.coldbits.commands;

import dev.padrewin.colddev.command.argument.ArgumentHandlers;
import dev.padrewin.colddev.command.framework.ArgumentsDefinition;
import dev.padrewin.colddev.command.framework.CommandContext;
import dev.padrewin.colddev.command.framework.CommandInfo;
import dev.padrewin.colddev.command.framework.annotation.ColdExecutable;
import dev.padrewin.colddev.utils.StringPlaceholders;
import java.util.Collections;
import java.util.List;
import dev.padrewin.coldbits.ColdBits;
import dev.padrewin.coldbits.manager.CommandManager;
import dev.padrewin.coldbits.manager.LocaleManager;
import dev.padrewin.coldbits.commands.arguments.StringSuggestingArgumentHandler;
import dev.padrewin.coldbits.util.BitsUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class BroadcastCommand extends BitsCommand {
public class BroadcastCommand extends BaseBitsCommand {

public BroadcastCommand() {
super("broadcast", CommandManager.CommandAliases.BROADCAST);
public BroadcastCommand(ColdBits coldBits) {
super(coldBits);
}

@Override
public void execute(ColdBits plugin, CommandSender sender, String[] args) {
LocaleManager localeManager = plugin.getManager(LocaleManager.class);
if (args.length < 1) {
localeManager.sendMessage(sender, "command-broadcast-usage");
return;
}

BitsUtils.getPlayerByName(args[0], player -> {
@ColdExecutable
public void execute(CommandContext context, String target) {
BitsUtils.getPlayerByName(target, player -> {
if (player == null) {
localeManager.sendMessage(sender, "unknown-player", StringPlaceholders.of("player", args[0]));
this.localeManager.sendCommandMessage(context.getSender(), "unknown-player", StringPlaceholders.of("player", target));
return;
}

int bits = plugin.getAPI().look(player.getFirst());
int bits = this.api.look(player.getFirst());
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
localeManager.sendMessage(onlinePlayer, "command-broadcast-message", StringPlaceholders.builder("player", player.getSecond())
this.localeManager.sendCommandMessage(onlinePlayer, "command-broadcast-message", StringPlaceholders.builder("player", player.getSecond())
.add("amount", BitsUtils.formatBits(bits))
.add("currency", localeManager.getCurrencyName(bits)).build());
.add("currency", this.localeManager.getCurrencyName(bits)).build());
}
});
}

@Override
public List<String> tabComplete(ColdBits plugin, CommandSender sender, String[] args) {
return args.length != 1 ? Collections.emptyList() : BitsUtils.getPlayerTabComplete(args[0]);
protected CommandInfo createCommandInfo() {
return CommandInfo.builder("broadcast")
.descriptionKey("command-broadcast-description")
.permission("coldbits.broadcast")
.arguments(ArgumentsDefinition.builder()
.required("target", new StringSuggestingArgumentHandler(BitsUtils::getPlayerTabComplete))
.build())
.build();
}

}
44 changes: 27 additions & 17 deletions src/main/java/dev/padrewin/coldbits/commands/ExportCommand.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,43 @@
package dev.padrewin.coldbits.commands;

import dev.padrewin.colddev.command.argument.ArgumentHandlers;
import dev.padrewin.colddev.command.framework.ArgumentsDefinition;
import dev.padrewin.colddev.command.framework.CommandContext;
import dev.padrewin.colddev.command.framework.CommandInfo;
import dev.padrewin.colddev.command.framework.annotation.ColdExecutable;

import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.List;

import dev.padrewin.coldbits.ColdBits;
import dev.padrewin.coldbits.manager.CommandManager;
import dev.padrewin.coldbits.manager.DataManager;
import dev.padrewin.coldbits.manager.LocaleManager;
import dev.padrewin.coldbits.models.SortedPlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;

public class ExportCommand extends BitsCommand {
public class ExportCommand extends BaseBitsCommand {

public ExportCommand() {
super("export", CommandManager.CommandAliases.EXPORT);
public ExportCommand(ColdBits coldBits) {
super(coldBits);
}

@Override
public void execute(ColdBits plugin, CommandSender sender, String[] args) {
plugin.getScheduler().runTaskAsync(() -> {
LocaleManager localeManager = plugin.getManager(LocaleManager.class);
File file = new File(plugin.getDataFolder(), "storage.yml");
if (file.exists() && (args.length < 1 || !args[0].equalsIgnoreCase("confirm"))) {
localeManager.sendMessage(sender, "command-export-warning");
@ColdExecutable
public void execute(CommandContext context, String confirm) {
this.coldPlugin.getScheduler().runTaskAsync(() -> {
CommandSender sender = context.getSender();
File file = new File(this.coldPlugin.getDataFolder(), "storage.yml");
if (file.exists() && confirm == null) {
this.localeManager.sendCommandMessage(sender, "command-export-warning");
return;
}

if (file.exists())
file.delete();

List<SortedPlayer> data = plugin.getManager(DataManager.class).getTopSortedBits(null);
List<SortedPlayer> data = this.coldPlugin.getManager(DataManager.class).getTopSortedBits(null);
FileConfiguration configuration = YamlConfiguration.loadConfiguration(file);
ConfigurationSection bitsSection = configuration.createSection("Bits");
ConfigurationSection uuidSection = configuration.createSection("UUIDs");
Expand All @@ -50,13 +54,19 @@ public void execute(ColdBits plugin, CommandSender sender, String[] args) {
e.printStackTrace();
}

localeManager.sendMessage(sender, "command-export-success");
this.localeManager.sendCommandMessage(sender, "command-export-success");
});
}

@Override
public List<String> tabComplete(ColdBits plugin, CommandSender sender, String[] args) {
return Collections.emptyList();
protected CommandInfo createCommandInfo() {
return CommandInfo.builder("export")
.descriptionKey("command-export-description")
.permission("coldbits.export")
.arguments(ArgumentsDefinition.builder()
.optional("confirm", ArgumentHandlers.forValues(String.class, "confirm"))
.build())
.build();
}

}
Loading