9
0
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:
LoJoSho
2023-01-15 19:16:30 -06:00
parent 7cf6efe67c
commit a69a16eea7
4 changed files with 29 additions and 4 deletions

View File

@@ -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()));

View File

@@ -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
}

View File

@@ -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());
}
}

View File

@@ -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) {