Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Market
- let getShopId = (block) => `${block.x}:${block.y}:${block.z}`;
- let getNmb = (str) => str.replace(/\D+/g, '');
- let getItemName = (str) => str.split(':')[1];
- let $DiamondUtilsApi = Java.loadClass('com.gmail.sneakdevs.diamondeconomy.DiamondUtils');
- BlockEvents.rightClicked(event => {
- let { server, player, item, block } = event;
- let dm = $DiamondUtilsApi.getDatabaseManager();
- // Init data
- if (!server.persistentData.shops) {
- server.persistentData.shops = {};
- }
- // Debug
- if (player.isOp() && block.id.indexOf('jukebox') !== -1 && item.id.indexOf('command_block') !== -1) {
- player.tell(Utils.server.persistentData.shops);
- return;
- }
- // Delete shop
- if (player.isOp() && block.id.indexOf('sign') !== -1 && item.id.indexOf('command_block') !== -1) {
- if (server.persistentData.shops[getShopId(block)]) {
- delete server.persistentData.shops[getShopId(block)];
- player.tell(`Shop was destroyed!`);
- return;
- }
- }
- if (block.id.indexOf('sign') !== -1) {
- let tradeAmount = JSON.parse(block.entityData.Text2).text;
- let tradePrice = JSON.parse(block.entityData.Text3).text.split(':');
- let shopID = getShopId(event.block);
- let isShopExists = !!server.persistentData.shops[shopID];
- let isAir = item.id.indexOf('minecraft:air') !== -1;
- let isShop = JSON.parse(block.entityData.Text1).text === 'shop';
- if (isShop) {
- // Create shop
- if (player.isOp() && !isShopExists && !isAir) {
- let entityData = event.block.entityData;
- entityData.GlowingText = 1;
- entityData.Color = 'orange';
- event.block.setEntityData(entityData);
- server.persistentData.shops[shopID] = {
- item: item.id,
- owner: player.name.string
- }
- player.tell(`Shop with ${getItemName(item.id)} was created!`);
- return;
- }
- if (item.id === server.persistentData.shops[shopID].item) {
- if (tradeAmount > item.count) {
- player.tell(`You have not enought items in hand to sell!`);
- return;
- }
- player.tell(`You sold ${tradeAmount} ${getItemName(item.id)} for $${getNmb(tradePrice[0])}`);
- player.inventory.extractItem(player.getSelectedSlot(), tradeAmount, false);
- dm.changeBalance(player.uuid, getNmb(tradePrice[0]));
- event.cancel();
- return;
- } else {
- player.tell(`Shop of ${getItemName(server.persistentData.shops[shopID].item)}`);
- }
- }
- }
- });
- BlockEvents.leftClicked(event => {
- let { server, player, item, block } = event;
- let dm = $DiamondUtilsApi.getDatabaseManager();
- if (block.id.indexOf('sign') !== -1) {
- let tradeAmount = JSON.parse(block.entityData.Text2).text;
- let isShop = JSON.parse(block.entityData.Text1).text === 'shop';
- let tradePrice = JSON.parse(block.entityData.Text3).text.split(':');
- let shopID = getShopId(event.block);
- let isShopExists = !!server.persistentData.shops[shopID];
- if (!isShop || !isShopExists) {
- return;
- }
- if (dm.getBalanceFromUUID(player.uuid) >= getNmb(tradePrice[1])) {
- player.tell(`You bought ${tradeAmount} ${getItemName(server.persistentData.shops[shopID].item)} for $${getNmb(tradePrice[1])}`);
- server.runCommandSilent(`give ${player.name.string} ${server.persistentData.shops[shopID].item} ${tradeAmount}`);
- dm.changeBalance(player.uuid, `-${getNmb(tradePrice[1])}`);
- } else {
- player.tell('You have not enough $. Check balance with /coins balance');
- }
- event.cancel();
- }
- });
- BlockEvents.broken(event => {
- let { server, player, item, block } = event;
- if (block.id.indexOf('sign') !== -1) {
- if (server.persistentData.shops[getShopId(block)]) {
- // server.persistentData.shops[getShopId(block)].item = null;
- player.tell(`Shop was destroyed!`);
- }
- }
- //remove shop
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement