TradeMe with API to create custom trades

SpigotVIP TradeMe with API to create custom trades 2017-05-17

TradeMe with API to create custom trades
About:
User friendly trading plugin. What else to say about it :) You can trade items, money, exp, McMMO, Jobs exp, Jobs points, GriefPrevention blocks, PlayerPoints, MyPet pets, Kingdoms resource points or even Residence with other players. Includes API to support 3rd party plugins injecting custom trade modes. Example code can be found over GitHub

Why did I created this:
I know that there is bunch of trading plugins out there. But none of them doing what it suppose to do. Some of them lets you trade only with items, some of them lets you add money, but they doing it in really funky way I might say... And none of them offering exp trade. Not talking about Residence, mcmmo or jobs exp trading.

Requirements:
Java 7 and up
Minecraft 1.7.10/1.8/1.9 can work from 1.6.4 but not fully tested.


Optional:
Vault
- for economy support
McMMO - for mcmmo exp trading support
Jobs - for jobs exp trading support
Residence - for residence trading support
GriefPrevention - For trading with GP blocks
PlayerPoints - For trading with player points
MyPet - For trading with your pets
Kingdoms - For trading with kingdoms resource points

pvz.png

2.0.0.0

Features:
  • Lightweight
  • Have API for custom trade modes
  • Very easy to use
  • Multi-world support
  • Dynamic trade window depending on users permissions
  • Item trade fields dynamic variations from 12 to 20 fields
  • Trading with Items (optional)
  • Trading with Money (optional)
  • Trading with Exp (optional)
  • Trading with McMMO exp (optional)
  • Trading with Jobs exp (optional)
  • Trading with Residence (optional)
  • Trading with GriefPrevention blocks (optional)
  • Trading with PlayerPoints (optional)
  • Trading with MyPet pets (optional)
  • Trading with Kingdoms resource points (optional)
  • Option to limit trading based by both players permission groups
  • Supports taxes being taken after trades.
  • Supports Shift clicking
  • With sounds to be even more friendly
  • By default players have 8 different amount values to play around: 1, 10, 100, 1000, 10 000, 100 000, 1 000 000, 10 000 000
  • By holding shift, while changing amount, will multiply amount 10 times!
  • Trading logging into SqLite/Mysql data bases
  • WorldGuard support
  • Vanished players support
  • Dynamic trade window, will change according of users permissions!
  • Option to have simple trade window with simple -s variable
  • Shift + Right click to offer trade
  • Possibility to accept trade by clicking on chat message!
  • Accept counter to prevent last second changes
  • Action bar messages on money/exp/mcmmo offer change.
  • Any changes will reset accept buttons for both sides, so no cheating
  • Option to lock QuickBar to prevent trades from it (Some plugins uses it, like spells)
  • Detailed feedback after trade with how much money/exp/mcmmo you got and item list.
  • Customizable trade distance
  • Prevent trades between different game modes
  • Prevent trades between worlds
  • Possible to set up black listed worlds for trade
  • Option for each player to block trade offers from player
  • Option for each player to block all trade offers
  • Admins can start, by force (Luke use your force...), trade between 2 players
  • Item black list support
  • All messages are customizable
  • Customizable money/exp/mcmmo increments
  • All "Buttons" are customizable
  • Permissions to bypass blocked worlds, players, trading between worlds or global player trading block.
Code (Text):

# Shows if there is available new version on login with trademe.versioncheck permission node
ShowNewVersion: true
DataBase:
# Do you want to use Mysql database system or SQLite
# Use: mysql or sqlite
DataBaseType: mysql
# Not usable if sqlite file system chosen
# Usually localhost or 127.0.0.1
mysqlHost: localhost
# Default port is 3306
mysqlPort: 3306
# Database table name
mysqlDatabase: trademe
# Database username, usually its root
mysqlUsername: root
# Your mysql database password, keep it as strong as posible
mysqlPassword: reallyStrongOne
# Language file you want to use
Language: EN
#
# This will allow you to globaly disable trades with specific modes
# You can always give or take trade options with permission like trademe.moneytrade or trademe.exptrade
TradeModes:
ItemTrade: true
MoneyTrade: true
ExpTrade: true
McMMOTrade: true
JobsTrade: true
JobsPointsTrade: true
ResidenceTrade: true
GriefPreventionTrade: true
PlayerPointsTrade: true
MyPetTrade: true
#
# Time to accept trade, in seconds
AcceptDelay: 15
#
# Time until counter ends, in seconds
Confirm: 3
#
# Time in sec for how long after combat player can't trade
NonCombat: 10
#
# When this set to true, players can give trade offers or accept them by sneeking and pressing right mouse button on a player
ShiftRightClick: true
#
# You can lock quickbar and prevent players from trading from it
LockQuickBar: false
#
# Prevent trading between game modes
NoTradeBetweenGameModes: true
#
# If this set to true, players will be check for appropriate trade permissions between different permission groups for particular trade mode
# Player should have trademe.moneytrade.[groupname] permission node to trade with that group with money
# In example: player1 has Newbie group and player2 - Advanced group
# player1 should have trademe.moneytrade.advanced and player2 should have trademe.moneytrade.newbie permission nodes for option to trade with money
# Posible nodes: trademe.moneytrade.[groupname], trademe.exptrade.[groupname], trademe.mcmmotrade.[groupname], trademe.jobstrade.[groupname], trademe.residencetrade.[groupname]
TradeGroups: false
#
# While this is true, Distance wont work
BetweenWorlds: true
#
# World groups to separate trades if you have multiverse or similar plugin
WorldGroups:
Group1:
- World
- World_nether
- World_the_end
Group2:
- ''
Group3:
- ''
Group4:
- ''
Group5:
- ''
# Max distance players can trade to each other, BetweenWorlds should be set to false for this to work
# Set 0 if you dont want to have distance restriction
Distance: 0
AutoPurge:
Use: false
# Set for how long to keep trade information in database by minutes
# 43200 = 30 days
# 20160 = 14 days
# 10080 = 7 days
# 1440 = 24 hours
TimeRange: 43200
Residence:
# Do you want to use residence max limit
# With this set to false players can have more residences than its been set up in residence config file
UseMaxLimit: true
Regions:
# You can set in witch regions players can trade or cannot
WorldGuard:
Allow:
Use: false
List:
- testRegion
- testRegion2
Deny:
use: false
List:
- testRegion3
- testRegion4
BlockedWorlds:
- testWorld
- testWorld_nether
# List of item id's to be blocked from trade
BlockedItems:
- 137
- 166
# List of item lore to be blocked from trade
# this can be only part of line without color codes
BlockedLore:
- One line of lore
- second line
- color code not necessary
# This should be same as in McMMO experiance.yml file
McMMO:
base: 1020
multiplier: 20
Numbers:
ShortNames:
# With this enabled big numbers will be shortened from 1234567 to 1m or 1.23m
Enabled: false
# With this enabled numbers will be shown like 1.23m instead of only 1m
Show2Numbers: true
'1000': k
'1000000': m
'1000000000': b
'1000000000000': t
Amounts:
# All amounts used for buttons to increase/decrease
# Inform players about posibility to use Shift button to rise increment by 10 times
Money:
'1': 1
'2': 100
'3': 10000
'4': 1000000
Exp:
'1': 1
'2': 100
'3': 10000
'4': 1000000
McMMO:
'1': 1
'2': 100
'3': 10000
'4': 1000000
Jobs:
'1': 1
'2': 100
'3': 10000
'4': 1000000
JobsPoints:
'1': 1
'2': 100
'3': 10000
'4': 1000000
GriefPrevention:
'1': 1
'2': 100
'3': 10000
'4': 1000000
PlayerPoints:
'1': 1
'2': 100
'3': 10000
'4': 1000000
Taxes:
# Taxes for transfers
Money:
Fixed:
# Fixed amount of Money will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of Money will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
# Taxes for transfers
Exp:
Fixed:
# Fixed amount of Exp will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of Exp will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
# Taxes for transfers
McMMO:
Fixed:
# Fixed amount of McMMO will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of McMMO will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
# Taxes for transfers
Jobs:
Fixed:
# Fixed amount of Jobs will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of Jobs will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
# Taxes for transfers
JobsPoints:
Fixed:
# Fixed amount of JobsPoints will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of JobsPoints will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
# Taxes for transfers
GriefPrevention:
Fixed:
# Fixed amount of GriefPrevention will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of GriefPrevention will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
# Taxes for transfers
PlayerPoints:
Fixed:
# Fixed amount of PlayerPoints will be taken during transfer
Use: false
Amount: 100
Percentage:
# Percentage amount of PlayerPoints will be taken during transfer
# 10.0 means user will receive 10% less money
Use: false
Amount: 10
Buttons:
Confirm:
# Id/meta used for confirm button
Confirmed:
Id: 160
Meta: 5
UnConfirmed:
Id: 160
Meta: 14
Counter:
# Id/meta used for column counter buttons
ColumnOn:
Id: 160
Meta: 5
ColumnOff:
Id: 160
Meta: 15
# Filled up when iten trading is turned off
ItemFields:
........................................
Debug: false



Code (Text):

Prefix: '&e[&aTradeMe&e] '
GotOffer: '&6[playername] &ewants to trade with you. &6/trade accept'
ClickToAccept: '&6Click to accept offer!'
MadeOffer: '&eYou have sent a trade offer to &6[playername]&e. They have &6[time]&e
seconds to accept.'
NoRequests: '&eYou dont have any pending trade requests!'
CanceledTrade: '&e[playername] canceled the trade!'
YouCanceledTrade: '&eYou canceled trade!'
Deny: '&eTrade request was declined!'
DenyForSender: '&eYour trade request was declined!'
BlockedWorldSender: '&eYour world is blacklisted for trading!'
BlockedWorldTarget: '&eTarget world is blacklisted for trading!'
DifferentGameMode: '&eYou cannot trade with player that are in other gamemodes!'
BetweenWorlds: '&eCant trade between worlds!'
ToFar: '&ePlayer is to far away from you! Max distance is &6[distance] &eblocks'
StillInCombat: '&ePlayer [player] is still in combat, please wait [time] seconds before
trading!'
InvIsOpen: '&6[player] &ahas their inventory opened, please wait until they close
it'
CantTradeDifGroup: '&cCant trade with different player group'
CantTradeOverServers: '&cCan''t trade between these 2 servers: [server1] - > [server2]'
NotOnline: '&ePlayer [playername] is not online!'
Vanished: '&ePlayer [playername] is not online!'
AddedToBlockList: '&6[playername] &ewas added to your trade block list!'
RemovedFromBlockList: '&6[playername] &ewas removed from your trade block list!'
Blocked: '&6[playername] &ehas you in their block list!'
NotAccepting: '&6[playername] &eis not accepting any trades!'
ToggledOn: '&eYou are now accepting trade offers!'
ToggledOff: '&eYou are no longer accepting any trades offers!'
BlacklistedItem: '&4This item is blacklisted!'
AlreadyTrading: '&e[playername] is already trading with someone!'
PendingRequest: '&eYou already have a pending request! Wait &6[time] &esec.'
AlreadyRequested: '&eSomeone is already offering them a trade! Wait &6[time] &esec'
Successful: '&2Trade was successful!'
Nopermission: '&4You dont have permission for this!'
NoTargetpermission: '&4Target doesn''t have permission for this!'
ConfigUpdate: '&eConfig file updated for &6[path] &ewith &6[variable]&e!'
Reload: '&eConfiguration files was reloaded!'
Taxes:
Mein: ' Taxes:'
BothEnabled: ' &'
Fixed: ' [amount]'
Percentage: ' [amount]% ([takenamount])'
Left: (&4 [amount] &e)
Decline:
Name: '&eClick to decline'
Lore:
- ''
Accept:
Name: '&2Click to Accept offer'
Lore:
- ''
Accepted:
Name: '&eAccepted your offer'
Lore:
- ''
Waiting:
Name: '&2Still hasn''t accepted your offer'
Lore:
- ''
Item:
Got: '&eYou have received: &6[itemlist]'
YourInvFull: '&eYour inventory doesn''t have enough free space'
TargetInvFull: '&f[player] &einventory doesn''t have enough free space'
Money:
Button:
Name: '&2Money increment by &6[amount]'
Lore:
- '&eLeft click to add'
- '&eRight click to take'
- '&eHold shift to increase 10 times'
- '&eMaximum available: &6[balance]'
- '&eCurrent money offer: &6[offer] [taxes]'
ToggleButton:
Name: '&2Toggle to money offer'
Lore:
- '&eCurent money offer: &6[amount] [taxes]'
OfferedButton:
Name: '&2[player]''s money offer'
Lore:
- '&eCurent money offer: &6[amount] [taxes]'
Error: '&e[playername] doesn''t have enough money!'
Limit: '&eYou dont have enough money! Amount was set to maximum you can trade: &6[amount]'
InLoanTarget: '&eYour offered money amount is to low to get &6[playername] &eout
of loan! offer atleast &6[amount]'
InLoanYou: '&6[playername] &eoffered money amount is to low to get you out of loan!'
Got: '&eYou have received &6[amount] &emoney'
ChangedOffer: '&6[playername] &ehas changed their money offer to: &6[amount]'
Exp:
Button:
Name: '&2Exp increment by &6[amount]'
Lore:
- '&eLeft click to add'
- '&eRight click to take'
- '&eHold shift to increase 10 times'
- '&eMaximum available: &6[balance]'
- '&eCurrent exp offer: &6[offer] [taxes]'
- '&eYou will be left with &6[sourcelevel] &elevels and &6[sourceexp] &eexp'
- '&eTarget player will be at &6[targetlevel] &eand have &6[targetexp] &eexp'
ToggleButton:
Name: '&2Toggle to exp offer'
Lore:
- '&eCurent exp offer: &6[amount] [taxes]'
- '&eYou will be left with &6[sourcelevel] &elevels and &6[sourceexp] &eexp'
- '&eTarget player will be at &6[targetlevel] &eand have &6[targetexp] &eexp'
OfferedButton:
Name: '&2[player]''s exp offer'
Lore:
- '&eCurent exp offer: &6[amount] [taxes]'
- '&e[player] will be left with &6[sourcelevel] &elevels and &6[sourceexp] &eexp'
- '&eYou will be at &6[targetlevel] &eand have &6[targetexp] &eexp'
Error: '&e[playername] doesn''t have enough exp!'
Limit: '&eYou dont have enough exp! Amount was set to maximum you can trade: &6[amount]'
ChangedOffer: '&6[playername] &ehas changed their exp offer to: &6[amount]'
Got: '&eYou have received &6[amount] &eexp'
JobsPoints:
Button:
Name: '&2JP increment by &6[amount]'
Lore:
- '&eLeft click to add'
- '&eRight click to take'
- '&eHold shift to increase 10 times'
- '&eMaximum available: &6[balance]'
- '&eCurrent exp offer: &6[offer] [taxes]'
- '&eYou will be left with &6[sourcepoints] &epoints'
- '&eTarget player will be at &6[targetpoints] &epoints'
ToggleButton:
Name: '&2Toggle to Jobs Points offer'
Lore:
- '&eCurent JP offer: &6[amount] [taxes]'
- '&eYou will be left with &6[sourcepoints] &epoints'
- '&eTarget player will be at &6[targetpoints] &epoints'
OfferedButton:
Name: '&2[player]''s JP offer'
Lore:
.................................................


Commands:
/Trade -
Shows all possible commands and information
/Trade [playername] [-s] - Sends trade offer
/Trade accept - Accept to currently pending trade request
/Trade deny - Refuses trade request
/Trade block [playername] - Blocks trade requests from player (per user)
/Trade toggle - Toggles global trade accepts (per user)
/Trade force [playername] [playername] [-s]- Starts trade between 2 players
/Trade reload - Reloads config file



Permisions:
By default regular user will have access to accept, deny, block, toggle and of course /trade [username] commands.

trademe.trade - gives access to trade offer and accept in general. By default its given for all players.

trademe.commandoffer - allow to give trade offer with command (given by default)
trademe.shiftoffer - allow to give trade offer by shift clicking
trademe.command.accept - /trade accept
trademe.command.deny - /trade deny
trademe.command.block - /trade block
trademe.command.toggle - /trade toggle
trademe.command.reload - /trade reload
trademe.command.force - /trade force
trademe.command.set - /trade set
trademe.command.purge - /trade purge
trademe.command.log - /trade log

trademe.logothers - Access to logs of other people

trademe.moneytrade - gives permission to trade with money
trademe.moneytrade.[group] - gives permission to trade with money with particular permission group if TradeGroups enabled in config file.

trademe.exptrade - gives permission to trade with exp
trademe.exptrade.[group] - gives permission to trade with exp with particular permission group if TradeGroups enabled in config file.

