shop
This commit is contained in:
parent
ff2aec18c1
commit
2c9727e99e
7 changed files with 64 additions and 57 deletions
|
@ -1,20 +1,19 @@
|
||||||
package me.night.nullvalkyrie.commands;
|
package me.night.nullvalkyrie.commands;
|
||||||
|
|
||||||
|
import me.night.nullvalkyrie.database.ShopDataManager;
|
||||||
import me.night.nullvalkyrie.items.CustomItemManager;
|
import me.night.nullvalkyrie.items.CustomItemManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ShopCommand extends Command {
|
public class ShopCommand extends Command {
|
||||||
private final FileConfiguration file = CustomItemManager.loadConfig("shop.yml");
|
|
||||||
|
|
||||||
public ShopCommand() {
|
public ShopCommand() {
|
||||||
super("7elven",
|
super("7elven",
|
||||||
new String[]{"711", "seven", "7ven"},
|
new String[]{"711", "seven", "7ven"},
|
||||||
|
@ -27,11 +26,12 @@ public class ShopCommand extends Command {
|
||||||
public void onCommand(CommandSender sender, String[] args) {
|
public void onCommand(CommandSender sender, String[] args) {
|
||||||
Inventory inv = Bukkit.createInventory(null, 45, ChatColor.GREEN + "7-Eleven 24/7");
|
Inventory inv = Bukkit.createInventory(null, 45, ChatColor.GREEN + "7-Eleven 24/7");
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (String c : file.getKeys(false)) {
|
HashMap<String, Integer> list = ShopDataManager.getItems();
|
||||||
ItemStack item = CustomItemManager.produceItem(file.getString(c + ".name")).clone();
|
for (String c : list.keySet()) {
|
||||||
|
ItemStack item = CustomItemManager.produceItem(c).clone();
|
||||||
ItemMeta itemMeta = item.getItemMeta();
|
ItemMeta itemMeta = item.getItemMeta();
|
||||||
List<String> lore = itemMeta.getLore();
|
List<String> lore = itemMeta.getLore();
|
||||||
lore.add("Price (BIN): " + file.getString(c + ".price"));
|
lore.add("Price (BIN): " + list.get(c));
|
||||||
itemMeta.setLore(lore);
|
itemMeta.setLore(lore);
|
||||||
item.setItemMeta(itemMeta);
|
item.setItemMeta(itemMeta);
|
||||||
inv.setItem(counter, item);
|
inv.setItem(counter, item);
|
||||||
|
|
|
@ -1,58 +1,25 @@
|
||||||
package me.night.nullvalkyrie.database;
|
package me.night.nullvalkyrie.database;
|
||||||
|
|
||||||
import com.mongodb.client.*;
|
import com.mongodb.client.*;
|
||||||
import com.mongodb.client.model.Filters;
|
|
||||||
import me.night.nullvalkyrie.Main;
|
import me.night.nullvalkyrie.Main;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
import org.bson.conversions.Bson;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
public class DatabaseManager {
|
public class DatabaseManager {
|
||||||
private static MongoCollection<Document> users;
|
public static MongoCollection<Document> users;
|
||||||
public static MongoCollection<Document> custom_weapons;
|
public static MongoCollection<Document> custom_weapons;
|
||||||
public static MongoCollection<Document> ranks;
|
public static MongoCollection<Document> ranks;
|
||||||
public static MongoCollection<Document> npcs;
|
public static MongoCollection<Document> npcs;
|
||||||
public static MongoCollection<Document> miners;
|
public static MongoCollection<Document> miners;
|
||||||
public MongoClient client;
|
public static MongoCollection<Document> shops;
|
||||||
public static MongoDatabase database;
|
public static MongoDatabase database;
|
||||||
|
|
||||||
public DatabaseManager() {
|
public DatabaseManager() {
|
||||||
this.client = MongoClients.create(Main.env.get("MONGODB_URI"));
|
database = MongoClients.create(Main.env.get("MONGODB_URI")).getDatabase("NullValkyrie");
|
||||||
database = client.getDatabase("NullValkyrie");
|
|
||||||
users = database.getCollection("users");
|
users = database.getCollection("users");
|
||||||
custom_weapons = database.getCollection("custom_weapons");
|
custom_weapons = database.getCollection("custom_weapons");
|
||||||
ranks = database.getCollection("ranks");
|
ranks = database.getCollection("ranks");
|
||||||
npcs = database.getCollection("npcs");
|
npcs = database.getCollection("npcs");
|
||||||
miners = database.getCollection("miners");
|
miners = database.getCollection("miners");
|
||||||
}
|
shops = database.getCollection("shops");
|
||||||
|
|
||||||
public static void createUserSchema(String username) {
|
|
||||||
Document document = new Document();
|
|
||||||
document.put("Username", username);
|
|
||||||
document.put("Bank", 0);
|
|
||||||
users.insertOne(document);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateUserBank(String username, Number coins) {
|
|
||||||
Document document = users.find(new Document("Username", username)).first();
|
|
||||||
if (document != null) {
|
|
||||||
Bson updated = new Document("Bank", coins);
|
|
||||||
Bson update = new Document("$set", updated);
|
|
||||||
users.updateOne(document, update);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static HashMap<String, Object> getUser(String username) {
|
|
||||||
try (MongoCursor<Document> cursor = users.find(Filters.eq("Username", username)).cursor()) {
|
|
||||||
while (cursor.hasNext()) {
|
|
||||||
Document doc = cursor.next();
|
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
|
||||||
for (String key : doc.keySet()) map.put(key, doc.get(key));
|
|
||||||
map.remove("_id");
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package me.night.nullvalkyrie.database;
|
||||||
|
|
||||||
|
import com.mongodb.client.MongoCursor;
|
||||||
|
import org.bson.Document;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class ShopDataManager {
|
||||||
|
public static HashMap<String, Integer> getItems() {
|
||||||
|
HashMap<String, Integer> list = new HashMap<>();
|
||||||
|
try (MongoCursor<Document> cursor = DatabaseManager.shops.find().cursor()) {
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
Document doc = cursor.next();
|
||||||
|
list.put(doc.getString("Name"), doc.getInteger("Price"));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,38 @@
|
||||||
package me.night.nullvalkyrie.database;
|
package me.night.nullvalkyrie.database;
|
||||||
|
|
||||||
|
import com.mongodb.client.MongoCursor;
|
||||||
|
import com.mongodb.client.model.Filters;
|
||||||
|
import org.bson.Document;
|
||||||
|
import org.bson.conversions.Bson;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class UserDataManager {
|
public class UserDataManager {
|
||||||
|
public static void createUserSchema(String username) {
|
||||||
|
Document document = new Document();
|
||||||
|
document.put("Username", username);
|
||||||
|
document.put("Bank", 0);
|
||||||
|
DatabaseManager.users.insertOne(document);
|
||||||
|
}
|
||||||
|
public void updateUserBank(String username, Number coins) {
|
||||||
|
Document document = DatabaseManager.users.find(new Document("Username", username)).first();
|
||||||
|
if (document != null) {
|
||||||
|
Bson updated = new Document("Bank", coins);
|
||||||
|
Bson update = new Document("$set", updated);
|
||||||
|
DatabaseManager.users.updateOne(document, update);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap<String, Object> getUser(String username) {
|
||||||
|
try (MongoCursor<Document> cursor = DatabaseManager.users.find(Filters.eq("Username", username)).cursor()) {
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
Document doc = cursor.next();
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
for (String key : doc.keySet()) map.put(key, doc.get(key));
|
||||||
|
map.remove("_id");
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
import static me.night.nullvalkyrie.database.DatabaseManager.createUserSchema;
|
import static me.night.nullvalkyrie.database.UserDataManager.createUserSchema;
|
||||||
|
|
||||||
public class ScoreboardListener implements Listener {
|
public class ScoreboardListener implements Listener {
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,5 @@ import static me.night.nullvalkyrie.items.CustomItemManager.updateYamlFilesToPlu
|
||||||
public class FileManager {
|
public class FileManager {
|
||||||
public FileManager() {
|
public FileManager() {
|
||||||
updateYamlFilesToPlugin(".env");
|
updateYamlFilesToPlugin(".env");
|
||||||
updateYamlFilesToPlugin("shop.yml");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
SnowGun:
|
|
||||||
name: Snow Gun
|
|
||||||
price: 200
|
|
||||||
Terminator:
|
|
||||||
name: Terminator
|
|
||||||
price: 300
|
|
||||||
ExplosiveBow:
|
|
||||||
name: Explosive Bow
|
|
||||||
price: 250
|
|
||||||
GrapplingHook:
|
|
||||||
name: Grappling Hook
|
|
||||||
price: 400
|
|
Loading…
Reference in a new issue