Advertisement
Guest User

Untitled

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