feat: player actions prevention
This commit is contained in:
parent
ea5815c613
commit
ddb56ec01a
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4,6 +4,7 @@ import me.theclashfruit.hubbit.bstats.Metrics;
|
|||
import me.theclashfruit.hubbit.commands.InfoCommand;
|
||||
import me.theclashfruit.hubbit.commands.MenuCommand;
|
||||
import me.theclashfruit.hubbit.events.MenuListener;
|
||||
import me.theclashfruit.hubbit.events.PlayerActionsListener;
|
||||
import me.theclashfruit.hubbit.utils.ConfigLoaderSingleton;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
|
@ -17,6 +18,7 @@ public final class Hubbit extends JavaPlugin {
|
|||
|
||||
// Register Events
|
||||
this.getServer().getPluginManager().registerEvents(new MenuListener(), this);
|
||||
this.getServer().getPluginManager().registerEvents(new PlayerActionsListener(), this);
|
||||
|
||||
// Config
|
||||
this.saveDefaultConfig();
|
||||
|
|
|
@ -73,7 +73,9 @@ public class MenuListener implements Listener {
|
|||
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if(player.getInventory().getItemInMainHand().isSimilar(new ItemStack(Material.valueOf(menuConfig.getString("open_material")), 1))) {
|
||||
|
||||
|
||||
if(player.getInventory().getItemInMainHand().getType() == Material.valueOf(menuConfig.getString("open_material"))) {
|
||||
event.setCancelled(true);
|
||||
|
||||
player.performCommand("servers");
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
package me.theclashfruit.hubbit.events;
|
||||
|
||||
import me.theclashfruit.hubbit.Hubbit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.Configuration;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
|
||||
import static org.bukkit.Bukkit.getLogger;
|
||||
|
||||
public class PlayerActionsListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
Configuration mainConfig = getPlugin(Hubbit.class).getConfig();
|
||||
|
||||
event.setJoinMessage(ChatColor.translateAlternateColorCodes('&', mainConfig.getString("messages.player.join").replace("%player%", event.getPlayer().getName())));
|
||||
|
||||
getLogger().log(java.util.logging.Level.INFO, String.valueOf(mainConfig.getStringList("hub.worlds").contains(event.getPlayer().getWorld().getName())));
|
||||
|
||||
if(mainConfig.getStringList("hub.worlds").contains(event.getPlayer().getWorld().getName())) {
|
||||
Inventory playerInv = event.getPlayer().getInventory();
|
||||
|
||||
mainConfig.getMapList("hub.inventory").forEach(item -> {
|
||||
ItemStack itemStack = new ItemStack(Material.valueOf((String) item.get("material")), (int) item.get("count"));
|
||||
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
|
||||
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', (String) item.get("name")));
|
||||
|
||||
List<String> lore = (List<String>) item.get("lore");
|
||||
|
||||
for (int i = 0; i < lore.size(); i++) {
|
||||
lore.set(i, ChatColor.translateAlternateColorCodes('&', lore.get(i)));
|
||||
}
|
||||
|
||||
itemMeta.setLore(lore);
|
||||
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
|
||||
playerInv.setItem((int) item.get("slot"), itemStack);
|
||||
});
|
||||
|
||||
event.getPlayer().getInventory().setContents(playerInv.getContents());
|
||||
event.getPlayer().updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
Configuration mainConfig = getPlugin(Hubbit.class).getConfig();
|
||||
|
||||
event.setQuitMessage(ChatColor.translateAlternateColorCodes('&', mainConfig.getString("messages.player.quit").replace("%player%", event.getPlayer().getName())));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void preventInventoryClick(InventoryClickEvent event) {
|
||||
Configuration mainConfig = getPlugin(Hubbit.class).getConfig();
|
||||
|
||||
if(mainConfig.getStringList("hub.worlds").contains(event.getWhoClicked().getWorld().getName()) && !event.getWhoClicked().hasPermission("hubbit.admin.interact")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void preventPlayerDrop(PlayerDropItemEvent event) {
|
||||
Configuration mainConfig = getPlugin(Hubbit.class).getConfig();
|
||||
|
||||
if (mainConfig.getStringList("hub.worlds").contains(event.getPlayer().getWorld().getName()) && !event.getPlayer().hasPermission("hubbit.admin.interact")) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,2 +1,16 @@
|
|||
message_prefix: '[Hubbit]'
|
||||
hub_world: world
|
||||
messages:
|
||||
prefix: 'Hubbit |'
|
||||
player:
|
||||
join: '&a%player% &7has joined the server!'
|
||||
leave: '&a%player% &7has left the server!'
|
||||
|
||||
hub:
|
||||
worlds:
|
||||
- world
|
||||
inventory:
|
||||
- name: '&aServer Selector'
|
||||
material: 'COMPASS'
|
||||
slot: 0
|
||||
count: 1
|
||||
lore:
|
||||
- '&7Select The Server You Want To Join!'
|
Loading…
Reference in a new issue