v3.15.3.0

This commit is contained in:
rockyhawk64 2021-03-08 15:19:22 +11:00
parent 19d18d10d4
commit 6c0655e6e9
7 changed files with 117 additions and 8 deletions

View File

@ -1,4 +1,4 @@
version: 3.15.2.4
version: 3.15.3.0
main: me.rockyhawk.commandpanels.CommandPanels
name: CommandPanels
author: RockyHawk

View File

@ -10,6 +10,7 @@ import me.clip.placeholderapi.PlaceholderAPI;
import me.rockyhawk.commandpanels.api.CommandPanelsAPI;
import me.rockyhawk.commandpanels.api.Panel;
import me.rockyhawk.commandpanels.classresources.*;
import me.rockyhawk.commandpanels.classresources.item_fall.ItemFallManager;
import me.rockyhawk.commandpanels.commands.*;
import me.rockyhawk.commandpanels.completetabs.CpTabComplete;
import me.rockyhawk.commandpanels.customcommands.CommandPlaceholderLoader;
@ -140,6 +141,7 @@ public class CommandPanels extends JavaPlugin{
this.getServer().getPluginManager().registerEvents(new UtilsPanelsLoader(this), this);
this.getServer().getPluginManager().registerEvents(new GenUtils(this), this);
this.getServer().getPluginManager().registerEvents(new CommandpanelUserInput(this), this);
this.getServer().getPluginManager().registerEvents(new ItemFallManager(this), this);
//if refresh-panels set to false, don't load this
if(Objects.requireNonNull(config.getString("config.refresh-panels")).equalsIgnoreCase("true")){

View File

@ -273,6 +273,7 @@ public class ItemCreation {
patterns.add(new Pattern(DyeColor.valueOf(dyePattern[0]), PatternType.valueOf(dyePattern[1]))); //load patterns in config: RED:STRIPE_TOP
}
bannerMeta.setPatterns(patterns);
bannerMeta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
s.setItemMeta(bannerMeta);
}
}catch(Exception ignore){
@ -327,20 +328,28 @@ public class ItemCreation {
}
if (itemSection.contains("damage")) {
//change the damage amount (placeholders accepted)
if(plugin.legacy.isLegacy()){
//if the damage is not unbreakable and should be a value
if (plugin.legacy.isLegacy()) {
try {
s.setDurability(Short.parseShort(Objects.requireNonNull(plugin.papi(p, itemSection.getString("damage")))));
}catch(Exception e){
plugin.debug(e,p);
} catch (Exception e) {
plugin.debug(e, p);
p.sendMessage(plugin.papi(plugin.tag + plugin.config.getString("config.format.error") + " damage: " + itemSection.getString("damage")));
}
}else {
} else {
if(itemSection.getString("damage").equalsIgnoreCase("-1")){
//if the player wants the item to be unbreakable. Only works in non legacy versions
ItemMeta unbreak = s.getItemMeta();
unbreak.setUnbreakable(true);
s.setItemMeta(unbreak);
}
try {
Damageable itemDamage = (Damageable) s.getItemMeta();
itemDamage.setDamage(Integer.parseInt(Objects.requireNonNull(plugin.papi(p, itemSection.getString("damage")))));
s.setItemMeta((ItemMeta) itemDamage);
} catch (Exception e) {
plugin.debug(e,p);
plugin.debug(e, p);
p.sendMessage(plugin.papi(plugin.tag + plugin.config.getString("config.format.error") + " damage: " + itemSection.getString("damage")));
}
}
@ -369,7 +378,7 @@ public class ItemCreation {
//hasperm hasvalue, etc sections will be done here
public String hasSection(ConfigurationSection cf, Player p){
if (cf.contains("hasvalue")) {
if (cf.isSet("hasvalue")) {
//this will do the hasvalue without any numbers
boolean outputValue = true;
//outputValue will default to true

View File

@ -0,0 +1,45 @@
package me.rockyhawk.commandpanels.classresources.item_fall;
import me.rockyhawk.commandpanels.CommandPanels;
import me.rockyhawk.commandpanels.api.PanelClosedEvent;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
public class ItemFallManager implements Listener {
CommandPanels plugin;
public ItemFallManager(CommandPanels pl) {
this.plugin = pl;
}
@EventHandler
public void panelCloseItemsDrop(PanelClosedEvent e){
new BukkitRunnable(){
@Override
public void run(){
for(String item : e.getPanel().getConfig().getConfigurationSection("item").getKeys(false)){
if(e.getPanel().getConfig().isSet("item." + item + ".itemType")){
if(e.getPanel().getConfig().getStringList("item." + item + ".itemType").contains("dropItem")){
ItemStack stack = e.getPlayer().getOpenInventory().getTopInventory().getItem(Integer.parseInt(item));
if(stack == null || stack.getType() == Material.AIR){
continue;
}
//trigger event and check for cancel
PanelItemDropEvent dropEvent = new PanelItemDropEvent(e.getPlayer(),e.getPanel(),stack);
Bukkit.getPluginManager().callEvent(dropEvent);
if(dropEvent.isCancelled()){
continue;
}
e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(),stack);
}
}
}
}
}.run();
}
}

View File

@ -0,0 +1,51 @@
package me.rockyhawk.commandpanels.classresources.item_fall;
import me.rockyhawk.commandpanels.api.Panel;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
public class PanelItemDropEvent extends Event implements Cancellable {
private boolean isCancelled;
private final Player p;
private final Panel panel;
private final ItemStack item;
public boolean isCancelled() {
return this.isCancelled;
}
public void setCancelled(boolean isCancelled) {
this.isCancelled = isCancelled;
}
public PanelItemDropEvent(Player player, Panel panel, ItemStack drop) {
this.p = player;
this.panel = panel;
this.item = drop;
}
public Player getPlayer(){
return this.p;
}
public ItemStack getItem(){
return this.item;
}
public Panel getPanel(){
return this.panel;
}
private static final HandlerList HANDLERS = new HandlerList();
public HandlerList getHandlers() {
return HANDLERS;
}
public static HandlerList getHandlerList() {
return HANDLERS;
}
}

View File

@ -44,6 +44,9 @@ public class HotbarItemLoader {
if(!plugin.panelPerms.isPanelWorldEnabled(p,panel.getConfig())){
return false;
}
if(!itemCheckExecute(p.getInventory().getItem(slot),p,false,false)){
return false;
}
if(panel.getConfig().contains("open-with-item.commands")){
for(String command : panel.getConfig().getStringList("open-with-item.commands")){
plugin.commandTags.commandTags(p,plugin.papi(p,command),command);

View File

@ -18,7 +18,6 @@ public class UtilsChestSortEvent implements Listener {
return;
}
//If the ChestSort plugin triggers an event
plugin.getServer().getConsoleSender().sendMessage(e.getInventory().getType().toString());
if(e.getInventory().getType() == InventoryType.PLAYER){
for(int slot : plugin.hotbar.getStationaryItemSlots()){
e.setUnmovable(slot);