Made opening the gui's async
This commit is contained in:
parent
4bb26035d6
commit
c538a68160
|
|
@ -2,6 +2,7 @@ package com.alttd.GUI.windows;
|
||||||
|
|
||||||
import com.alttd.GUI.GUIMerchant;
|
import com.alttd.GUI.GUIMerchant;
|
||||||
import com.alttd.config.Config;
|
import com.alttd.config.Config;
|
||||||
|
import com.alttd.objects.Price;
|
||||||
import com.alttd.objects.VillagerType;
|
import com.alttd.objects.VillagerType;
|
||||||
import com.alttd.util.Utilities;
|
import com.alttd.util.Utilities;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
|
|
@ -19,11 +20,14 @@ public class BuyGUI extends GUIMerchant {
|
||||||
Template.of("trader", villagerType.getDisplayName()),
|
Template.of("trader", villagerType.getDisplayName()),
|
||||||
Template.of("percentage", "100")), villagerType); //TODO get percentage from player somehow
|
Template.of("percentage", "100")), villagerType); //TODO get percentage from player somehow
|
||||||
for (ItemStack itemStack : villagerType.getBuying()) {
|
for (ItemStack itemStack : villagerType.getBuying()) {
|
||||||
double price = Utilities.getWorth(itemStack);
|
Price price = Utilities.getPrice(itemStack);
|
||||||
|
if (price == null)
|
||||||
|
continue;
|
||||||
|
double money = price.getPrice(itemStack.getAmount());
|
||||||
addItem(itemStack,
|
addItem(itemStack,
|
||||||
getPriceItem(price),
|
getPriceItem(money),
|
||||||
null,
|
null,
|
||||||
player -> player.sendMessage(MiniMessage.get().parse("Hi! you bought: " + itemStack.getAmount() + " " + itemStack.getType().name() + " for " + price + "."))
|
player -> player.sendMessage(MiniMessage.get().parse("Hi! you bought: " + itemStack.getAmount() + " " + itemStack.getType().name() + " for " + money + "."))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.alttd.GUI.windows;
|
package com.alttd.GUI.windows;
|
||||||
|
|
||||||
import com.alttd.GUI.GUIInventory;
|
import com.alttd.GUI.GUIInventory;
|
||||||
|
import com.alttd.VillagerUI;
|
||||||
import com.alttd.config.Config;
|
import com.alttd.config.Config;
|
||||||
import com.alttd.objects.VillagerType;
|
import com.alttd.objects.VillagerType;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
|
|
@ -9,6 +10,7 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class OpenGUI extends GUIInventory {
|
public class OpenGUI extends GUIInventory {
|
||||||
|
|
||||||
|
|
@ -34,7 +36,29 @@ public class OpenGUI extends GUIInventory {
|
||||||
super(InventoryType.HOPPER, MiniMessage.get().parse(Config.INITIAL_VILLAGER_WINDOW,
|
super(InventoryType.HOPPER, MiniMessage.get().parse(Config.INITIAL_VILLAGER_WINDOW,
|
||||||
Template.of("trader", villagerType.getDisplayName()),
|
Template.of("trader", villagerType.getDisplayName()),
|
||||||
Template.of("percentage", "100"))); //TODO get percentage from player somehow
|
Template.of("percentage", "100"))); //TODO get percentage from player somehow
|
||||||
setItem(1, BUY, player -> new BuyGUI(villagerType).open(player));
|
setItem(1, BUY, player -> new BukkitRunnable() {
|
||||||
setItem(3, SELL, player -> new SellGUI(villagerType).open(player));
|
@Override
|
||||||
|
public void run() {
|
||||||
|
BuyGUI buyGUI = new BuyGUI(villagerType);
|
||||||
|
new BukkitRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
buyGUI.open(player);
|
||||||
|
}
|
||||||
|
}.runTask(VillagerUI.getInstance());
|
||||||
|
}
|
||||||
|
}.runTaskAsynchronously(VillagerUI.getInstance()));
|
||||||
|
setItem(3, SELL, player -> new BukkitRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
SellGUI sellGUI = new SellGUI(villagerType);
|
||||||
|
new BukkitRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
sellGUI.open(player);
|
||||||
|
}
|
||||||
|
}.runTask(VillagerUI.getInstance());
|
||||||
|
}
|
||||||
|
}.runTaskAsynchronously(VillagerUI.getInstance()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.alttd.GUI.windows;
|
||||||
|
|
||||||
import com.alttd.GUI.GUIMerchant;
|
import com.alttd.GUI.GUIMerchant;
|
||||||
import com.alttd.config.Config;
|
import com.alttd.config.Config;
|
||||||
|
import com.alttd.objects.Price;
|
||||||
import com.alttd.objects.VillagerType;
|
import com.alttd.objects.VillagerType;
|
||||||
import com.alttd.util.Utilities;
|
import com.alttd.util.Utilities;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
|
|
@ -19,11 +20,14 @@ public class SellGUI extends GUIMerchant {
|
||||||
Template.of("trader", villagerType.getDisplayName()),
|
Template.of("trader", villagerType.getDisplayName()),
|
||||||
Template.of("percentage", "100")), villagerType); //TODO get percentage from player somehow
|
Template.of("percentage", "100")), villagerType); //TODO get percentage from player somehow
|
||||||
for (ItemStack itemStack : villagerType.getSelling()) {
|
for (ItemStack itemStack : villagerType.getSelling()) {
|
||||||
double price = Utilities.getWorth(itemStack);
|
Price price = Utilities.getPrice(itemStack);
|
||||||
|
if (price == null)
|
||||||
|
continue;
|
||||||
|
double money = price.getPrice(itemStack.getAmount());;
|
||||||
addItem(itemStack,
|
addItem(itemStack,
|
||||||
getPriceItem(price),
|
getPriceItem(money),
|
||||||
null,
|
null,
|
||||||
player -> player.sendMessage(MiniMessage.get().parse("Hi! you sold: " + itemStack.getAmount() + " " + itemStack.getType().name() + " for " + price + "."))
|
player -> player.sendMessage(MiniMessage.get().parse("Hi! you sold: " + itemStack.getAmount() + " " + itemStack.getType().name() + " for " + money + "."))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
package com.alttd.events;
|
package com.alttd.events;
|
||||||
|
|
||||||
import com.alttd.GUI.windows.OpenGUI;
|
import com.alttd.GUI.windows.OpenGUI;
|
||||||
|
import com.alttd.VillagerUI;
|
||||||
import com.alttd.objects.LoadedVillagers;
|
import com.alttd.objects.LoadedVillagers;
|
||||||
import com.alttd.objects.VillagerType;
|
import com.alttd.objects.VillagerType;
|
||||||
import org.bukkit.entity.Villager;
|
import org.bukkit.entity.Villager;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
public class VillagerInteract implements Listener {
|
public class VillagerInteract implements Listener {
|
||||||
|
|
||||||
|
|
@ -19,6 +21,17 @@ public class VillagerInteract implements Listener {
|
||||||
if (loadedVillager == null)
|
if (loadedVillager == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
new OpenGUI(loadedVillager).open(event.getPlayer());
|
new BukkitRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
OpenGUI openGUI = new OpenGUI(loadedVillager);
|
||||||
|
new BukkitRunnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
openGUI.open(event.getPlayer());
|
||||||
|
}
|
||||||
|
}.runTask(VillagerUI.getInstance());
|
||||||
|
}
|
||||||
|
}.runTaskAsynchronously(VillagerUI.getInstance());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user