Advertisement
Guest User

Untitled

a guest
Aug 1st, 2017
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.46 KB | None | 0 0
  1. package com.gmail.haloinverse.DynamicMarket;
  2.  
  3.  
  4. import com.nijikokun.bukkit.Permissions.Permissions;
  5. import com.nijiko.coelho.iConomy.iConomy;
  6. import com.nijiko.coelho.iConomy.system.Account;
  7. import com.nijiko.coelho.iConomy.system.Bank;
  8. import java.io.File;
  9. import java.util.Timer;
  10. import java.util.logging.Logger;
  11. import org.bukkit.command.Command;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.event.Event;
  14. import org.bukkit.event.server.PluginEvent;
  15. import org.bukkit.event.server.ServerListener;
  16. import org.bukkit.plugin.Plugin;
  17. import org.bukkit.plugin.PluginDescriptionFile;
  18. import org.bukkit.plugin.PluginManager;
  19. import org.bukkit.plugin.java.JavaPlugin;
  20.  
  21. public class DynamicMarket extends JavaPlugin
  22. {
  23. public final Logger log = Logger.getLogger("Minecraft");
  24.  
  25. public String name; // = "SimpleMarket";
  26. public String codename = "arensirb";
  27. public String version; // = "0.4a";
  28.  
  29. public iListen playerListener = new iListen(this);
  30. //public DMServerListener serverListener = new DMServerListener(this);
  31. public static Permissions Permissions;
  32. public static iProperty Settings;
  33. public static String directory; // = "DynamicMarket" File.separator;
  34. public String shop_tag = "{BKT}[{}Shop{BKT}]{} ";
  35. protected String currency;// = "Coin";
  36. protected int max_per_purchase = 64;
  37. protected int max_per_sale = 64;
  38. public String defaultShopAccount = "";
  39. public boolean defaultShopAccountFree = true;
  40.  
  41. protected String database_type = "sqlite";
  42. protected static String sqlite = "jdbc:sqlite:" directory "shop.db";
  43. protected static String mysql = "jdbc:mysql://localhost:3306/minecraft";
  44. protected static String mysql_user = "root";
  45. protected static String mysql_pass = "pass";
  46. protected static String mysql_dbEngine = "MyISAM";
  47. protected static Timer timer = null;
  48. protected static String csvFileName;
  49. protected static String csvFilePath;
  50. protected static iConomy iConomy;
  51. //protected AnyConomy anyConomy = null;
  52. protected boolean econLoaded = false;
  53. protected EconType econType = EconType.NONE;
  54. protected Items items;
  55. protected String itemsPath = "";
  56. protected DatabaseMarket db = null;
  57. protected boolean wrapperMode = false;
  58. protected boolean wrapperPermissions = false;
  59. protected boolean simplePermissions = false;
  60. protected PermissionInterface permissionWrapper = null;
  61. protected TransactionLogger transLog = null;
  62. protected String transLogFile = "transactions.log";
  63. protected boolean transLogAutoFlush = true;
  64. private MyServerListener myServerListener = new MyServerListener(this);
  65.  
  66. //public static YamlPropFile yamlPropTest;
  67.  
  68. private class MyServerListener extends ServerListener {
  69.  
  70. private DynamicMarket plugin;
  71. public MyServerListener(DynamicMarket thisPlugin)
  72. {
  73. this.plugin = thisPlugin;
  74. }
  75.  
  76. @Override
  77. public void onPluginEnabled(PluginEvent event)
  78. {
  79. // This is called for plugins enabled AFTER this one.
  80. String thisPluginName = event.getPlugin().getDescription().getName();
  81. if(thisPluginName.equals("iConomy"))
  82. {
  83. DynamicMarket.iConomy = (iConomy)event.getPlugin();
  84. plugin.connectEconomy(DynamicMarket.iConomy);
  85. }
  86. }
  87. }
  88.  
  89. public void onDisable() {
  90. log.info(Messaging.bracketize(name) " version " Messaging.bracketize(version) " (" codename ") disabled");
  91. }
  92.  
  93. @Override
  94. public void onEnable() {
  95. PluginDescriptionFile desc = getDescription();
  96. getDataFolder().mkdir();
  97.  
  98. name = desc.getName();
  99. version = desc.getVersion();
  100.  
  101. directory = getDataFolder() File.separator;
  102. sqlite = "jdbc:sqlite:" directory "shop.db";
  103.  
  104. setup();
  105. System.out.println("Setup() OK!");
  106. //setupItems(); //CHANGED: Initialisation moved to Items constructor.
  107. //setupEconomy();
  108. System.out.println("SetupEconomy OK!");
  109. setupPermissions();
  110. registerEvents();
  111. log.info(Messaging.bracketize(name) " version " Messaging.bracketize(version) " (" codename ") enabled");
  112. }
  113.  
  114. private void registerEvents()
  115. {
  116. PluginManager thisPluginManager = getServer().getPluginManager();
  117. thisPluginManager.registerEvent(Event.Type.PLUGIN_ENABLE, this.myServerListener, Event.Priority.Monitor, this);
  118. }
  119.  
  120.  
  121. @Override
  122. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
  123. {
  124. if (!wrapperMode)
  125. {
  126. boolean thisReturn;
  127. thisReturn = this.playerListener.parseCommand(sender, cmd.getName(), args, "", defaultShopAccount, defaultShopAccountFree);
  128. return thisReturn;
  129. }
  130. else
  131. return true;
  132. }
  133.  
  134. public boolean wrapperCommand(CommandSender sender, String cmd, String[] args, String shopLabel, String accountName, boolean freeAccount)
  135. {
  136. return this.playerListener.parseCommand(sender, cmd, args, (shopLabel == null ? "" : shopLabel), accountName, freeAccount);
  137. }
  138.  
  139. public boolean wrapperCommand(CommandSender sender, String cmd, String[] args, String shopLabel)
  140. {
  141. return wrapperCommand(sender, cmd, args, (shopLabel == null ? "" : shopLabel), defaultShopAccount, defaultShopAccountFree);
  142. }
  143.  
  144. public boolean wrapperCommand(CommandSender sender, String cmd, String[] args)
  145. {
  146. return wrapperCommand(sender, cmd, args, "");
  147. }
  148.  
  149.  
  150. public void setup()
  151. {
  152. Settings = new iProperty(getDataFolder() File.separator name ".settings");
  153.  
  154. //ItemsFile = new iProperty("items.db");
  155. itemsPath = Settings.getString("items-db-path", getDataFolder() File.separator);
  156. items = new Items(itemsPath "items.db", this);
  157.  
  158. shop_tag = Settings.getString("shop-tag", shop_tag);
  159. max_per_purchase = Settings.getInt("max-items-per-purchase", 64);
  160. max_per_sale = Settings.getInt("max-items-per-sale", 64);
  161.  
  162. this.database_type = Settings.getString("database-type", "sqlite");
  163.  
  164. mysql = Settings.getString("mysql-db", mysql);
  165. mysql_user = Settings.getString("mysql-user", mysql_user);
  166. mysql_pass = Settings.getString("mysql-pass", mysql_pass);
  167. mysql_dbEngine = Settings.getString("mysql-dbengine", mysql_dbEngine);
  168.  
  169. if (this.database_type.equalsIgnoreCase("mysql"))
  170. db = new DatabaseMarket(DatabaseMarket.Type.MYSQL, "Market", items, mysql_dbEngine, this);
  171. else
  172. db = new DatabaseMarket(DatabaseMarket.Type.SQLITE, "Market", items, "", this);
  173.  
  174. csvFileName = Settings.getString("csv-file", "shopDB.csv");
  175. csvFilePath = Settings.getString("csv-file-path", getDataFolder() File.separator);
  176. wrapperMode = Settings.getBoolean("wrapper-mode", false);
  177. simplePermissions = Settings.getBoolean("simple-permissions", false);
  178. wrapperPermissions = Settings.getBoolean("wrapper-permissions", false);
  179.  
  180. Messaging.colNormal = "&" Settings.getString("text-colour-normal", "e");
  181. Messaging.colCmd = "&" Settings.getString("text-colour-command", "f");
  182. Messaging.colBracket = "&" Settings.getString("text-colour-bracket", "d");
  183. Messaging.colParam = "&" Settings.getString("text-colour-param", "b");
  184. Messaging.colError = "&" Settings.getString("text-colour-error", "c");
  185.  
  186. defaultShopAccount = Settings.getString("default-shop-account", "");
  187. defaultShopAccountFree = Settings.getBoolean("default-shop-account-free", defaultShopAccountFree);
  188.  
  189. transLogFile = Settings.getString("transaction-log-file", transLogFile);
  190. transLogAutoFlush = Settings.getBoolean("transaction-log-autoflush", transLogAutoFlush);
  191. if ((transLogFile != null) && (!transLogFile.isEmpty()))
  192. transLog = new TransactionLogger(this, getDataFolder() File.separator transLogFile, transLogAutoFlush);
  193. else
  194. transLog = new TransactionLogger(this, null, false);
  195.  
  196. String econTypeString = Settings.getString("economy-plugin", "iconomy4");
  197. if (econTypeString.equalsIgnoreCase("iconomy3"))
  198. econType = EconType.ICONOMY3;
  199. else if (econTypeString.equalsIgnoreCase("iconomy4"))
  200. econType = EconType.ICONOMY4;
  201. //else if (econTypeString.equalsIgnoreCase("anyconomy"))
  202. //econType = EconType.ANYCONOMY;
  203. else
  204. {
  205. log.severe(Messaging.bracketize(name) " Invalid economy setting for 'economy-plugin='.");
  206. econType = EconType.NONE;
  207. }
  208.  
  209. //yamlPropTest = new YamlPropFile(getDataFolder() File.separator "SimpleMarket.yml");
  210. //yamlPropTest.load();
  211. }
  212.  
  213. public void setupPermissions()
  214. {
  215. if (simplePermissions)
  216. {
  217. Permissions = null;
  218. log.info(Messaging.bracketize(name) " Simple permission system active.");
  219. }
  220. else if (wrapperPermissions)
  221. log.info(Messaging.bracketize(name) " Permissions will be delegated to wrapper plugin.");
  222. else
  223. {
  224. Plugin test = getServer().getPluginManager().getPlugin("Permissions");
  225.  
  226. if (Permissions == null)
  227. if (test != null) {
  228. Permissions = (Permissions)test;
  229. log.info(Messaging.bracketize(name) " Standard Permission plugin enabled.");
  230. } else {
  231. log.info(Messaging.bracketize(name) " Permission system not enabled. Disabling plugin.");
  232. getServer().getPluginManager().disablePlugin(this);
  233. }
  234. }
  235. }
  236.  
  237. public void connectEconomy(Plugin thisPlugin)
  238. {
  239.  
  240. if(econType == EconType.ICONOMY4)
  241. {
  242. if(thisPlugin instanceof iConomy)
  243. connectToiConomy((iConomy)thisPlugin);
  244. }
  245. }
  246.  
  247. public void connectToiConomy(iConomy thisPlugin)
  248. {
  249. //iConomy = thisPlugin;
  250. Bank myBank = iConomy.getBank();
  251. currency = myBank.getCurrency().toString();
  252. Account myAccount = iConomy.getBank().getAccount("arensirb");
  253. econLoaded = true;
  254. log.info(Messaging.bracketize(name) " iConomy connected.");
  255. }
  256.  
  257. public static enum EconType
  258. {
  259. NONE, ICONOMY3, ICONOMY4;
  260. }
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement