Skip to content

Commit

Permalink
Merge pull request #105 from Tweetzy/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
kiranhart authored Oct 17, 2024
2 parents f45bf1b + 968cf4f commit a18e86a
Show file tree
Hide file tree
Showing 12 changed files with 242 additions and 66 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@

<name>Markets</name>
<description>A new take on traditional player owned shops</description>
<version>2.22.0</version>
<version>2.23.0</version>
<packaging>jar</packaging>

<properties>
<author>Kiran Hart</author>
<jarName>${project.name}</jarName>
<main.class>${project.groupId}.${project.artifactId}.${project.name}</main.class>
<java.version>16</java.version>
<flight.version>3.27.0</flight.version>
<flight.version>3.27.1</flight.version>
<flight.path>ca.tweetzy</flight.path>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Expand Down
23 changes: 19 additions & 4 deletions src/main/java/ca/tweetzy/markets/gui/shared/MarketsMainGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import ca.tweetzy.markets.Markets;
import ca.tweetzy.markets.api.market.core.Market;
import ca.tweetzy.markets.gui.MarketsBaseGUI;
import ca.tweetzy.markets.gui.shared.selector.ConfirmGUI;
import ca.tweetzy.markets.gui.shared.view.AllMarketsViewGUI;
import ca.tweetzy.markets.gui.shared.view.requests.RequestsGUI;
import ca.tweetzy.markets.gui.user.BankGUI;
Expand Down Expand Up @@ -56,10 +57,24 @@ protected void draw() {
return;
}

Markets.getMarketManager().create(this.player, created -> {
if (created)
click.manager.showGUI(click.player, new MarketsMainGUI(click.player));
});
if (Settings.USE_ADDITIONAL_CONFIRMS.getBoolean()) {
click.manager.showGUI(click.player, new ConfirmGUI(this, click.player, confirmed -> {
if (confirmed)
Markets.getMarketManager().create(this.player, created -> {
if (created)
click.manager.showGUI(click.player, new MarketsMainGUI(click.player));
});
else
click.manager.showGUI(click.player, new MarketsMainGUI(click.player));
}));

} else {
Markets.getMarketManager().create(this.player, created -> {
if (created)
click.manager.showGUI(click.player, new MarketsMainGUI(click.player));
});
}

return;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package ca.tweetzy.markets.gui.shared.selector;

import ca.tweetzy.flight.gui.Gui;
import ca.tweetzy.flight.settings.TranslationManager;
import ca.tweetzy.flight.utils.QuickItem;
import ca.tweetzy.markets.gui.MarketsBaseGUI;
import ca.tweetzy.markets.settings.Settings;
import ca.tweetzy.markets.settings.Translations;
import lombok.NonNull;
import org.bukkit.entity.Player;

import java.util.function.Consumer;