trademe.mcmmotrade - gives permission to trade with mcmmo exp
trademe.mcmmotrade.[group] - gives permission to trade with mcmmo exp with particular permission group if TradeGroups enabled in config file.

trademe.jobstrade - gives permission to trade with jobs exp
trademe.jobstrade.[group] - gives permission to trade with jobs exp with particular permission group if TradeGroups enabled in config file.

trademe.jobspointstrade - gives permission to trade with jobs points
trademe.jobspointstrade.[group] - gives permission to trade with jobs points with particular permission group if TradeGroups enabled in config file.

trademe.residencetrade - gives permission to trade with residences
trademe.residencetrade.[group] - gives permission to trade with residences with particular permission group if TradeGroups enabled in config file.

trademe.geriefpreventiontrade - gives permission to trade with GriefPrevention blocks
trademe.geriefpreventiontrade.[group] - gives permission to trade with GriefPrevention blocks with particular permission group if TradeGroups enabled in config file.

trademe.playerpointstrade - gives permission to trade with PlayerPoints
trademe.playerpointstrade.[group] - gives permission to trade with PlayerPoints with particular permission group if TradeGroups enabled in config file.

trademe.mypettrade - gives permission to trade with MyPet pets
trademe.mypettrade.[group] - gives permission to trade with MyPet pets with particular permission group if TradeGroups enabled in config file.

trademe.kingdomstrade - gives permission to trade with kingdoms resource points
trademe.kingdomstrade.[group] - gives permission to trade with Kingdoms resource points with particular permission group if TradeGroups enabled in config file.


trademe.vanishtrade - Allows to trade while vanished

trademe.groupbypass - Bypasses world groups
trademe.blockbypass - Bypasses players blocks
trademe.globalbypass - Bypasses global player trade block
trademe.betweenworldbypass - Bypasses blocking trade between worlds
trademe.worldbypass - Bypasses blocked trade worlds
trademe.itembypass - Bypasses item black list
trademe.debug - Shows debug messages if debuging is enabled in config file

Latest reviews

Update TradeMe to Latest version please :D
I love BSMC
XDhunterXD
XDhunterXD
i know its really cool
hope you enjoy!

Similar resources

TradeMe with API to create custom trades (1.7.10-1.12.x) KamThail
Trade by Items/Money/Exp/McMMO/Jobs exp/Residence/GriefPrevention
2.00 star(s) 1 ratings
Downloads
325
Updated
TradeMe with API to create custom trades (1.7.10-1.13.x) Josh
Trade by Items/Money/Exp/McMMO/Jobs exp/Residence/GriefPrevention
3.00 star(s) 2 ratings
Downloads
364
Updated
TradeMe with API to create custom trades (1.7.10-1.15) BlackSpigot.com
Trade by Items/Money/Exp/McMMO/Jobs exp/Residence/GriefPrevention
5.00 star(s) 1 ratings
Downloads
613
Updated
BlackSpigot General Chat
Rules Help Users
    timojesus @ timojesus: I fixed some of the gifs for resource and rank prefix banners today, too ur ModelEngine its safe?
    Top