PlayerSelectionWrapper kit choices are now set.
This commit is contained in:
parent
89042af922
commit
8597361e79
@ -6,6 +6,7 @@ import java.lang.reflect.Array;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class PlayerSelectionWrapper {
|
public class PlayerSelectionWrapper {
|
||||||
public final Player player;
|
public final Player player;
|
||||||
@ -14,8 +15,8 @@ public class PlayerSelectionWrapper {
|
|||||||
public Kit selectedChestplate;
|
public Kit selectedChestplate;
|
||||||
public Kit selectedLeggings;
|
public Kit selectedLeggings;
|
||||||
public Kit selectedBoots;
|
public Kit selectedBoots;
|
||||||
public HashMap<Kit, Integer> selectedPotions;
|
public HashMap<Kit, Integer> selectedPotions = new HashMap<>();
|
||||||
public HashMap<Kit, Integer> selectedAdditions;
|
public HashMap<Kit, Integer> selectedAdditions = new HashMap<>();
|
||||||
|
|
||||||
public PlayerSelectionWrapper(Player player, Kit kit) {
|
public PlayerSelectionWrapper(Player player, Kit kit) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
@ -49,10 +50,33 @@ public class PlayerSelectionWrapper {
|
|||||||
public HashMap<Integer, Integer> getGreenSlots() {
|
public HashMap<Integer, Integer> getGreenSlots() {
|
||||||
HashMap<Integer, Integer> slots = new HashMap<>();
|
HashMap<Integer, Integer> slots = new HashMap<>();
|
||||||
if (selectedKit != null) {
|
if (selectedKit != null) {
|
||||||
slots.put(selectedKit.getViewPosition(), selectedKit.getViewPosition());
|
slots.put(selectedKit.getViewPosition(), 1);
|
||||||
}
|
}
|
||||||
if (selectedHelmet != null) {
|
if (selectedHelmet != null) {
|
||||||
slots.put(selectedHelmet.getViewPosition(), selectedHelmet.getViewPosition());
|
slots.put(selectedHelmet.getViewPosition(), 1);
|
||||||
|
}
|
||||||
|
if (selectedChestplate != null) {
|
||||||
|
slots.put(selectedChestplate.getViewPosition(), 1);
|
||||||
|
}
|
||||||
|
if (selectedLeggings != null) {
|
||||||
|
slots.put(selectedLeggings.getViewPosition(), 1);
|
||||||
|
}
|
||||||
|
if (selectedBoots != null) {
|
||||||
|
slots.put(selectedBoots.getViewPosition(), 1);
|
||||||
|
}
|
||||||
|
if (selectedPotions != null) {
|
||||||
|
for (Map.Entry<Kit, Integer> entryKit : selectedPotions.entrySet()) {
|
||||||
|
if (entryKit.getValue() == null)
|
||||||
|
continue;
|
||||||
|
slots.put(entryKit.getKey().getViewPosition(), entryKit.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (selectedAdditions != null) {
|
||||||
|
for (Map.Entry<Kit, Integer> entryKit : selectedAdditions.entrySet()) {
|
||||||
|
if (entryKit.getValue() == null)
|
||||||
|
continue;
|
||||||
|
slots.put(entryKit.getKey().getViewPosition(), entryKit.getValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return slots;
|
return slots;
|
||||||
@ -63,6 +87,11 @@ public class PlayerSelectionWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addAdditions(Kit kit, int amount) {
|
public void addAdditions(Kit kit, int amount) {
|
||||||
|
selectedAdditions.putIfAbsent(kit, 0);
|
||||||
|
if (selectedAdditions.get(kit) + amount <= 0) {
|
||||||
|
selectedAdditions.put(kit, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
selectedAdditions.put(kit, selectedAdditions.get(kit) + amount);
|
selectedAdditions.put(kit, selectedAdditions.get(kit) + amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,6 +112,11 @@ public class PlayerSelectionWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addPotions(Kit kit, int amount) {
|
public void addPotions(Kit kit, int amount) {
|
||||||
|
selectedPotions.putIfAbsent(kit, 0);
|
||||||
|
if (selectedPotions.get(kit) + amount <= 0) {
|
||||||
|
selectedPotions.put(kit, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
selectedPotions.put(kit, selectedPotions.get(kit) + amount);
|
selectedPotions.put(kit, selectedPotions.get(kit) + amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.enchantments.Enchantment;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.inventory.ClickType;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
@ -80,26 +81,80 @@ public class pvp extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
public void slotFunction(Slot slot, Kit kit, PlayerSelectionWrapper selectionWrapper, Menu menu) {
|
public void slotFunction(Slot slot, Kit kit, PlayerSelectionWrapper selectionWrapper, Menu menu) {
|
||||||
slot.setClickHandler((player, info) -> {
|
slot.setClickHandler((player, info) -> {
|
||||||
if (kit.getType() == Kit.Type.KIT) {
|
Kit.Type type = kit.getType();
|
||||||
if (selectionWrapper.getSelectedKit() != kit) {
|
if (type == Kit.Type.KIT) {
|
||||||
for (Map.Entry<Integer, Kit> entryKit : kits.entrySet()) {
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
Kit updateKit = entryKit.getValue();
|
selectionWrapper.setSelectedKit(kit);
|
||||||
int slotPos = entryKit.getKey();
|
updateMenu(selectionWrapper, menu);
|
||||||
Slot updateSlot = menu.getSlot(slotPos);
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
selectionWrapper.setSelectedKit(kit);
|
selectionWrapper.setSelectedKit(null);
|
||||||
if (selectionWrapper.getGreenSlots().get(slotPos) != null) {
|
updateMenu(selectionWrapper, menu);
|
||||||
updateSlot.setItem(new ItemStack(Material.GREEN_WOOL));
|
}
|
||||||
} else {
|
} else if (type == Kit.Type.HELMET) {
|
||||||
updateSlot.setItem(updateKit.getInventoryItemList().get(0).getItemStack());
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
}
|
selectionWrapper.setSelectedHelmet(kit);
|
||||||
}
|
updateMenu(selectionWrapper, menu);
|
||||||
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
|
selectionWrapper.setSelectedHelmet(null);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
}
|
||||||
|
} else if (type == Kit.Type.CHESTPLATE) {
|
||||||
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
|
selectionWrapper.setSelectedChestplate(kit);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
|
selectionWrapper.setSelectedChestplate(null);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
}
|
||||||
|
} else if (type == Kit.Type.LEGGINGS) {
|
||||||
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
|
selectionWrapper.setSelectedLeggings(kit);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
|
selectionWrapper.setSelectedLeggings(null);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
}
|
||||||
|
} else if (type == Kit.Type.BOOTS) {
|
||||||
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
|
selectionWrapper.setSelectedBoots(kit);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
|
selectionWrapper.setSelectedBoots(null);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
}
|
||||||
|
} else if (type == Kit.Type.POTION) {
|
||||||
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
|
selectionWrapper.addPotions(kit, 1);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
|
selectionWrapper.addPotions(kit, -1);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
}
|
||||||
|
} else if (type == Kit.Type.ADDITIONAL) {
|
||||||
|
if (info.getClickType() == ClickType.LEFT) {
|
||||||
|
selectionWrapper.addAdditions(kit, 1);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
|
} else if (info.getClickType() == ClickType.RIGHT) {
|
||||||
|
selectionWrapper.addAdditions(kit, -1);
|
||||||
|
updateMenu(selectionWrapper, menu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (kit.getType() == Kit.Type.HELMET)
|
|
||||||
System.out.println("ldkfsjld");
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateMenu(PlayerSelectionWrapper selectionWrapper, Menu menu) {
|
||||||
|
for (Map.Entry<Integer, Kit> entryKit : kits.entrySet()) {
|
||||||
|
Kit updateKit = entryKit.getValue();
|
||||||
|
int slotPos = entryKit.getKey();
|
||||||
|
Slot updateSlot = menu.getSlot(slotPos);
|
||||||
|
if (selectionWrapper.getGreenSlots().get(slotPos) != null) {
|
||||||
|
updateSlot.setItem(new ItemStack(Material.GREEN_WOOL, selectionWrapper.getGreenSlots().get(slotPos)));
|
||||||
|
} else {
|
||||||
|
updateSlot.setItem(updateKit.getInventoryItemList().get(0).getItemStack());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void load() {
|
public void load() {
|
||||||
World world = Bukkit.getWorld("world");
|
World world = Bukkit.getWorld("world");
|
||||||
String[] signPos = config.getString("sign_pos").split(" ");
|
String[] signPos = config.getString("sign_pos").split(" ");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user