Skip to content

Commit

Permalink
1.0.8: changed webstore workflow (required leaderos v5.5.9)
Browse files Browse the repository at this point in the history
  • Loading branch information
benfiratkaya committed Apr 28, 2024
1 parent 7d20c61 commit ce7bc8b
Show file tree
Hide file tree
Showing 12 changed files with 47 additions and 184 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -189,22 +189,6 @@ public static class WebStore extends OkaeriConfig {
@Setter
public static class Gui extends OkaeriConfig {

/**
* landing layout of gui
*/
@Comment({
"Layout of gui",
"c: Category",
"b: Prev Page",
"n: Next Page"
})
private List<String> landingGuiLayout = Arrays.asList(
" ",
" ccccc ",
" ",
"b n"
);

/**
* layout of gui
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,9 @@ public static String replacePlaceholders(String string, Placeholder... placehold
* @return converted string value
*/
public static String replacePlaceholders(String string) {
string = PlaceholderAPI.setPlaceholders(null, string);
if (org.bukkit.Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"))
string = PlaceholderAPI.setPlaceholders(null, string);

return color(string);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public void onEnable() {
// Loads all player data
User.loadAllPlayers();
// Placeholder loader
if( org.bukkit.Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"))
if (org.bukkit.Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"))
new Placeholders().register();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,16 @@ public void defaultCommand(Player player) {
RequestUtil.addRequest(player.getUniqueId());

org.bukkit.Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getInstance(), () -> {
Double amount = LeaderOSAPI.getCreditManager().get(player.getName());
if (amount == null)
amount = 0.00;
final Double amount = LeaderOSAPI.getCreditManager().get(player.getName());

ChatUtil.sendMessage(player, ChatUtil.replacePlaceholders(
Bukkit.getInstance().getLangFile().getMessages().getCredit().getCreditInfo(),
new Placeholder("{amount}", MoneyUtil.format(amount))
new Placeholder("{amount}", MoneyUtil.format(amount == null ? 0 : amount))
));

// Update cache
org.bukkit.Bukkit.getScheduler().runTask(Bukkit.getInstance(), () -> org.bukkit.Bukkit.getPluginManager().callEvent(new UpdateCacheEvent(player.getName(), amount == null ? 0 : amount, UpdateType.SET)));

RequestUtil.invalidate(player.getUniqueId());
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,6 @@ public class WebStoreModule extends LeaderOSModule {
*/
public void onEnable() {
Bukkit.getCommandManager().registerCommand(new WebStoreCommand());
try {
Category.loadAllCategories();
} catch (IOException | RequestException e) {
throw new RuntimeException(e);
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@
import net.leaderos.plugin.api.LeaderOSAPI;
import net.leaderos.plugin.api.managers.ModuleManager;
import net.leaderos.plugin.helpers.ChatUtil;
import net.leaderos.plugin.modules.webstore.gui.MainWebStoreGui;
import net.leaderos.plugin.modules.webstore.gui.WebStoreGui;
import net.leaderos.plugin.modules.webstore.helpers.WebStoreHelper;
import net.leaderos.plugin.modules.webstore.model.Category;
import net.leaderos.plugin.modules.webstore.model.Product;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

Expand All @@ -41,7 +39,7 @@ public void defaultCommand(Player player) {
if (Bukkit.getInstance().getModulesFile().getWebStore().getGui().getDefaultCategory().isEnable() && !categoryId.equals("0")) {
categoryCommand(player, categoryId);
} else {
MainWebStoreGui.showGui(player);
WebStoreGui.showGui(player, null);
}
}

Expand All @@ -58,7 +56,7 @@ public void categoryCommand(CommandSender sender, String categoryId) {

Player player = (Player) sender;

Category category = WebStoreHelper.findCategoryById(categoryId);
Category category = WebStoreHelper.findCategoryById(player.getName(), categoryId);

if (category == null) {
player.sendMessage(ChatUtil.color(Bukkit.getInstance().getLangFile().getGui().getWebStoreGui().getWebStoreCategoryNotFound()));
Expand All @@ -81,13 +79,6 @@ public void buyCommand(CommandSender sender, String productId) {

Player player = (Player) sender;

Product product = WebStoreHelper.findProductById(productId);

if (product == null) {
player.sendMessage(ChatUtil.color(Bukkit.getInstance().getLangFile().getGui().getWebStoreGui().getBuyWebStoreError()));
return;
}

WebStoreHelper.buyItem(player, product);
WebStoreHelper.buyItem(player, productId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public static StaticGuiElement confirmIcon(Player player, Product product, Inven
1,
click -> {
gui.close();
WebStoreHelper.buyItem(player, product);
WebStoreHelper.buyItem(player, product.getProductId());
return true;
}
);
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,15 @@
import de.themoep.inventorygui.GuiElementGroup;
import de.themoep.inventorygui.InventoryGui;
import de.themoep.inventorygui.StaticGuiElement;
import net.leaderos.plugin.api.handlers.UpdateCacheEvent;
import net.leaderos.plugin.api.managers.ModuleManager;
import net.leaderos.plugin.helpers.ChatUtil;
import net.leaderos.plugin.modules.cache.model.User;
import net.leaderos.plugin.modules.webstore.helpers.WebStoreHelper;
import net.leaderos.plugin.modules.webstore.model.Category;
import net.leaderos.plugin.Bukkit;
import net.leaderos.plugin.modules.webstore.model.Product;
import net.leaderos.plugin.helpers.GuiHelper;
import net.leaderos.plugin.helpers.MDChat.MDChatAPI;
import net.leaderos.shared.model.Response;
import net.leaderos.shared.model.request.PostRequest;
import net.leaderos.shared.modules.auth.AuthHelper;
import net.leaderos.shared.modules.credit.enums.UpdateType;
import org.bukkit.entity.Player;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.*;

/**
Expand Down Expand Up @@ -54,7 +45,7 @@ public static void showGui(Player player, Category categoryObj) {
List<Category> categoryList;
List<Product> productList;
if (categoryObj == null) {
categoryList = Category.getCategories();
categoryList = WebStoreHelper.getCategories(player.getName());
productList = new ArrayList<>();
} else {
categoryList = categoryObj.getSubCategories();
Expand Down Expand Up @@ -92,7 +83,6 @@ public static void showGui(Player player, Category categoryObj) {
double credit = user == null ? 0.00 : user.getCredit();
gui.addElement(GuiHelper.addCreditIcon(credit));


// Next and previous page icons
gui.addElement(GuiHelper.createNextPage(Bukkit.getInstance().getModulesFile().getWebStore().getGui().getNextPage().getItem()));
gui.addElement(GuiHelper.createPreviousPage(Bukkit.getInstance().getModulesFile().getWebStore().getGui().getPreviousPage().getItem()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,25 @@
import net.leaderos.plugin.helpers.ChatUtil;
import net.leaderos.plugin.helpers.MDChat.MDChatAPI;
import net.leaderos.plugin.modules.cache.model.User;
import net.leaderos.plugin.modules.webstore.model.Product;
import net.leaderos.shared.error.Error;
import net.leaderos.shared.helpers.RequestUtil;
import net.leaderos.shared.model.Response;
import net.leaderos.shared.model.request.GetRequest;
import net.leaderos.shared.model.request.impl.store.BuyRequest;
import net.leaderos.shared.model.request.impl.store.ListingRequest;
import net.leaderos.shared.modules.auth.AuthHelper;
import net.leaderos.shared.modules.credit.enums.UpdateType;
import net.leaderos.plugin.modules.webstore.model.Category;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Nullable;
import org.json.JSONArray;
import org.json.JSONObject;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.List;

public class WebStoreHelper {
public static void buyItem(Player player, Product product) {
public static void buyItem(Player player, String productId) {
if (RequestUtil.canRequest(player.getUniqueId())) {

RequestUtil.addRequest(player.getUniqueId());
Expand All @@ -41,20 +41,16 @@ public static void buyItem(Player player, Product product) {
org.bukkit.Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getInstance(), () -> {
// Buy progress
try {
Response buyRequest = new BuyRequest(user.getId(), product.getProductId()).getResponse();
if (user == null) {
ChatUtil.sendMessage(player, Bukkit.getInstance().getLangFile().getGui().getWebStoreGui().getBuyWebStoreUserNotFound());
RequestUtil.invalidate(player.getUniqueId());
return;
}

Response buyRequest = new BuyRequest(user.getId(), productId).getResponse();
if (buyRequest.getResponseCode() == HttpURLConnection.HTTP_OK) {
JSONObject responseData = buyRequest.getResponseMessage().getJSONObject("data");

// Update Stock
JSONArray products = responseData.getJSONArray("products");
for (int i = 0; i < products.length(); i++) {
JSONObject productData = products.getJSONObject(i);
if (productData.getString("id").equals(product.getProductId())) {
product.setStock(productData.getInt("stock"));
break;
}
}

// Calls UpdateCache event for update player's cache
double credits = responseData.getDouble("credits");
org.bukkit.Bukkit.getScheduler().runTask(Bukkit.getInstance(), () -> org.bukkit.Bukkit.getPluginManager().callEvent(new UpdateCacheEvent(player.getName(), credits, UpdateType.SET)));
Expand Down Expand Up @@ -101,40 +97,21 @@ else if (buyRequest.getError() == Error.REQUIRED_PRODUCT)
}
}

public static Product findProductById(String productId) {
List<Category> categories = Category.getCategories();

for (Category category : categories) {
Product foundProduct = findProductByIdRecursive(productId, category);
if (foundProduct != null) {
return foundProduct;
}
}
return null;
}

private static Product findProductByIdRecursive(String productId, Category category) {
// Check if the product is in this category
for (Product product : category.getProductList()) {
if (product.getProductId().equalsIgnoreCase(productId)) {
return product;
}
}

// Check if the product is in any sub-category
for (Category subCategory : category.getSubCategories()) {
Product foundProduct = findProductByIdRecursive(productId, subCategory);
if (foundProduct != null) {
return foundProduct;
}
}

// Product not found
return null;
public static List<Category> getCategories(String username) {
List<Category> categories = new ArrayList<>();
try {
GetRequest getRequest = new ListingRequest(username);
JSONObject response = getRequest.getResponse().getResponseMessage();
response.getJSONArray("categories").forEach(jsonObj -> {
categories.add(new Category((JSONObject) jsonObj));
});
} catch (Exception ignore) {}

return categories;
}

public static Category findCategoryById(String categoryId) {
List<Category> categories = Category.getCategories();
public static Category findCategoryById(String username, String categoryId) {
List<Category> categories = getCategories(username);

for (Category category : categories) {
Category foundCategory = findCategoryByIdRecursive(categoryId, category);
Expand Down
Loading

0 comments on commit ce7bc8b

Please sign in to comment.