qwq
Пользователь
- Сообщения
- 14
Java:
package ru.Data;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.Damageable;
public class EventHand implements Listener {
Main plugin;
ArrayList<String> dgo = new ArrayList<String>();
public EventHand(Main m) {
this.plugin = m;
}
@EventHandler
public void ebye(EntityDamageByEntityEvent event) {
if (event.getEntityType().equals(EntityType.VILLAGER) && ChatColor.stripColor(event.getEntity().getCustomName()).equalsIgnoreCase("Работник")) {
event.setCancelled(true);
}
}
@EventHandler
public void intentity(PlayerInteractEntityEvent event) {
if (event.getRightClicked() instanceof Villager && ChatColor.stripColor(event.getRightClicked().getCustomName()).equalsIgnoreCase("Работник")) {
event.setCancelled(true);
event.getPlayer().sendMessage(ChatColor.WHITE + "Работник: Здравствуйте, " + event.getPlayer().getName() + ". Чем я могу вам помочь?");
this.openRabotnikGui(event.getPlayer());
}
}
@EventHandler
public void inte(PlayerInteractEvent event) {
if (event.getClickedBlock() != null && event.getClickedBlock().getType().equals(Material.STONE_BUTTON)) {
String l = event.getClickedBlock().getLocation().getBlockX() + " " + event.getClickedBlock().getLocation().getBlockY() + " " + event.getClickedBlock().getLocation().getBlockZ();
if (this.plugin.getConfig().getStringList("bankomats").contains(l)) {
if (!BankApi.hasSchet(event.getPlayer().getName())) {
event.getPlayer().sendMessage(SM.prefix + "У вас нет банковского счёта! Зарегистрируйте его в MineBank.");
return;
}
this.openBankGui(event.getPlayer());
return;
}
}
}
@EventHandler
public void click1(InventoryClickEvent event) {
if (ChatColor.stripColor(event.getView().getTitle()).equalsIgnoreCase("MineBank Банкомат")) {
event.setCancelled(true);
Player p = (Player)event.getWhoClicked();
if (event.getCurrentItem() == null || event.getCurrentItem().getType() == Material.AIR || !event.getCurrentItem().hasItemMeta()) {
return;
}
if (event.getCurrentItem().getType().equals(Material.WHITE_STAINED_GLASS_PANE)) {
if (((Damageable) event.getCurrentItem()).getDamage() == 5) {
this.openDepositGui(p);
return;
}
if (((Damageable) event.getCurrentItem()).getDamage() == 3) {
this.openWithdrawGui(p);
return;
}
}
}
}
@EventHandler
public void click2(InventoryClickEvent event) {
if (ChatColor.stripColor(event.getView().getTitle()).equalsIgnoreCase("MineBank Вклад")) {
event.setCancelled(true);
Player p = (Player)event.getWhoClicked();
if (event.getCurrentItem() == null || event.getCurrentItem().getType() == Material.AIR || !event.getCurrentItem().hasItemMeta()) {
return;
}
if (event.getCurrentItem().getType().equals(Material.WHITE_STAINED_GLASS_PANE) && ((Damageable) event.getCurrentItem()).getDamage() == 5) {
String g = ChatColor.stripColor(event.getCurrentItem().getItemMeta().getDisplayName()).split(" ")[1].replace("$", "");
int d = Integer.valueOf(g);
if (VaultManager.getmoney(p) < (double)d) {
p.closeInventory();
p.sendMessage(SM.prefix + "Недостаточно денег на балансе!");
return;
}
if (BankApi.getSchet(p.getName()) >= this.plugin.getMax()) {
p.sendMessage(SM.prefix + "Ваш банковский счёт достиг максимального размера! Максимум " + this.plugin.getMax() + "$!");
return;
}
VaultManager.withdraw(p, d);
BankApi.deposit(p.getName(), d);
p.sendMessage(SM.prefix + "Операция успешно выполнена.");
return;
}
}
}
@EventHandler
public void click3(InventoryClickEvent event) {
if (ChatColor.stripColor(event.getView().getTitle()).equalsIgnoreCase("MineBank Снятие денег")) {
event.setCancelled(true);
Player p = (Player)event.getWhoClicked();
if (event.getCurrentItem() == null || event.getCurrentItem().getType() == Material.AIR || !event.getCurrentItem().hasItemMeta()) {
return;
}
if (event.getCurrentItem().getType().equals(Material.WHITE_STAINED_GLASS_PANE) && ((Damageable) event.getCurrentItem()).getDamage() == 3) {
String g = ChatColor.stripColor(event.getCurrentItem().getItemMeta().getDisplayName()).split(" ")[1].replace("$", "");
int d = Integer.valueOf(g);
if (BankApi.getSchet(p.getName()) < d) {
p.closeInventory();
p.sendMessage(SM.prefix + "Недостаточно денег на банковском счёте!");
return;
}
VaultManager.deposite(p, d);
BankApi.withdraw(p.getName(), d);
p.sendMessage(SM.prefix + "Операция успешно выполнена.");
return;
}
}
}
@EventHandler
public void click4(InventoryClickEvent event) {
if (ChatColor.stripColor(event.getView().getTitle()).equalsIgnoreCase("Работник банка")) {
event.setCancelled(true);
final Player p = (Player)event.getWhoClicked();
if (event.getCurrentItem() == null || event.getCurrentItem().getType() == Material.AIR || !event.getCurrentItem().hasItemMeta() || event.getCurrentItem().getType().equals(Material.WHITE_STAINED_GLASS_PANE)) {
return;
}
if (event.getCurrentItem().getType().equals(Material.PAPER)) {
if (this.dgo.contains(p.getName())) {
p.sendMessage(ChatColor.WHITE + "Работник: Подождите!");
return;
}
if (BankApi.hasSchet(p.getName())) {
p.sendMessage(ChatColor.WHITE + "Работник: Извините, но у вас уже есть счёт. Удачного дня!");
p.closeInventory();
return;
}
if (VaultManager.getmoney(p) < 500.0D) {
p.sendMessage(ChatColor.WHITE + "Работник: Извините, но мы не можем зарегистрировать для вас счёт бесплатно. Возвращайтесь, когда у вас будет 500$. Удачного дня!");
p.closeInventory();
return;
}
VaultManager.withdraw(p, 500);
p.sendMessage(ChatColor.WHITE + "Работник: Одну минутку, запишу вас в базу...");
this.dgo.add(p.getName());
p.closeInventory();
Bukkit.getScheduler().runTaskLater(this.plugin, new Runnable() {
public void run() {
EventHand.this.dgo.remove(p.getName());
BankApi.setSchet(p.getName(), 150);
p.sendMessage(ChatColor.WHITE + "Работник: Всё готово! Теперь у вас есть банковский счёт, на который мы сразу же положили вам 150$. Удачного дня и использования MineBank!");
}
}, 120L);
}
}
}
public void openBankGui(Player p) {
Inventory i = Bukkit.createInventory((InventoryHolder)null, 27, "" + ChatColor.GOLD + ChatColor.BOLD + "MineBank Банкомат");
ItemStack depos = new ItemStack(Material.WHITE_STAINED_GLASS_PANE , 1);
ItemMeta deposm = depos.getItemMeta();
deposm.setDisplayName(ChatColor.GREEN + "Положить деньги в банк");
ArrayList<String> d = new ArrayList<String>();
d.add(" ");
int proc = 1;
if (p.hasPermission("atlantbank.doubleprocents")) {
proc = 2;
}
d.add(ChatColor.WHITE + "Под " + ChatColor.GOLD + proc + "%" + ChatColor.WHITE + " часовых.");
deposm.setLore(d);
depos.setItemMeta(deposm);
ItemStack withd = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta withm = withd.getItemMeta();
withm.setDisplayName(ChatColor.GREEN + "Снять деньги со счёта");
ArrayList<String> g = new ArrayList<String>();
g.add(" ");
g.add(ChatColor.WHITE + "У вас на счете " + ChatColor.GREEN + BankApi.getSchet(p.getName()) + "$");
withm.setLore(g);
withd.setItemMeta(withm);
i.setItem(11, depos);
i.setItem(15, withd);
p.openInventory(i);
}
public void openDepositGui(Player p) {
Inventory i = Bukkit.createInventory((InventoryHolder)null, 9, "" + ChatColor.GOLD + ChatColor.BOLD + "MineBank Вклад");
ItemStack depos100 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos100m = depos100.getItemMeta();
depos100m.setDisplayName(ChatColor.GREEN + "Положить 100$");
ArrayList<String> list100 = new ArrayList<String>();
list100.add(" ");
list100.add(ChatColor.WHITE + "Положить " + ChatColor.GOLD + "100$" + ChatColor.WHITE + " на банковский счёт.");
depos100m.setLore(list100);
depos100.setItemMeta(depos100m);
ItemStack depos500 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos500m = depos500.getItemMeta();
depos500m.setDisplayName(ChatColor.GREEN + "Положить 500$");
ArrayList<String> list500 = new ArrayList<String>();
list500.add(" ");
list500.add(ChatColor.WHITE + "Положить " + ChatColor.GOLD + "500$" + ChatColor.WHITE + " на банковский счёт.");
depos500m.setLore(list500);
depos500.setItemMeta(depos500m);
ItemStack depos5000 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos5000m = depos5000.getItemMeta();
depos5000m.setDisplayName(ChatColor.GREEN + "Положить 5000$");
ArrayList<String> list5000 = new ArrayList<String>();
list5000.add(" ");
list5000.add(ChatColor.WHITE + "Положить " + ChatColor.GOLD + "5000$" + ChatColor.WHITE + " на банковский счёт.");
depos5000m.setLore(list5000);
depos5000.setItemMeta(depos5000m);
ItemStack depos10000 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos10000m = depos10000.getItemMeta();
depos10000m.setDisplayName(ChatColor.GREEN + "Положить 10000$");
ArrayList<String> list10000 = new ArrayList<String>();
list10000.add(" ");
list10000.add(ChatColor.WHITE + "Положить " + ChatColor.GOLD + "10000$" + ChatColor.WHITE + " на банковский счёт.");
depos10000m.setLore(list10000);
depos10000.setItemMeta(depos10000m);
ItemStack depos50000 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos50000m = depos50000.getItemMeta();
depos50000m.setDisplayName(ChatColor.GREEN + "Положить 50000$");
ArrayList<String> list50000 = new ArrayList<String>();
list50000.add(" ");
list50000.add(ChatColor.WHITE + "Положить " + ChatColor.GOLD + "50000$" + ChatColor.WHITE + " на банковский счёт.");
depos50000m.setLore(list50000);
depos50000.setItemMeta(depos50000m);
i.setItem(2, depos100);
i.setItem(3, depos500);
i.setItem(4, depos5000);
i.setItem(5, depos10000);
i.setItem(6, depos50000);
p.openInventory(i);
}
public void openWithdrawGui(Player p) {
Inventory i = Bukkit.createInventory((InventoryHolder)null, 9, "" + ChatColor.GOLD + ChatColor.BOLD + "MineBank Снятие денег");
ItemStack depos100 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos100m = depos100.getItemMeta();
depos100m.setDisplayName(ChatColor.GREEN + "Снять 100$");
ArrayList<String> list100 = new ArrayList<String>();
list100.add(" ");
list100.add(ChatColor.WHITE + "Снять " + ChatColor.GOLD + "100$" + ChatColor.WHITE + " с банковского счёта.");
depos100m.setLore(list100);
depos100.setItemMeta(depos100m);
ItemStack depos500 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos500m = depos500.getItemMeta();
depos500m.setDisplayName(ChatColor.GREEN + "Снять 500$");
ArrayList<String> list500 = new ArrayList<String>();
list500.add(" ");
list500.add(ChatColor.WHITE + "Снять " + ChatColor.GOLD + "500$" + ChatColor.WHITE + " с банковского счёта.");
depos500m.setLore(list500);
depos500.setItemMeta(depos500m);
ItemStack depos5000 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos5000m = depos5000.getItemMeta();
depos5000m.setDisplayName(ChatColor.GREEN + "Снять 5000$");
ArrayList<String> list5000 = new ArrayList<String>();
list5000.add(" ");
list5000.add(ChatColor.WHITE + "Снять " + ChatColor.GOLD + "5000$" + ChatColor.WHITE + " с банковского счёта.");
depos5000m.setLore(list5000);
depos5000.setItemMeta(depos5000m);
ItemStack depos10000 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos10000m = depos10000.getItemMeta();
depos10000m.setDisplayName(ChatColor.GREEN + "Снять 10000$");
ArrayList<String> list10000 = new ArrayList<String>();
list10000.add(" ");
list10000.add(ChatColor.WHITE + "Снять " + ChatColor.GOLD + "10000$" + ChatColor.WHITE + " с банковского счёта.");
depos10000m.setLore(list10000);
depos10000.setItemMeta(depos10000m);
ItemStack depos50000 = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta depos50000m = depos50000.getItemMeta();
depos50000m.setDisplayName(ChatColor.GREEN + "Снять 50000$");
ArrayList<String> list50000 = new ArrayList<String>();
list50000.add(" ");
list50000.add(ChatColor.WHITE + "Снять " + ChatColor.GOLD + "50000$" + ChatColor.WHITE + " с банковского счёта.");
depos50000m.setLore(list50000);
depos50000.setItemMeta(depos50000m);
i.setItem(2, depos100);
i.setItem(3, depos500);
i.setItem(4, depos5000);
i.setItem(5, depos10000);
i.setItem(6, depos50000);
p.openInventory(i);
}
public void openRabotnikGui(Player p) {
Inventory ded = Bukkit.createInventory((InventoryHolder)null, 9, "" + ChatColor.GOLD + ChatColor.BOLD + "Работник банка");
ItemStack copyr = new ItemStack(Material.WHITE_STAINED_GLASS_PANE, 1);
ItemMeta copymeta = copyr.getItemMeta();
copymeta.setDisplayName("" + ChatColor.GOLD + ChatColor.BOLD + "AtlantWorld");
copyr.setItemMeta(copymeta);
ItemStack openSchet = new ItemStack(Material.PAPER, 1);
ItemMeta openMeta = openSchet.getItemMeta();
openMeta.setDisplayName(ChatColor.GREEN + "Открыть банковский счёт");
ArrayList<String> openlist = new ArrayList<String>();
openlist.add(" ");
openlist.add(ChatColor.WHITE + "Цена: " + ChatColor.GREEN + "500$");
openMeta.setLore(openlist);
openSchet.setItemMeta(openMeta);
ded.setItem(0, copyr);
ded.setItem(1, copyr);
ded.setItem(2, copyr);
ded.setItem(3, copyr);
ded.setItem(4, openSchet);
ded.setItem(5, copyr);
ded.setItem(6, copyr);
ded.setItem(7, copyr);
ded.setItem(8, copyr);
p.openInventory(ded);
}
}
Последнее редактирование: