测试版
This commit is contained in:
commit
986cd85859
69
src/main/java/me/demon/bank/BankAPI.java
Normal file
69
src/main/java/me/demon/bank/BankAPI.java
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
package me.demon.bank;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public abstract class BankAPI {
|
||||||
|
|
||||||
|
public static void addVault(Player p,int money){
|
||||||
|
if(Main.dataMap.get(p) == null){
|
||||||
|
Main.dataMap.put(p,new BankData(p));
|
||||||
|
}
|
||||||
|
long currentTime = System.currentTimeMillis();
|
||||||
|
Main.lastCommandTime.put(p,currentTime);
|
||||||
|
BankData bankData = Main.dataMap.get(p);
|
||||||
|
bankData.addMoney(money);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getMoney(String playName){
|
||||||
|
FileConfiguration yml = Main.plugin.getConfig();
|
||||||
|
return yml.getInt("BankStats."+playName+".Money");
|
||||||
|
}
|
||||||
|
public static void addMoney(String playName,int amount){
|
||||||
|
int money = getMoney(playName);
|
||||||
|
setMoney(playName,(money+amount));
|
||||||
|
}
|
||||||
|
public static void takeMoney(String playName,int amount){
|
||||||
|
int money = getMoney(playName);
|
||||||
|
setMoney(playName,(money-amount));
|
||||||
|
}
|
||||||
|
public static void setMoney(String playName,int amount){
|
||||||
|
FileConfiguration yml = Main.plugin.getConfig();
|
||||||
|
yml.set("BankStats."+playName+".Money",amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getMoneyUUID(String uuid){
|
||||||
|
FileConfiguration yml = Main.plugin.getConfig();
|
||||||
|
return yml.getInt("BankStats."+uuid+".Money");
|
||||||
|
}
|
||||||
|
public static void addMoneyUUID(String uuid,int amount){
|
||||||
|
int money = getMoneyUUID(uuid);
|
||||||
|
setMoneyUUID(uuid,(money+amount));
|
||||||
|
}
|
||||||
|
public static void takeMoneyUUID(String uuid,int amount){
|
||||||
|
int money = getMoneyUUID(uuid);
|
||||||
|
setMoneyUUID(uuid,(money-amount));
|
||||||
|
}
|
||||||
|
public static void setMoneyUUID(String uuid,int amount){
|
||||||
|
FileConfiguration yml = Main.plugin.getConfig();
|
||||||
|
yml.set("BankStats."+uuid+".Money",amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getPoints(String playName){
|
||||||
|
FileConfiguration yml = Main.plugin.getConfig();
|
||||||
|
return yml.getInt("BankStats."+playName+".Points");
|
||||||
|
}
|
||||||
|
public static void addPoints(String playName,int amount){
|
||||||
|
int money = getPoints(playName);
|
||||||
|
setPoints(playName,(money+amount));
|
||||||
|
}
|
||||||
|
public static void takePoints(String playName,int amount){
|
||||||
|
int money = getPoints(playName);
|
||||||
|
setPoints(playName,(money-amount));
|
||||||
|
}
|
||||||
|
public static void setPoints(String playName,int amount){
|
||||||
|
FileConfiguration yml = Main.plugin.getConfig();
|
||||||
|
yml.set("BankStats."+playName+".Points",amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
37
src/main/java/me/demon/bank/BankData.java
Normal file
37
src/main/java/me/demon/bank/BankData.java
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
package me.demon.bank;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class BankData {
|
||||||
|
|
||||||
|
private final Player player;
|
||||||
|
private int money;
|
||||||
|
private int points;
|
||||||
|
|
||||||
|
public BankData(Player p){
|
||||||
|
this.player = p;
|
||||||
|
this.money = 0;
|
||||||
|
this.points = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveData(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMoney() {
|
||||||
|
return money;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPoints() {
|
||||||
|
return points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addMoney(int money) {
|
||||||
|
this.money += money;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPoints(int points) {
|
||||||
|
this.points = points;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
51
src/main/java/me/demon/bank/Main.java
Normal file
51
src/main/java/me/demon/bank/Main.java
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
package me.demon.bank;
|
||||||
|
|
||||||
|
import me.demon.bank.command.BankCommand;
|
||||||
|
import me.demon.bank.listener.JoinEvent;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Main extends JavaPlugin {
|
||||||
|
|
||||||
|
public static String pluginName = "魂式银行";
|
||||||
|
public static Main plugin;
|
||||||
|
public static Map<Player, Long> lastCommandTime = new HashMap<>();
|
||||||
|
public static HashMap<Player,BankData> dataMap = new HashMap<>();
|
||||||
|
public static String prefix = "§7[§6银行§7] §f";
|
||||||
|
|
||||||
|
public void onEnable() {
|
||||||
|
plugin = this;
|
||||||
|
saveDefaultConfig();
|
||||||
|
Bukkit.getServer().getPluginManager().registerEvents(new JoinEvent(), plugin);
|
||||||
|
Bukkit.getPluginCommand("bank").setExecutor(new BankCommand());
|
||||||
|
Bukkit.getConsoleSender().sendMessage("§6["+ Main.pluginName+"] §f插件加載成功!");
|
||||||
|
Bukkit.getConsoleSender().sendMessage("§6["+ Main.pluginName+"] §f作者QQ:1763917516");
|
||||||
|
new Placeholders(this).register();
|
||||||
|
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
long currentTime = System.currentTimeMillis();
|
||||||
|
for (Player player : Main.lastCommandTime.keySet()){
|
||||||
|
if((currentTime - Main.lastCommandTime.get(player)) >= (1000 * 10)){
|
||||||
|
int money = Main.dataMap.get(player).getMoney();
|
||||||
|
//HamsterAPI.giveMoney(player,money);
|
||||||
|
player.sendMessage("获得金币 +"+money);
|
||||||
|
Main.dataMap.remove(player);
|
||||||
|
player.sendMessage("发送缓存金币数据,并清理");
|
||||||
|
Main.lastCommandTime.remove(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 5 * 20L, 5 * 20L);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onDisable() {
|
||||||
|
Main.plugin.saveConfig();
|
||||||
|
Bukkit.getConsoleSender().sendMessage("§6["+ Main.pluginName+"] §f玩家數據已保存。");
|
||||||
|
Bukkit.getConsoleSender().sendMessage("§6["+ Main.pluginName+"] §f插件已安全卸載!");
|
||||||
|
}
|
||||||
|
}
|
51
src/main/java/me/demon/bank/Placeholders.java
Normal file
51
src/main/java/me/demon/bank/Placeholders.java
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
package me.demon.bank;
|
||||||
|
|
||||||
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class Placeholders extends PlaceholderExpansion {
|
||||||
|
|
||||||
|
private Plugin plugin;
|
||||||
|
public Placeholders(Plugin plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean persist() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canRegister() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAuthor() {
|
||||||
|
return plugin.getDescription().getAuthors().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIdentifier() {
|
||||||
|
return "bank";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getVersion() {
|
||||||
|
return plugin.getDescription().getVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String onPlaceholderRequest(Player p, String indentifier) {
|
||||||
|
if (p == null) { return ""; }
|
||||||
|
if (indentifier.equalsIgnoreCase("money")) {
|
||||||
|
return String.valueOf(BankAPI.getMoney(p.getName()));
|
||||||
|
}
|
||||||
|
if (indentifier.equalsIgnoreCase("points")) {
|
||||||
|
return String.valueOf(BankAPI.getPoints(p.getName()));
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
79
src/main/java/me/demon/bank/command/BankCommand.java
Normal file
79
src/main/java/me/demon/bank/command/BankCommand.java
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
package me.demon.bank.command;
|
||||||
|
|
||||||
|
import me.Demon.DemonPlugin.DemonAPI;
|
||||||
|
import me.demon.bank.BankAPI;
|
||||||
|
import me.demon.bank.Main;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandExecutor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class BankCommand implements CommandExecutor {
|
||||||
|
|
||||||
|
public boolean onCommand(CommandSender sender, Command cmd, String CommandLabel, String[] args) {
|
||||||
|
if (CommandLabel.equalsIgnoreCase("bank")) {
|
||||||
|
String prefix = Main.prefix;
|
||||||
|
if(args.length == 0){
|
||||||
|
if(sender instanceof Player) {
|
||||||
|
Player p = (Player) sender;
|
||||||
|
JieSuanBank(p);
|
||||||
|
}else{
|
||||||
|
sender.sendMessage("");
|
||||||
|
sender.sendMessage("§e------- ======= §6魂式银行 §e======= -------");
|
||||||
|
sender.sendMessage("§2/bank reset §e[玩家名] §f- §2清理玩家余额");
|
||||||
|
sender.sendMessage("§e------- ======= §6魂式银行 §e======= -------");
|
||||||
|
sender.sendMessage("§2作者QQ: §e1763917516");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// bank [name] amount
|
||||||
|
if(args.length == 2 && sender.isOp()){
|
||||||
|
Player player = (Player) sender;
|
||||||
|
int money = Integer.parseInt(args[0]);
|
||||||
|
BankAPI.addVault(player,money);
|
||||||
|
sender.sendMessage(Main.prefix+" "+player.getName()+" += "+money);
|
||||||
|
}
|
||||||
|
if(args.length == 2 && sender.isOp()){
|
||||||
|
if(args[0].equalsIgnoreCase("text")){
|
||||||
|
BankAPI.setMoney(sender.getName(), Integer.parseInt(args[1]));
|
||||||
|
BankAPI.setPoints(sender.getName(), Integer.parseInt(args[1]));
|
||||||
|
sender.sendMessage(prefix+"成功设置玩家银行数据.");
|
||||||
|
}
|
||||||
|
if(args[0].equalsIgnoreCase("reset")){
|
||||||
|
String playName = args[1];
|
||||||
|
BankAPI.setMoney(playName,0);
|
||||||
|
BankAPI.setPoints(playName,0);
|
||||||
|
sender.sendMessage(prefix+"成功重置玩家银行账户数据.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void JieSuanBank(Player p){
|
||||||
|
int money = BankAPI.getMoney(p.getName());
|
||||||
|
int points = BankAPI.getPoints(p.getName());
|
||||||
|
int moneyUUID = BankAPI.getMoneyUUID(String.valueOf(p.getUniqueId()));
|
||||||
|
if(money == 0 && points == 0 && moneyUUID == 0){
|
||||||
|
p.sendMessage(Main.prefix+"暂无任何银行收益,无法进行结算!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(money != 0){
|
||||||
|
DemonAPI.giveMoney(p,money);
|
||||||
|
BankAPI.setMoney(p.getName(),0);
|
||||||
|
p.sendMessage(Main.prefix + "已为你自动结算银行收益: §6" + money + "金币");
|
||||||
|
}
|
||||||
|
if(points != 0){
|
||||||
|
DemonAPI.givePoints(p,points);
|
||||||
|
BankAPI.setPoints(p.getName(),0);
|
||||||
|
p.sendMessage(Main.prefix + "已为你自动结算银行收益: §d" + points + "点券");
|
||||||
|
}
|
||||||
|
if(moneyUUID >= 1){
|
||||||
|
DemonAPI.giveMoney(p,moneyUUID);
|
||||||
|
BankAPI.setMoneyUUID(String.valueOf(p.getUniqueId()),0);
|
||||||
|
p.sendMessage(Main.prefix + "已为你自动结算商店收益: §6" + moneyUUID + "金币");
|
||||||
|
}
|
||||||
|
Main.plugin.saveConfig();
|
||||||
|
p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP,1,2);
|
||||||
|
}
|
||||||
|
}
|
45
src/main/java/me/demon/bank/listener/JoinEvent.java
Normal file
45
src/main/java/me/demon/bank/listener/JoinEvent.java
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
package me.demon.bank.listener;
|
||||||
|
|
||||||
|
import me.Demon.DemonPlugin.DemonAPI;
|
||||||
|
import me.demon.bank.BankAPI;
|
||||||
|
import me.demon.bank.Main;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
|
||||||
|
public class JoinEvent implements Listener {
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onjoin(PlayerJoinEvent e) {
|
||||||
|
Player p = e.getPlayer();
|
||||||
|
Bukkit.getScheduler().runTaskLater(Main.plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
int money = BankAPI.getMoney(p.getName());
|
||||||
|
int points = BankAPI.getPoints(p.getName());
|
||||||
|
int moneyUUID = BankAPI.getMoneyUUID(String.valueOf(p.getUniqueId()));
|
||||||
|
if (money == 0 && points == 0 && moneyUUID == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (money != 0) {
|
||||||
|
DemonAPI.giveMoney(p, money);
|
||||||
|
BankAPI.setMoney(p.getName(), 0);
|
||||||
|
p.sendMessage(Main.prefix + "已为你自动结算银行收益: §6" + money + "金币");
|
||||||
|
}
|
||||||
|
if (points != 0) {
|
||||||
|
DemonAPI.givePoints(p, points);
|
||||||
|
BankAPI.setPoints(p.getName(), 0);
|
||||||
|
p.sendMessage(Main.prefix + "已为你自动结算银行收益: §d" + points + "点券");
|
||||||
|
}
|
||||||
|
if (moneyUUID != 0) {
|
||||||
|
DemonAPI.giveMoney(p, moneyUUID);
|
||||||
|
BankAPI.setMoneyUUID(String.valueOf(p.getUniqueId()), 0);
|
||||||
|
p.sendMessage(Main.prefix + "已为你自动结算商店收益: §6" + moneyUUID + "金币");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 40L);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
5
src/main/resources/config.yml
Normal file
5
src/main/resources/config.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
BankStats:
|
||||||
|
虎牙妖魂吖99999999:
|
||||||
|
Money: 1000
|
||||||
|
Points: 1
|
||||||
|
Coins: 0
|
6
src/main/resources/plugin.yml
Normal file
6
src/main/resources/plugin.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
name: DemonBanK
|
||||||
|
main: me.demon.bank.Main
|
||||||
|
version: 1.0.1
|
||||||
|
depend: [DemonAPI]
|
||||||
|
commands:
|
||||||
|
bank:
|
Loading…
Reference in New Issue
Block a user