daily pastebin goal
20%
SHARE
TWEET

Untitled

a guest Apr 21st, 2018 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top