Initial work to bank GUI

This commit is contained in:
Fabrizio La Rosa 2020-06-17 17:55:05 +02:00
parent 4eeef50853
commit 0578c479bc
2 changed files with 63 additions and 3 deletions

View File

@ -9,6 +9,8 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.io.File; import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -38,7 +40,8 @@ public class BankManager {
int size = transactions.size()>10 ? 10 : transactions.size(); int size = transactions.size()>10 ? 10 : transactions.size();
for (int i = 0;i<size;i++) { for (int i = 0;i<size;i++) {
Transaction t = transactions.get((transactions.size()-1)-i); Transaction t = transactions.get((transactions.size()-1)-i);
lore.add("#" + (i+1) + " " + t.timestamp.toString() +" " + t.player.getPlayer().getDisplayName() + " " + t.action.name().toLowerCase() + " " + EconomyManager.formatEconomy(t.ammount)); SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy HH:mm");
lore.add("#" + (i+1) + " " + formatDate.format(t.timestamp) +" " + t.player.getPlayer().getDisplayName() + " " + t.action.name().toLowerCase() + " " + EconomyManager.formatEconomy(t.ammount));
} }
return lore; return lore;
}else { }else {

View File

@ -2,6 +2,7 @@ package com.songoda.skyblock.menus;
import com.songoda.core.compatibility.CompatibleMaterial; import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.compatibility.CompatibleSound; import com.songoda.core.compatibility.CompatibleSound;
import com.songoda.core.gui.AnvilGui;
import com.songoda.core.hooks.EconomyManager; import com.songoda.core.hooks.EconomyManager;
import com.songoda.core.input.ChatPrompt; import com.songoda.core.input.ChatPrompt;
import com.songoda.skyblock.SkyBlock; import com.songoda.skyblock.SkyBlock;
@ -9,19 +10,25 @@ import com.songoda.skyblock.bank.BankManager;
import com.songoda.skyblock.bank.Transaction; import com.songoda.skyblock.bank.Transaction;
import com.songoda.skyblock.bank.Type; import com.songoda.skyblock.bank.Type;
import com.songoda.skyblock.config.FileManager; import com.songoda.skyblock.config.FileManager;
import com.songoda.skyblock.generator.GeneratorMaterial;
import com.songoda.skyblock.island.Island; import com.songoda.skyblock.island.Island;
import com.songoda.skyblock.island.IslandManager; import com.songoda.skyblock.island.IslandManager;
import com.songoda.skyblock.message.MessageManager; import com.songoda.skyblock.message.MessageManager;
import com.songoda.skyblock.sound.SoundManager; import com.songoda.skyblock.sound.SoundManager;
import com.songoda.skyblock.utils.AbstractAnvilGUI;
import com.songoda.skyblock.utils.NumberUtil; import com.songoda.skyblock.utils.NumberUtil;
import com.songoda.skyblock.utils.item.MenuClickRegistry; import com.songoda.skyblock.utils.item.MenuClickRegistry;
import com.songoda.skyblock.utils.item.nInventoryUtil; import com.songoda.skyblock.utils.item.nInventoryUtil;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.Calendar; import java.util.Calendar;
import java.util.Objects; import java.util.Objects;
@ -73,7 +80,57 @@ public class Bank {
} else if (action == InputMethodSelectlistener.InputMethod.ALL) { } else if (action == InputMethodSelectlistener.InputMethod.ALL) {
deposit(player, island, EconomyManager.getBalance(Bukkit.getOfflinePlayer(player.getUniqueId()))); deposit(player, island, EconomyManager.getBalance(Bukkit.getOfflinePlayer(player.getUniqueId())));
} else { } else {
ChatPrompt.showPrompt(skyblock, player, (event) -> { AbstractAnvilGUI gui = new AbstractAnvilGUI(player, event1 -> {
if (event1.getSlot() == AbstractAnvilGUI.AnvilSlot.OUTPUT) {
if (!(player.hasPermission("fabledskyblock.island.bank") // TODO check correct permissions - Fabrimat
|| player.hasPermission("fabledskyblock.*"))) {
messageManager.sendMessage(player, "No permission"); // TODO language.yml - Fabrimat
soundManager.playSound(player, CompatibleSound.BLOCK_ANVIL_LAND.getSound(),
1.0F, 1.0F);
} else if (!event1.getName().replace(" ", "")
.matches("^[a-zA-Z0-9|.]+$")) {
messageManager.sendMessage(player, "Invalid characters"); // TODO language.yml - Fabrimat
soundManager.playSound(player, CompatibleSound.BLOCK_ANVIL_LAND.getSound(),
1.0F, 1.0F);
} else if (!event1.getName().matches("-?\\d+(?:\\.\\d+)?")) {
messageManager.sendMessage(player, "Only numbers allowed"); // TODO language.yml - Fabrimat
soundManager.playSound(player, CompatibleSound.BLOCK_ANVIL_LAND.getSound(),
1.0F, 1.0F);
} else {
double amount;
try {
amount = Double.parseDouble(event1.getName());
} catch (NumberFormatException e1) {
messageManager.sendMessage(player, configLoad.getString("Command.Island.Bank.Short4.Message"));
soundManager.playSound(player, CompatibleSound.BLOCK_ANVIL_LAND.getSound(), 1.0F, 1.0F);
return;
}
deposit(player, island, amount);
player.closeInventory();
Bukkit.getServer().getScheduler()
.runTaskLater(skyblock, () -> open(player), 1L);
}
event1.setWillClose(true);
event1.setWillDestroy(true);
} else {
event1.setWillClose(false);
event1.setWillDestroy(false);
}
});
ItemStack is = CompatibleMaterial.NAME_TAG.getItem();
ItemMeta im = is.getItemMeta();
im.setDisplayName("Amount"); // TODO language.yml - Fabrimat
is.setItemMeta(im);
gui.setSlot(AbstractAnvilGUI.AnvilSlot.INPUT_LEFT, is);
gui.open();
// ---
/*ChatPrompt.showPrompt(skyblock, player, (event) -> {
if (event.getMessage().equals("")) if (event.getMessage().equals(""))
return; return;
@ -86,7 +143,7 @@ public class Bank {
return; return;
} }
deposit(player, island, amount); deposit(player, island, amount);
}); });*/
} }
}); });
} }