Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.09 KB | None | 0 0
  1. class LangManager{
  2. companion object {
  3. var langs=HashMap<String,HashMap<String,String>>()
  4.  
  5. var players=HashMap<UUID,String>()
  6.  
  7. private var HOST = ""
  8. private var DATABASE = ""
  9. private var USER = ""
  10. private var PASSWORD = ""
  11. private var con: Connection? = null
  12.  
  13. private val prefix=main.prefix
  14.  
  15. private fun connect() {
  16.  
  17. try {
  18. con = DriverManager.getConnection("jdbc:mysql://" + HOST + ":3306/" + DATABASE + "?autoReconnect=true",
  19. USER, PASSWORD)
  20. println("[MySQL] Die Verbindung zur MySQL wurde hergestellt!")
  21. } catch (e: SQLException) {
  22. println("[MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: " + e.message)
  23. }
  24.  
  25. }
  26. private fun update(qry: String) {
  27. try {
  28. val st = con!!.createStatement()
  29. st.executeUpdate(qry)
  30. st.close()
  31. } catch (e: SQLException) {
  32. connect()
  33. System.err.println(e)
  34. }
  35.  
  36. }
  37. private fun query(qry: String): ResultSet? {
  38. var rs: ResultSet? = null
  39. try {
  40. val st = con!!.createStatement()
  41. rs = st.executeQuery(qry)
  42. } catch (e: SQLException) {
  43. connect()
  44. return query(qry)
  45.  
  46. }
  47.  
  48. return rs
  49. }
  50. fun addPlayer(p: Player){
  51.  
  52. val rs = query("SELECT * FROM USER WHERE UUID= '${p.uniqueId}'")
  53.  
  54.  
  55. var lang="de"
  56. if (rs==null) {
  57.  
  58. } else {
  59. if(rs.next()){
  60.  
  61. lang=rs.getString("LANG")
  62. }else{
  63.  
  64. }
  65. }
  66.  
  67. println(lang)
  68. players.put(p.uniqueId,lang)
  69. }
  70.  
  71.  
  72. fun init(folder: File) {
  73.  
  74. HOST ="localhost"
  75. DATABASE ="LANG"
  76. USER ="LANG"
  77. PASSWORD ="iyAwidEyLtoxDPEl"
  78.  
  79.  
  80. connect()
  81. update("CREATE TABLE IF NOT EXISTS USER (UUID VARCHAR(100), LANG VARCHAR(100))")
  82.  
  83.  
  84. File(File(folder.parent).absolutePath+"/languages").mkdir()
  85. println("---")
  86.  
  87. for (file in File(File(folder.parent).absolutePath+"/languages").listFiles()){
  88.  
  89. println()
  90. val ll=file.absolutePath.split("/").last().replace(".yml","")
  91. langs[ll] = HashMap()
  92.  
  93. var hmap= langs.get(ll)!!
  94.  
  95. for (line in file.readLines()){
  96. println(line)
  97. println("???")
  98.  
  99.  
  100.  
  101. println("$$$"+line.split(":").get(0).trim()+"$$$")
  102. println("$$$"+line.substring(line.split(":").get(0).length).trim()+"$$$")
  103.  
  104. hmap.put(line.split(":").get(0).trim(),line.substring(line.split(":").get(0).length+1).trim())
  105.  
  106.  
  107.  
  108.  
  109. }
  110. langs.put(ll, hmap)
  111.  
  112. }
  113. println("---")
  114.  
  115. File(File(folder.parent).absolutePath+"/languages/de.yml").createNewFile()
  116. /*
  117. File(File(folder.parent).absolutePath+"/languages/en.yml").createNewFile()
  118. */
  119.  
  120. /*.createNewFile()*/
  121.  
  122.  
  123. }
  124.  
  125. fun get(key:String,language:String):String{
  126. return langs.get(language)!!.get(key)!!
  127. }
  128. fun get(key:String,p:Player):String{
  129. return langs.get(players.get(p.uniqueId))!!.get(key)!!
  130. }
  131.  
  132. fun sendMessage(key:String,ls:List<String>){
  133. for(p in Bukkit.getOnlinePlayers()){
  134.  
  135. var l= langs.get(players.get(p.uniqueId))!!.get(key)!!
  136. var i=0
  137. for(rp in ls){
  138. l=l.replace("%$i",rp)
  139. i++
  140. }
  141. p.sendMessage(main.prefix+l)
  142. }
  143. /* return langs.get(lang)!!.get(key)!!*/
  144. }
  145. fun pSendMessage(p:Player,key:String,ls:List<String>){
  146.  
  147. var l= langs.get(players.get(p.uniqueId))!!.get(key)!!
  148. var i=0
  149. for(rp in ls){
  150. println(rp)
  151. l=l.replace("%$i",rp)
  152. i++
  153. }
  154. p.sendMessage(main.prefix+l)
  155.  
  156. /* return langs.get(lang)!!.get(key)!!*/
  157. }
  158.  
  159. fun pSendMessage(p:Player,key:String){
  160. println(players.get(p.uniqueId))
  161. println(key)
  162.  
  163.  
  164.  
  165. var l= langs.get(players.get(p.uniqueId))!!.get(key)!!
  166. println(l)
  167. /*var i=0
  168. for(rp in ls){
  169. l=l.replace("%$i",rp)
  170. i++
  171. }*/
  172. p.sendMessage(main.prefix+l)
  173.  
  174. /* return langs.get(lang)!!.get(key)!!*/
  175. }
  176. fun sendFMessage(key:String,ls:List<String>){
  177. for(p in Bukkit.getOnlinePlayers()){
  178.  
  179. var l= langs.get(players.get(p.uniqueId))!!.get(key)!!
  180. println(l)
  181. var i=0
  182. for(rp in ls){
  183. println("%$i")
  184. l=l.replace("%$i",rp)
  185. i++
  186. }
  187. p.sendMessage(l)
  188. }
  189. /* return langs.get(lang)!!.get(key)!!*/
  190. }
  191. fun setLang(player: Player, get: String) {
  192.  
  193. try {
  194. val rs = query("SELECT * FROM USER WHERE UUID= '${player.uniqueId}'")
  195. if (rs==null) {
  196. update("INSERT INTO USER(UUID, LANG ) VALUES ('${player.uniqueId}','${get}');")
  197.  
  198. } else {
  199. if(rs.next()){
  200. /*
  201. update("INSERT INTO USER(UUID, LANG ) VALUES ('${player.uniqueId}','${get}');")
  202. */
  203. update("UPDATE USER SET LANG= '$get' WHERE UUID= '${player.uniqueId}';")
  204.  
  205. }else{
  206. update("INSERT INTO USER(UUID, LANG ) VALUES ('${player.uniqueId}','${get}');")
  207.  
  208. }
  209. }
  210. } catch (e: SQLException) {
  211. e.printStackTrace()
  212. }
  213.  
  214.  
  215. }
  216.  
  217. fun pSendFMessage(p: Player, s: String) {
  218. var l= langs.get(players.get(p.uniqueId))!!.get(s)!!
  219. /*var i=0
  220. for(rp in ls){
  221. l=l.replace("%$i",rp)
  222. i++
  223. }*/
  224. p.sendMessage(l)
  225. }
  226.  
  227.  
  228.  
  229. fun sendKeyMessage(message: String, keys: List<KeyString>) {
  230. for (p in Bukkit.getOnlinePlayers()){
  231. var mg=message
  232. for((i, rp) in keys.withIndex()){
  233.  
  234. mg=mg.replace("%$i",rp.get(p))
  235. }
  236. p.sendMessage(main.prefix+mg)
  237. }
  238.  
  239. }
  240.  
  241. fun sendKKeyMessage(key: String, keys: List<KeyString>) {
  242. for (p in Bukkit.getOnlinePlayers()){
  243. var mg= get(key, p)
  244. for((i, rp) in keys.withIndex()){
  245.  
  246. mg=mg.replace("%$i",rp.get(p))
  247. }
  248. p.sendMessage(main.prefix+mg)
  249. }
  250.  
  251. }
  252.  
  253. fun pSendKeyMessage(p: Player, s: String,keys: List<KeyString>) {
  254. var mg= langs.get(players.get(p.uniqueId))!!.get(s)!!
  255. for((i, rp) in keys.withIndex()){
  256.  
  257. mg=mg.replace("%$i",rp.get(p))
  258. }
  259. p.sendMessage(main.prefix+mg)
  260. }
  261.  
  262. fun getWithR(key:String,p:Player,arg:String):String{
  263. return langs.get(players.get(p.uniqueId))!!.get(key)!!.replace("%0",arg)
  264. }
  265.  
  266. fun sendRawMessage(key:String,ls:List<String>){
  267. for(p in Bukkit.getOnlinePlayers()){
  268.  
  269. var l= langs.get(players.get(p.uniqueId))!!.get(key)!!
  270. var i=0
  271. for(rp in ls){
  272. l=l.replace("%$i",rp)
  273. i++
  274. }
  275. p.sendMessage(l)
  276. }
  277. /* return langs.get(lang)!!.get(key)!!*/
  278. }
  279.  
  280. }
  281. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement