Package com.Acrobot.ChestShop.Listeners.PostTransaction

Source Code of com.Acrobot.ChestShop.Listeners.PostTransaction.TransactionMessageSender

package com.Acrobot.ChestShop.Listeners.PostTransaction;

import com.Acrobot.Breeze.Utils.InventoryUtil;
import com.Acrobot.Breeze.Utils.MaterialUtil;
import com.Acrobot.ChestShop.Commands.Toggle;
import com.Acrobot.ChestShop.Configuration.Messages;
import com.Acrobot.ChestShop.Configuration.Properties;
import com.Acrobot.ChestShop.Economy.Economy;
import com.Acrobot.ChestShop.Events.TransactionEvent;
import com.Acrobot.ChestShop.UUIDs.NameManager;
import com.google.common.base.Joiner;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;

import java.util.UUID;

/**
* @author Acrobot
*/
public class TransactionMessageSender implements Listener {
    @EventHandler(priority = EventPriority.MONITOR)
    public static void onTransaction(TransactionEvent event) {
        if (event.getTransactionType() == TransactionEvent.TransactionType.BUY) {
            sendBuyMessage(event);
        } else {
            sendSellMessage(event);
        }
    }

    protected static void sendBuyMessage(TransactionEvent event) {
        String itemName = parseItemInformation(event.getStock());
        String owner = NameManager.getUsername(event.getOwner().getUniqueId());

        Player player = event.getClient();

        String price = Economy.formatBalance(event.getPrice());

        if (Properties.SHOW_TRANSACTION_INFORMATION_CLIENT) {
            String message = formatMessage(Messages.YOU_BOUGHT_FROM_SHOP, itemName, price);
            message = message.replace("%owner", owner);

            player.sendMessage(message);
        }

        if (Properties.SHOW_TRANSACTION_INFORMATION_OWNER && !Toggle.isIgnoring(event.getOwner())) {
            String message = formatMessage(Messages.SOMEBODY_BOUGHT_FROM_YOUR_SHOP, itemName, price);
            message = message.replace("%buyer", player.getName());

            sendMessageToOwner(message, event);
        }
    }

    protected static void sendSellMessage(TransactionEvent event) {
        String itemName = parseItemInformation(event.getStock());
        String owner = NameManager.getUsername(event.getOwner().getUniqueId());

        Player player = event.getClient();

        String price = Economy.formatBalance(event.getPrice());

        if (Properties.SHOW_TRANSACTION_INFORMATION_CLIENT) {
            String message = formatMessage(Messages.YOU_SOLD_TO_SHOP, itemName, price);
            message = message.replace("%buyer", owner);

            player.sendMessage(message);
        }

        if (Properties.SHOW_TRANSACTION_INFORMATION_OWNER && !Toggle.isIgnoring(event.getOwner())) {
            String message = formatMessage(Messages.SOMEBODY_SOLD_TO_YOUR_SHOP, itemName, price);
            message = message.replace("%seller", player.getName());

            sendMessageToOwner(message, event);
        }
    }

    private static String parseItemInformation(ItemStack[] items) {
        ItemStack[] stock = InventoryUtil.mergeSimilarStacks(items);

        StringBuilder message = new StringBuilder(15);
        Joiner joiner = Joiner.on(' ');

        for (ItemStack item : stock) {
            joiner.appendTo(message, item.getAmount(), MaterialUtil.getName(item));
        }

        return message.toString();
    }

    private static void sendMessageToOwner(String message, TransactionEvent event) {
        UUID owner = event.getOwner().getUniqueId();

        Player player = Bukkit.getPlayer(owner);

        if (player != null) {
            player.sendMessage(message);
        }
    }

    private static String formatMessage(String message, String item, String price) {
        return Messages.prefix(message)
                .replace("%item", item)
                .replace("%price", price);
    }
}
TOP

Related Classes of com.Acrobot.ChestShop.Listeners.PostTransaction.TransactionMessageSender

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.