9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-21 07:59: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 net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.spongepowered.configurate.ConfigurationNode; import org.spongepowered.configurate.ConfigurationNode;
@@ -150,7 +151,8 @@ public class Menu {
Type finalType = type; Type finalType = type;
guiItem.setAction(event -> { 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) { for (int i : slots) {
gui.updateItem(i, updateLore(player, originalItem.clone())); gui.updateItem(i, updateLore(player, originalItem.clone()));

View File

@@ -1,6 +1,7 @@
package com.hibiscusmc.hmccosmetics.gui.type; package com.hibiscusmc.hmccosmetics.gui.type;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
import org.spongepowered.configurate.ConfigurationNode; import org.spongepowered.configurate.ConfigurationNode;
@@ -18,6 +19,9 @@ public class Type {
} }
public void run(CosmeticUser user, ConfigurationNode config) { public void run(CosmeticUser user, ConfigurationNode config) {
run(user, config, null);
}
public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
// Override // 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.gui.type.Type;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import com.hibiscusmc.hmccosmetics.util.MessagesUtil; import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
import org.bukkit.event.inventory.ClickType;
import org.spongepowered.configurate.ConfigurationNode; import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.SerializationException;
@@ -20,7 +21,7 @@ public class TypeCosmetic extends Type {
} }
@Override @Override
public void run(CosmeticUser user, ConfigurationNode config) { public void run(CosmeticUser user, ConfigurationNode config, ClickType clickType) {
if (config.node("cosmetic").virtual()) return; if (config.node("cosmetic").virtual()) return;
String cosmeticName = config.node("cosmetic").getString(); String cosmeticName = config.node("cosmetic").getString();
Cosmetic cosmetic = Cosmetics.getCosmetic(cosmeticName); Cosmetic cosmetic = Cosmetics.getCosmetic(cosmeticName);
@@ -40,6 +41,15 @@ public class TypeCosmetic extends Type {
try { try {
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class)); 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 (user.getCosmetic(cosmetic.getSlot()) == cosmetic) {
if (!actionConfig.node("on-unequip").virtual()) actionStrings.addAll(actionConfig.node("on-unequip").getList(String.class)); if (!actionConfig.node("on-unequip").virtual()) actionStrings.addAll(actionConfig.node("on-unequip").getList(String.class));
MessagesUtil.sendDebugMessages("on-unequip"); MessagesUtil.sendDebugMessages("on-unequip");
@@ -61,7 +71,6 @@ public class TypeCosmetic extends Type {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
//user.toggleCosmetic(cosmetic);
user.updateCosmetic(cosmetic.getSlot()); 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.action.Actions;
import com.hibiscusmc.hmccosmetics.gui.type.Type; import com.hibiscusmc.hmccosmetics.gui.type.Type;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import org.bukkit.event.inventory.ClickType;
import org.spongepowered.configurate.ConfigurationNode; import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException; 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. // This is the code that's run when the item is clicked.
@Override @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. 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. 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. // with actions, mearly what should be done for each item.
if (!actionConfig.node("any").virtual()) actionStrings.addAll(actionConfig.node("any").getList(String.class)); 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. // We run the actions once we got the raw strings from the config.
Actions.runActions(user, actionStrings); Actions.runActions(user, actionStrings);
} catch (SerializationException e) { } catch (SerializationException e) {