Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
package org.cmurfik.emstackmodifier;
import org.bukkit.plugin.java.JavaPlugin;
import org.cmurfik.emstackmodifier.listeners.EventListener;
public class EmStackModifier extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("EmStackModifier с треском и парой ошибок решил запустится!");
getServer().getPluginManager().registerEvents(new EventListener(this), this);
saveDefaultConfig();
}
@Override
public void onDisable() {
getLogger().info("EmStackModifier уходит в небытие, увидимся!");
}
}
package org.cmurfik.emstackmodifier.listeners;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class EventListener implements Listener {
private JavaPlugin plugin;
public EventListener(JavaPlugin plugin) {
this.plugin = plugin;
}
@EventHandler
public void onPlayerPickupItem(PlayerPickupItemEvent event) {
ItemStack item = event.getItem().getItemStack();
int maxAmount;
if (item.getType() == Material.ENDER_PEARL) {
maxAmount = plugin.getConfig().getInt("settings.stack-ender-pearl", 32);
if (item.getAmount() < maxAmount) {
handleStacking(event, item, maxAmount);
}
}
else if (item.getType() == Material.TOTEM_OF_UNDYING) {
maxAmount = plugin.getConfig().getInt("settings.stack-totem", 2);
if (item.getAmount() < maxAmount) {
handleStacking(event, item, maxAmount);
}
}
}
private void handleStacking(PlayerPickupItemEvent event, ItemStack item, int maxAmount) {
Player player = event.getPlayer();
Inventory inventory = player.getInventory();
for (int i = 0; i < inventory.getSize(); i++) {
ItemStack stack = inventory.getItem(i);
if (stack != null && stack.isSimilar(item) && stack.getAmount() < maxAmount) {
int space = maxAmount - stack.getAmount();
int amount = item.getAmount();
if (amount <= space) {
stack.setAmount(stack.getAmount() + amount);
event.setCancelled(true);
event.getItem().remove();
break;
}
stack.setAmount(maxAmount);
item.setAmount(amount - space);
}
}
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
ItemStack cursorItem = event.getCursor();
ItemStack currentItem = event.getCurrentItem();
if (currentItem != null && (currentItem.getType() == Material.ENDER_PEARL || currentItem.getType() == Material.TOTEM_OF_UNDYING)
&& cursorItem != null && (cursorItem.getType() == Material.ENDER_PEARL || cursorItem.getType() == Material.TOTEM_OF_UNDYING)
&& cursorItem.getAmount() > 1) {
event.setCancelled(true);
}
}
}
Уже нашел, я забыл решение поставитьосновной класс
СлушательJava:package org.cmurfik.emstackmodifier; import org.bukkit.plugin.java.JavaPlugin; import org.cmurfik.emstackmodifier.listeners.EventListener; public class EmStackModifier extends JavaPlugin { @Override public void onEnable() { getLogger().info("EmStackModifier с треском и парой ошибок решил запустится!"); getServer().getPluginManager().registerEvents(new EventListener(this), this); saveDefaultConfig(); } @Override public void onDisable() { getLogger().info("EmStackModifier уходит в небытие, увидимся!"); } }
Java:package org.cmurfik.emstackmodifier.listeners; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; public class EventListener implements Listener { private JavaPlugin plugin; public EventListener(JavaPlugin plugin) { this.plugin = plugin; } @EventHandler public void onPlayerPickupItem(PlayerPickupItemEvent event) { ItemStack item = event.getItem().getItemStack(); int maxAmount; if (item.getType() == Material.ENDER_PEARL) { maxAmount = plugin.getConfig().getInt("settings.stack-ender-pearl", 32); if (item.getAmount() < maxAmount) { handleStacking(event, item, maxAmount); } } else if (item.getType() == Material.TOTEM_OF_UNDYING) { maxAmount = plugin.getConfig().getInt("settings.stack-totem", 2); if (item.getAmount() < maxAmount) { handleStacking(event, item, maxAmount); } } } private void handleStacking(PlayerPickupItemEvent event, ItemStack item, int maxAmount) { Player player = event.getPlayer(); Inventory inventory = player.getInventory(); for (int i = 0; i < inventory.getSize(); i++) { ItemStack stack = inventory.getItem(i); if (stack != null && stack.isSimilar(item) && stack.getAmount() < maxAmount) { int space = maxAmount - stack.getAmount(); int amount = item.getAmount(); if (amount <= space) { stack.setAmount(stack.getAmount() + amount); event.setCancelled(true); event.getItem().remove(); break; } stack.setAmount(maxAmount); item.setAmount(amount - space); } } } @EventHandler public void onInventoryClick(InventoryClickEvent event) { ItemStack cursorItem = event.getCursor(); ItemStack currentItem = event.getCurrentItem(); if (currentItem != null && (currentItem.getType() == Material.ENDER_PEARL || currentItem.getType() == Material.TOTEM_OF_UNDYING) && cursorItem != null && (cursorItem.getType() == Material.ENDER_PEARL || cursorItem.getType() == Material.TOTEM_OF_UNDYING) && cursorItem.getAmount() > 1) { event.setCancelled(true); } } }
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения