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
35 changes: 35 additions & 0 deletions src/main/java/ua/krint/elytraDisabled/ElytraListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityToggleGlideEvent;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack;
Expand Down Expand Up @@ -73,12 +75,45 @@ public void onInventoryClick(InventoryClickEvent e) {
}
}

if (e.getClick() == ClickType.NUMBER_KEY && e.getSlotType() == InventoryType.SlotType.ARMOR) {
int hotbarButton = e.getHotbarButton();
if (hotbarButton >= 0 && hotbarButton < 9) {
ItemStack hotbarItem = p.getInventory().getItem(hotbarButton);
if (hotbarItem != null && hotbarItem.getType() == Material.ELYTRA) {
e.setCancelled(true);
warn(p, "equip_blocked");
return;
}
}
}

if (e.getClick().name().contains("SWAP") && current != null && current.getType() == Material.ELYTRA) {
e.setCancelled(true);
warn(p, "equip_blocked");
}
}

@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onInventoryDrag(InventoryDragEvent e) {
if (!(e.getWhoClicked() instanceof Player)) return;
Player p = (Player) e.getWhoClicked();

if (plugin.hasBypass(p)) return;
if (!plugin.isWorldDisabled(p.getWorld())) return;
if (!plugin.isPreventEquip()) return;

ItemStack oldCursor = e.getOldCursor();
if (oldCursor == null || oldCursor.getType() != Material.ELYTRA) return;

for (int rawSlot : e.getRawSlots()) {
if (e.getView().getSlotType(rawSlot) == InventoryType.SlotType.ARMOR) {
e.setCancelled(true);
warn(p, "equip_blocked");
return;
}
}
}

@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onArmorEquip(PlayerInteractEvent e) {
Player p = e.getPlayer();
Expand Down
14 changes: 7 additions & 7 deletions src/main/resources/lang/tr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
#
# equip_blocked:
# - '[type="title",title_times="10:40:10",sound="minecraft:entity.villager.no;1.0;1.0"]'
# - '&cYOOOOOK!'
# - '&7Olmaz kardeşim elytra kullanamazsın'
# - '&cEngellendi!'
# - '&7Bu dünyada elytra kuşanmak yasaktır'
#
# type: chat (varsayılan) / actionbar / title
# title_times: "görünme:kalma:kaybolma" tik cinsinden (20 tik = 1 saniye), sadece title için
Expand All @@ -26,17 +26,17 @@
# Elytra takmaya çalışırken gösterilen mesaj
equip_blocked:
- '[type="title",title_times="10:40:10",sound="minecraft:entity.villager.no;1.0;1.0"]'
- '&cYOOOOOK!'
- '&7Olmaz kardeşim elytra kullanamazsın'
- '&cEngellendi!'
- '&7Bu dünyada elytra kuşanmak yasaktır'

# Uçmaya çalışırken gösterilen mesaj
glide_blocked:
- '[type="title",title_times="10:40:10",sound="minecraft:entity.villager.no;1.0;1.0"]'
- '&cYOOOOOK!'
- '&7Olmaz kardeşim elytra kullanamazsın'
- '&cEngellendi!'
- '&7Bu dünyada elytra ile uçuş devre dışıdır'

# Elytra otomatik olarak çıkarıldığında gösterilen mesaj
removed_on_enter: "&eUsagım bu dünyada elitra kullanımı yasak ates devrinden devam ediyorsun"
removed_on_enter: "&eBu dünyaya giriş yaptığınız için elytranız envanterinize alındı."

# Eklenti yeniden yüklenirken gösterilen mesajlar
reload_success: "&a&l[ElytraDisabled]&r &aYapılandırma başarıyla yeniden yüklendi!"
Expand Down