mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2025-12-19 15:09:19 +00:00
add left and right click to possible actions
This commit is contained in:
@@ -17,6 +17,7 @@ import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.spongepowered.configurate.ConfigurationNode;
|
||||
@@ -150,7 +151,8 @@ public class Menu {
|
||||
|
||||
Type finalType = type;
|
||||
guiItem.setAction(event -> {
|
||||
if (finalType != null) finalType.run(user, config);
|
||||
final ClickType clickType = event.getClick();
|
||||
if (finalType != null) finalType.run(user, config, clickType);
|
||||
|
||||
for (int i : slots) {
|
||||
gui.updateItem(i, updateLore(player, originalItem.clone()));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.hibiscusmc.hmccosmetics.gui.type;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.spongepowered.configurate.ConfigurationNode;
|
||||
|
||||
@@ -18,6 +19,9 @@ public class Type {
|
||||
}
|
||||
|
||||
public void run(CosmeticUser user, ConfigurationNode config) {
|
||||
run(user, config, null);
|
||||
}
|
||||
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
|
||||
// Override
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.hibiscusmc.hmccosmetics.gui.special.DyeMenu;
|
||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.spongepowered.configurate.ConfigurationNode;
|
||||
import org.spongepowered.configurate.serialize.SerializationException;
|
||||
|
||||
@@ -20,7 +21,7 @@ public class TypeCosmetic extends Type {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(CosmeticUser user, ConfigurationNode config) {
|
||||
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
|
||||
if (config.node("cosmetic").virtual()) return;
|
||||
String cosmeticName = config.node("cosmetic").getString();
|
||||
Cosmetic cosmetic = Cosmetics.getCosmetic(cosmeticName);
|
||||
@@ -40,6 +41,15 @@ public class TypeCosmetic extends Type {
|
||||
try {
|
||||
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class));
|
||||
|
||||
if (clickType != null) {
|
||||
if (clickType.isLeftClick()) {
|
||||
if (!actionConfig.node("left-click").virtual()) actionStrings.addAll(actionConfig.node("left-click").getList(String.class));
|
||||
}
|
||||
if (clickType.isRightClick()) {
|
||||
if (!actionConfig.node("right-click").virtual()) actionStrings.addAll(actionConfig.node("right-click").getList(String.class));
|
||||
}
|
||||
}
|
||||
|
||||
if (user.getCosmetic(cosmetic.getSlot()) == cosmetic) {
|
||||
if (!actionConfig.node("on-unequip").virtual()) actionStrings.addAll(actionConfig.node("on-unequip").getList(String.class));
|
||||
MessagesUtil.sendDebugMessages("on-unequip");
|
||||
@@ -61,7 +71,6 @@ public class TypeCosmetic extends Type {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
//user.toggleCosmetic(cosmetic);
|
||||
user.updateCosmetic(cosmetic.getSlot());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.hibiscusmc.hmccosmetics.gui.type.types;
|
||||
import com.hibiscusmc.hmccosmetics.gui.action.Actions;
|
||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.spongepowered.configurate.ConfigurationNode;
|
||||
import org.spongepowered.configurate.serialize.SerializationException;
|
||||
|
||||
@@ -20,7 +21,7 @@ public class TypeEmpty extends Type {
|
||||
|
||||
// This is the code that's run when the item is clicked.
|
||||
@Override
|
||||
public void run(CosmeticUser user, ConfigurationNode config) {
|
||||
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
|
||||
List<String> actionStrings = new ArrayList<>(); // List where we keep the actions the server will execute.
|
||||
ConfigurationNode actionConfig = config.node("actions"); // Configuration node that actions are under.
|
||||
|
||||
@@ -31,6 +32,15 @@ public class TypeEmpty extends Type {
|
||||
// with actions, mearly what should be done for each item.
|
||||
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class));
|
||||
|
||||
if (clickType != null) {
|
||||
if (clickType.isLeftClick()) {
|
||||
if (!actionConfig.node("left-click").virtual()) actionStrings.addAll(actionConfig.node("left-click").getList(String.class));
|
||||
}
|
||||
if (clickType.isRightClick()) {
|
||||
if (!actionConfig.node("right-click").virtual()) actionStrings.addAll(actionConfig.node("right-click").getList(String.class));
|
||||
}
|
||||
}
|
||||
|
||||
// We run the actions once we got the raw strings from the config.
|
||||
Actions.runActions(user, actionStrings);
|
||||
} catch (SerializationException e) {
|
||||
|
||||
Reference in New Issue
Block a user