public final class ConfirmGUI extends MarketsBaseGUI {

private final Consumer<Boolean> confirmed;

public ConfirmGUI(Gui parent, @NonNull Player player, @NonNull final Consumer<Boolean> confirmed) {
super(parent, player, TranslationManager.string(Translations.GUI_CONFIRM_ACTION_TITLE), 3);
this.confirmed = confirmed;
setDefaultItem(QuickItem.bg(Settings.GUI_CONFIRM_ACTION_BACKGROUND.getItemStack()));
draw();
}

@Override
protected void draw() {

for (int i = 1; i < 4; i++) {
setButton(1, i, QuickItem
.of(Settings.GUI_CONFIRM_ACTION_ITEMS_YES.getString())
.name(TranslationManager.string(Translations.GUI_CONFIRM_ACTION_ITEMS_YES_NAME))
.lore(TranslationManager.list(Translations.GUI_CONFIRM_ACTION_ITEMS_YES_LORE))
.make(), click -> this.confirmed.accept(true));
}

for (int i = 5; i < 8; i++) {
setButton(1, i, QuickItem
.of(Settings.GUI_CONFIRM_ACTION_ITEMS_NO.getString())
.name(TranslationManager.string(Translations.GUI_CONFIRM_ACTION_ITEMS_NO_NAME))
.lore(TranslationManager.list(Translations.GUI_CONFIRM_ACTION_ITEMS_NO_LORE))
.make(), click -> this.confirmed.accept(false));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
import ca.tweetzy.markets.api.currency.AbstractCurrency;
import ca.tweetzy.markets.api.currency.IconableCurrency;
import ca.tweetzy.markets.gui.MarketsPagedGUI;
import ca.tweetzy.markets.impl.currency.FundsCurrency;
import ca.tweetzy.markets.impl.currency.ItemCurrency;
import ca.tweetzy.markets.impl.currency.VaultCurrency;
import ca.tweetzy.markets.settings.Settings;
import ca.tweetzy.markets.settings.Translations;
import lombok.NonNull;
Expand Down Expand Up @@ -97,17 +95,16 @@ protected ItemStack makeDisplayItem(AbstractCurrency currency) {
if (currency instanceof final IconableCurrency iconableCurrency)
quickItem = QuickItem.of(iconableCurrency.getIcon());

if (currency instanceof final FundsCurrency fundsCurrency) {
quickItem.name(fundsCurrency.getDisplayName());
} else {
quickItem.name(currency.getCurrencyName().equalsIgnoreCase("vault") ? "&a" + Settings.CURRENCY_VAULT_SYMBOL.getString() : "&e" + currency.getCurrencyName());
}

quickItem.lore(Replacer.replaceVariables(List.of(
"&7Owning Plugin&f: &e%currency_owning_plugin%",
"",
"&a&l%left_click% &7to select this currency"
), "currency_owning_plugin", currency.getOwningPlugin(), "left_click", TranslationManager.string(this.player, Translations.MOUSE_LEFT_CLICK)));
quickItem.name(TranslationManager.string(Translations.GUI_CURRENCY_PICKER_ITEMS_CURRENCY_NAME,
"currency_name", currency.getCurrencyName().equalsIgnoreCase("vault") ? Settings.CURRENCY_VAULT_SYMBOL.getString() : currency.getDisplayName(),
"currency_id", currency.getCurrencyName()
));

quickItem.lore(TranslationManager.list(Translations.GUI_CURRENCY_PICKER_ITEMS_CURRENCY_LORE,
"currency_owning_plugin", currency.getOwningPlugin(),
"left_click", TranslationManager.string(this.player, Translations.MOUSE_LEFT_CLICK)
));

return quickItem.make();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ protected void onClick(Request request, GuiClickEvent click) {
Common.tell(requestedOwner.getPlayer(), TranslationManager.string(requestedOwner.getPlayer(), Translations.REQUEST_FULFILLED, "fulfill_name", fulfiller.getName(), "request_item_name", ItemUtil.getItemName(request.getRequestItem())));
}

Common.tell(click.player, TranslationManager.string(Translations.REQUEST_FULFILLED_FILLER,
"request_item_name", ItemUtil.getItemName(request.getRequestItem()),
"fulfill_name", requestedOwner.getName()
));

// call transaction event
Bukkit.getServer().getPluginManager().callEvent(new MarketTransactionEvent(
fulfiller,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,28 @@
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public final class TransactionsGUI extends MarketsPagedGUI<Transaction> {

private final Player player;

public TransactionsGUI(Gui parent, @NonNull final Player player) {
super(parent, player, TranslationManager.string(player, Translations.GUI_TRANSACTIONS_TITLE), 6, Markets.getTransactionManager().getOfflineTransactionsFor(player.getUniqueId()));
super(parent, player, TranslationManager.string(player, Translations.GUI_TRANSACTIONS_TITLE), 6, new ArrayList<>(Markets.getTransactionManager().getManagerContent()));
this.player = player;
setAcceptsItems(true);
setDefaultItem(QuickItem.bg(Settings.GUI_TRANSACTIONS_BACKGROUND.getItemStack()));

draw();
}

@Override
protected void prePopulate() {
this.items.sort(Comparator.comparing(Transaction::getTimeCreated).reversed());
}

@Override
protected ItemStack makeDisplayItem(Transaction transaction) {
final ItemStack item = transaction.getItem();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import ca.tweetzy.markets.api.market.core.Market;
import ca.tweetzy.markets.api.market.core.MarketItem;
import ca.tweetzy.markets.gui.MarketsPagedGUI;
import ca.tweetzy.markets.gui.shared.selector.ConfirmGUI;
import ca.tweetzy.markets.gui.shared.view.content.MarketCategoryViewGUI;
import ca.tweetzy.markets.gui.shared.view.content.MarketViewGUI;
import ca.tweetzy.markets.gui.user.market.MarketOverviewGUI;
Expand Down Expand Up @@ -134,22 +135,48 @@ public boolean onResult(String string) {
.lore(TranslationManager.list(this.player, Translations.GUI_MARKET_CATEGORY_EDIT_ITEMS_DELETE_LORE))
.make(), click -> {

// remove items first if any
if (!this.category.getItems().isEmpty()) {
this.category.getItems().forEach(item -> item.getViewingPlayers().clear());
if (Settings.USE_ADDITIONAL_CONFIRMS.getBoolean()) {
click.manager.showGUI(click.player, new ConfirmGUI(this, click.player, confirmed -> {
if (!confirmed) {
click.manager.showGUI(click.player, new MarketCategoryEditGUI(click.player, this.market, this.category));
return;
}

Markets.getDataManager().deleteMarketItems(this.category, (error, itemResult) -> {
if (error == null && itemResult) {
this.category.getItems().forEach(item -> {
giveBackMarketItem(item);
Markets.getCategoryItemManager().remove(item);
});
// remove items first if any
if (!this.category.getItems().isEmpty()) {
this.category.getItems().forEach(item -> item.getViewingPlayers().clear());

Markets.getDataManager().deleteMarketItems(this.category, (error, itemResult) -> {
if (error == null && itemResult) {
this.category.getItems().forEach(item -> {
giveBackMarketItem(item);
Markets.getCategoryItemManager().remove(item);
});

performCategoryDeletion(click);
}
});
} else
performCategoryDeletion(click);
}
});
} else
performCategoryDeletion(click);
}));
} else {
// remove items first if any
if (!this.category.getItems().isEmpty()) {
this.category.getItems().forEach(item -> item.getViewingPlayers().clear());

Markets.getDataManager().deleteMarketItems(this.category, (error, itemResult) -> {
if (error == null && itemResult) {
this.category.getItems().forEach(item -> {
giveBackMarketItem(item);
Markets.getCategoryItemManager().remove(item);
});

performCategoryDeletion(click);
}
});
} else
performCategoryDeletion(click);
}
});
}

Expand Down Expand Up @@ -250,19 +277,40 @@ public boolean onResult(String string) {
case DROP -> {
// final MarketItem relocatedItem = Markets.getCategoryItemManager().getByUUID(marketItem.getId());

marketItem.unStore(result -> {
if (result != SynchronizeResult.SUCCESS)
return;
if (Settings.USE_ADDITIONAL_CONFIRMS.getBoolean()) {
click.manager.showGUI(click.player, new ConfirmGUI(this, click.player, confirmed -> {
if (!confirmed) return;

// close guis of other users
marketItem.getViewingPlayers().forEach(viewingUser -> {
click.manager.showGUI(viewingUser, new MarketCategoryViewGUI(viewingUser, this.market, this.category, false));
});
marketItem.unStore(result -> {
if (result != SynchronizeResult.SUCCESS)
return;

// give user the item or drop
giveBackMarketItem(marketItem);
reopen(click);
});
// close guis of other users
marketItem.getViewingPlayers().forEach(viewingUser -> {
click.manager.showGUI(viewingUser, new MarketCategoryViewGUI(viewingUser, this.market, this.category, false));
});

// give user the item or drop
giveBackMarketItem(marketItem);
reopen(click);
});
}));

} else {
marketItem.unStore(result -> {
if (result != SynchronizeResult.SUCCESS)
return;

// close guis of other users
marketItem.getViewingPlayers().forEach(viewingUser -> {
click.manager.showGUI(viewingUser, new MarketCategoryViewGUI(viewingUser, this.market, this.category, false));
});

// give user the item or drop
giveBackMarketItem(marketItem);
reopen(click);
});
}
}
}
}
Expand Down
Loading

0 comments on commit a18e86a

Please sign in to comment.