Advertisement
B1uscr34m

Teamspeak TS 3 TS3 Plugin LUA Script - Channel Create Script

Nov 18th, 2014
1,121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 46.96 KB | None | 0 0
  1. require("ts3defs")
  2. require("ts3errors")
  3.  
  4. local SCRIPT = "LUA Channel creator"
  5. local SCRIPTSHORT = "CC"
  6. local VERSION = "0.5"
  7. local AUTHOR = "B1uscr34m"
  8. local EMAIL = "piracy@teamspeakusa.com"
  9.  
  10. -- Settings
  11. CC_DEBUG = true
  12. ColArray = { 'Green', 'Yellow', 'Red', 'Blue' }
  13. RANDCOL = ( ColArray[ math.random( #ColArray ) ] )
  14. SCRIPT_PREFIX = "[color=grey][[/color][color="..RANDCOL.."]"..SCRIPTSHORT.."[/color][color=grey]][/color]"
  15. function ScriptLog(logMSG)
  16.     if CC_DEBUG == true then
  17.         local tsCol = { 'Green', 'Black', 'Red', 'Blue' }
  18.         local RANDCOL = ( tsCol[ math.random( #tsCol ) ] )
  19.         local scriptTimestamp = os.date("%x %X")
  20.         ts3.printMessageToCurrentTab("[color=Black][[/color][color="..RANDCOL.."]"..scriptTimestamp.."[/color][color=Black]][/color]> "..SCRIPT_PREFIX..": "..logMSG)
  21.         -- ts3.logMessage(logMSG, severity, channel, logID)
  22.         -- debugPrint(logMSG)
  23.     end
  24. end
  25.  
  26. cc_func_auto_create = true
  27. cc_func_auto_create_fast = true
  28. cc_func_anti_channel_delete = false
  29. cc_func_anti_channel_delete_mode = "mode" -- old / mode
  30. cc_func_fullString = false
  31. UID_mtg = "LpfWDi8tO9blye3wZXZZ76uPAM8="
  32. UID_gomme = "j21+nyNaAMxEg/UxFKYwJq3GgQ0="
  33. -- -----------------------------=LOGGING=-------------------------------------
  34. ScriptLog("[color=".. RANDCOL .."]_-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-_[/color]")
  35. ScriptLog("[color=darkgreen]".. SCRIPT .."[/color] [color=white][[/color][color=orange]".. VERSION .."[/color][color=white]][/color] loading...")
  36. -- ____________________________-=LOGGING=-____________________________________
  37. -- Variables
  38. -- chancreate.const.menuIDs = {
  39.     -- CREATE_CHANNEL_BIT = 1
  40. -- }
  41. -- chancreate.var.menuItemID = 0
  42. local FUNCTIONS = "Creating channels like a boss ;)"
  43. local HLPTXT = "Use [b][color=red]/lua run cc[/color][/b] to see a list of commands!"
  44. -- -----------------------------=LOGGING=-------------------------------------
  45. ScriptLog("[color=darkgreen]".. SCRIPTSHORT .."[/color] variables initialized.")
  46. -- ____________________________-=LOGGING=-____________________________________
  47. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  48. --======================================================================================================================================================================
  49. -- Core Functions
  50. --======================================================================================================================================================================
  51. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  52. clock = os.clock
  53. function sleep(n)  -- seconds
  54.   local t0 = clock()
  55.   while clock() - t0 <= n do end
  56. end
  57. function wsleep(n)
  58.   if n > 0 then os.execute("ping -n " .. tonumber(n+1) .. " localhost > NUL") end
  59. end
  60. function testlog(serverConnectionHandlerID, text)
  61.     ScriptLog(text)
  62. end
  63. function cc(serverConnectionHandlerID)
  64.     local emcCol = { 'Green', 'Yellow', 'Red', 'Blue' }
  65.     local RANDCOL = ( emcCol[ math.random( #emcCol ) ] )
  66.     ts3.printMessageToCurrentTab("[u][color=".. RANDCOL .."]".. SCRIPT ..": [b]Commands[/b][/color][/u]")
  67.     ts3.printMessageToCurrentTab("Show all Channel Variables: [color=red]/lua run channelCreationInfo[/color]")
  68.     ts3.printMessageToCurrentTab("Start creating a pre-defined channel: [color=red]/lua run createChannel {channelMODE}[/color]")
  69.     ts3.printMessageToCurrentTab("Show all available channelMODEs: [color=red]/lua run ccchannelModes[/color]")
  70. end
  71. function ccchannelModes(serverConnectionHandlerID)
  72.     local emcCol = { 'Green', 'Yellow', 'Red', 'Blue' }
  73.     local RANDCOL = ( emcCol[ math.random( #emcCol ) ] )
  74.     ts3.printMessageToCurrentTab("[u][color=".. RANDCOL .."]".. SCRIPT ..": [b]channelMODEs[/b][/color][/u]")
  75.     ts3.printMessageToCurrentTab("[color=red]random[/color]")
  76.     ts3.printMessageToCurrentTab("[color=red]randomPW[/color]")
  77.     ts3.printMessageToCurrentTab("[color=red]talk[/color]")
  78.     ts3.printMessageToCurrentTab("[color=red]chillen[/color]")
  79.     ts3.printMessageToCurrentTab("[color=red]gomme[/color]")
  80.     ts3.printMessageToCurrentTab("[color=red]gommePW[/color]")
  81.     ts3.printMessageToCurrentTab("[color=red]bit[/color]")
  82.     ts3.printMessageToCurrentTab("[color=red]script[/color]")
  83.     ts3.printMessageToCurrentTab("[color=red]line[/color]")
  84.     ts3.printMessageToCurrentTab("[color=red]music[/color]")
  85.     ts3.printMessageToCurrentTab("[color=red]musicPW[/color]")
  86.     ts3.printMessageToCurrentTab("[color=red]iloveradio[/color]")
  87.     ts3.printMessageToCurrentTab("[color=red]iloveradioPW[/color]")
  88.     ts3.printMessageToCurrentTab("[color=red]ilove2dancePW[/color]")
  89.     ts3.printMessageToCurrentTab("Everything else creates a Test Channel")
  90. end
  91. function cchelp()
  92.     local emcCol = { 'Green', 'Yellow', 'Red', 'Blue' }
  93.     local RANDCOL = ( emcCol[ math.random( #emcCol ) ] )
  94.     ts3.printMessageToCurrentTab("[u][color=".. RANDCOL .."]".. SCRIPT ..": [b]Help[/b][/color][/u]")
  95.     ts3.printMessageToCurrentTab("View all"..SCRIPTSHORT.." commands: [color=red]/lua run cchelp[/color]")
  96. end
  97. function ccinfo()
  98.     local emcCol = { 'Green', 'Yellow', 'Red', 'Blue' }
  99.     local RANDCOL = ( emcCol[ math.random( #emcCol ) ] )
  100.     ts3.printMessageToCurrentTab("[u][color=".. RANDCOL .."]".. SCRIPT ..": [b]Info[/b][/color][/u]")
  101.     ts3.printMessageToCurrentTab("[color=red]"..FUNCTIONS.."[/color]")
  102. end
  103. function colrandomizer()
  104.     local myTable = { 'Green', 'Yellow', 'Red', 'Blue' }
  105.     local RANDCOL = ( myTable[ math.random( #myTable ) ] )
  106. end
  107. function isempty(s)
  108.   return s == nil or s == ''
  109. end
  110. function urlencode(str)
  111.    if (str) then
  112.       str = string.gsub (str, "\n", "\r\n")
  113.       str = string.gsub (str, "([^%w ])",
  114.          function (c) return string.format ("%%%02X", string.byte(c)) end)
  115.       str = string.gsub (str, " ", "+")
  116.    end
  117.    return str    
  118. end
  119. local function checkServer(serverConnectionHandlerID)
  120.     local serverUID = ts3.getServerVariableAsString(serverConnectionHandlerID, ts3defs.VirtualServerProperties.VIRTUALSERVER_UNIQUE_IDENTIFIER)
  121.     if serverUID == UID_mtg then
  122.             -- ts3.printMessageToCurrentTab("Server mtG, using plugin")
  123.         needed_tp_ca = "13"
  124.         needed_tp_op = "12"
  125.         needed_tp_member = "1"
  126.         needed_tp_guest = "0"
  127.         codec_voice_min = "0"
  128.         codec_voice_quality_min = "0"
  129.         codec_voice_max = "4"
  130.         codec_voice_quality_max = "7"
  131.         codec_music_min = "5"
  132.         codec_music_quality_min = "7"
  133.         codec_music_max = "5"
  134.         codec_music_quality_max = "7"
  135.         cc_func_auto_create_mode = "chillen"
  136.         return
  137.     elseif serverUID == UID_gomme then
  138.             -- ts3.printMessageToCurrentTab('Server GommeHD, using plugin')
  139.         needed_tp_ca = "63"
  140.         needed_tp_op = "62"
  141.         needed_tp_member = "61"
  142.         needed_tp_guest = "60"
  143.         codec_voice_min = "4"
  144.         codec_voice_quality_min = "0"
  145.         codec_voice_max = "4"
  146.         codec_voice_quality_max = "10"
  147.         codec_music_min = "5"
  148.         codec_music_quality_min = "0"
  149.         codec_music_max = "5"
  150.         codec_music_quality_max = "10"
  151.         cc_func_auto_create_mode = "gomme"
  152.         return
  153.     else
  154.             -- ts3.printMessageToCurrentTab("Server ELSE, using defaults")
  155.         needed_tp_ca = "0"
  156.         needed_tp_op = "0"
  157.         needed_tp_member = "0"
  158.         needed_tp_guest = "0"
  159.         codec_voice_min = "0"
  160.         codec_voice_quality_min = "0"
  161.         codec_voice_max = "4"
  162.         codec_voice_quality_max = "10"
  163.         codec_music_min = "5"
  164.         codec_music_quality_min = "0"
  165.         codec_music_max = "3"
  166.         codec_music_quality_max = "10"
  167.         cc_func_auto_create_mode = "blu"
  168.         return
  169.     end
  170. end
  171. -- -----------------------------=LOGGING=-------------------------------------
  172. if CC_DEBUG == true then
  173. ScriptLog("Core functions loaded...")
  174. end
  175. -- ____________________________-=LOGGING=-____________________________________
  176.  
  177. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  178. --======================================================================================================================================================================
  179. -- Channel Creator Events
  180. --======================================================================================================================================================================
  181. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  182. function onConnectStatusChangeEvent(serverConnectionHandlerID, status, errorNumber)
  183.     if cc_func_auto_create == true then
  184.         local error = checkServer(serverConnectionHandlerID)
  185.         if not isempty(error) then
  186.             ts3.printMessageToCurrentTab("Error while checking server!")
  187.         end
  188.         if cc_func_auto_create_fast == true then
  189.             if status ~= ts3defs.ConnectStatus.STATUS_CONNECTED then
  190.                 return
  191.             end
  192.             local channelCreation, error = createChannel(
  193.             serverConnectionHandlerID,
  194.             cc_func_auto_create_mode,
  195.             "")
  196.             if not isempty(error) then
  197.                 ts3.printMessageToCurrentTab("Error auto creating Channel ("  .. error .. ")")
  198.             end
  199.         else
  200.             if status ~= ts3defs.ConnectStatus.STATUS_CONNECTION_ESTABLISHED then
  201.                 return
  202.             end
  203.             local channelCreation, error = createChannel(
  204.             serverConnectionHandlerID,
  205.             cc_func_auto_create_mode,
  206.             "")
  207.             if not isempty(error) then
  208.                 ts3.printMessageToCurrentTab("Error auto creating Channel ("  .. error .. ")")
  209.             end
  210.         end
  211.     end
  212. end
  213. function onNewChannelCreatedEvent(serverConnectionHandlerID, channelID, channelParentID, invokerID, invokerName, invokerUniqueIdentifier)
  214.     local ownID = ts3.getClientID(serverConnectionHandlerID)
  215.     if invokerID == ownID then
  216.         cc_backup_channelID = channelID
  217.         cc_created_backup_channelName = ts3.getChannelVariableAsString(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_NAME)
  218.         cc_created_backup_channelNamePhonetic = ts3.getChannelVariableAsString(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_NAME_PHONETIC)
  219.         cc_created_backup_channelPassword = ts3.getChannelVariableAsString(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_PASSWORD)
  220.         cc_created_backup_channelTopic = ts3.getChannelVariableAsString(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_TOPIC)
  221.         cc_created_backup_channelDescription = ts3.getChannelVariableAsString(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_DESCRIPTION)
  222.         cc_created_backup_channelMaxClients = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_MAXCLIENTS)
  223.         cc_created_backup_channelNeededTP = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_NEEDED_TALK_POWER)
  224.         cc_created_backup_channelIconID = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_ICON_ID)
  225.         cc_created_backup_channelIsSemi = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_FLAG_SEMI_PERMANENT)
  226.         cc_created_backup_channelIsPerma = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_FLAG_PERMANENT)
  227.         cc_created_backup_channelIsDefault = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_FLAG_DEFAULT)
  228.         cc_created_backup_channelCodec = ts3.getChannelVariableAsString(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_CODEC)
  229.         cc_created_backup_channelCodecQuality = ts3.getChannelVariableAsInt(serverConnectionHandlerID, channelID, ts3defs.ChannelProperties.CHANNEL_CODEC_QUALITY)
  230.     end
  231. end
  232. function onClientKickFromChannelEvent(serverConnectionHandlerID, clientID, oldChannelID, newChannelID, visibility, kickerID, kickerName, kickerUniqueIdentifier, kickMessage)
  233.     if cc_func_anti_channel_delete == true then
  234.         kickedownID = ts3.getClientID(serverConnectionHandlerID)
  235.         if kickedownID == clientID and kickMessage == "channel deleted" then
  236.             if cc_func_anti_channel_delete_mode == "own" then
  237.                 if not isempty(backupchannelMODE) then
  238.                     ScriptLog("Old Channel #"..oldChannelID.." got deleted by " .. kickerName .. " ("..kickerUniqueIdentifier.."), creating new one.")
  239.                     local channelCreation, error = createChannel(
  240.                     serverConnectionHandlerID,
  241.                     backupchannelMODE,
  242.                     "")
  243.                     if not isempty(error) then
  244.                         ts3.printMessageToCurrentTab("Error auto creating Channel ("  .. error .. ")")
  245.                     end
  246.                 end
  247.             elseif cc_func_anti_channel_delete_mode == "old" then
  248.                 if not isempty(cc_created_backup_channelName) then
  249.                     ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_NAME,cc_created_backup_channelName)
  250.                 end
  251.                
  252.                 if not isempty(cc_created_backup_channelNamePhonetic) then
  253.                     ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_NAME_PHONETIC,cc_created_backup_channelNamePhonetic)
  254.                 end
  255.                
  256.                 if not isempty(cc_created_backup_channelPassword) then
  257.                     ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_PASSWORD,cc_created_backup_channelPassword)
  258.                 end
  259.                
  260.                 if not isempty(cc_created_backup_channelTopic) then
  261.                     ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_TOPIC,cc_created_backup_channelTopic)
  262.                 end
  263.                
  264.                 if not isempty(cc_created_backup_channelDescription) then
  265.                     ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_DESCRIPTION,cc_created_backup_channelDescription)
  266.                 end
  267.                
  268.                 if not isempty(cc_created_backup_channelMaxClients) then
  269.                     ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_MAXCLIENTS,cc_created_backup_channelMaxClients)
  270.                 end
  271.                
  272.                 if not isempty(cc_created_backup_channelNeededTP) then
  273.                     ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_NEEDED_TALK_POWER,cc_created_backup_channelNeededTP)
  274.                 end
  275.                
  276.                 if not isempty(cc_created_backup_channelIconID) then
  277.                     ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_ICON_ID,cc_created_backup_channelIconID)
  278.                 end
  279.                
  280.                 if not isempty(cc_created_backup_channelIsSemi) then
  281.                     ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_FLAG_SEMI_PERMANENT,cc_created_backup_channelIsSemi)
  282.                 end
  283.                
  284.                 if not isempty(cc_created_backup_channelCodec) then
  285.                     ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_CODEC,cc_created_backup_channelCodec)
  286.                 end
  287.                
  288.                 if not isempty(cc_created_backup_channelCodecQuality) then
  289.                     ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_CODEC_QUALITY,cc_created_backup_channelCodecQuality)
  290.                 end
  291.                 if not isempty(channelName) then
  292.                     ScriptLog("Creating Channel "..channelName)
  293.                 else
  294.                     ScriptLog("Creating Channel")
  295.                 end
  296.                 local clientID, error = ts3.getClientID(serverConnectionHandlerID)
  297.                 if error ~= ts3errors.ERROR_ok then
  298.                     ts3.printMessageToCurrentTab("Failed to get ClientID: " .. error)
  299.                 end
  300.  
  301.                 local channelID, error = ts3.getChannelIDFromChannelNames(
  302.                     serverConnectionHandlerID, channelPath)
  303.                 if error ~= ts3errors.ERROR_ok then
  304.                     ts3.printMessageToCurrentTab("Error getting ChannelID: "  .. error)
  305.                 end
  306.                 if channelID ~= 0 then
  307.                     ts3.requestClientMove(
  308.                         serverConnectionHandlerID,
  309.                         clientID,
  310.                         channelID,
  311.                         channelPassword)
  312.                 end
  313.                 local parentChannelID, error = ts3.getChannelIDFromChannelNames(
  314.                     serverConnectionHandlerID, channelparentPath)
  315.                 if error ~= ts3errors.ERROR_ok then
  316.                     ts3.printMessageToCurrentTab("Error getting parent ChannelID: "  .. error)
  317.                 end
  318.                 local error = ts3.flushChannelCreation(serverConnectionHandlerID, parentChannelID)
  319.                 if error == 0 then
  320.                     local clientIDown  = ts3.getClientID(serverConnectionHandlerID)
  321.                     local channelIDs = {}
  322.                     channelIDs[1] = channelName
  323.                     local UsedCID = ts3.getChannelIDFromChannelNames(serverConnectionHandlerID, channelIDs)
  324.                     ts3.requestClientMove(serverConnectionHandlerID, clientIDown, UsedCID, channelPassword)
  325.                     return
  326.                 elseif error ~= ts3errors.ERROR_ok then
  327.                     ts3.printMessageToCurrentTab("Error Creating Channel: "  .. error". Retrying...")
  328.                     createChannel(channelMODE, channelNumber)
  329.                     return
  330.                 end
  331.                 if error ~= ts3errors.ERROR_ok then
  332.                     if not isempty(channelName) then
  333.                         ts3.printMessageToCurrentTab("Error creating channel: " .. channelName .. " " .. error)
  334.                         resetChannelVARS()
  335.                         return
  336.                     else
  337.                         ts3.printMessageToCurrentTab("Error creating channel. Error ID: "  .. error)
  338.                         resetChannelVARS()
  339.                         return
  340.                     end
  341.                 end
  342.             end
  343.         end
  344.     end
  345. end
  346. -- End of Events
  347.  
  348. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  349. --======================================================================================================================================================================
  350. -- Channel Creator Functions
  351. --======================================================================================================================================================================
  352. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  353. function createChannel(serverConnectionHandlerID, channelMODE, channelNumber)
  354.  
  355.     if isempty(channelMODE) then
  356.         ts3.printMessageToCurrentTab("/lua run createChannel {channelMODE} {channelNumber}")
  357.         return
  358.     else
  359.         backupchannelMODE = channelMODE
  360.     end
  361.    
  362.     skiptopiccheck = false
  363.     local serverCheck = checkServer(serverConnectionHandlerID)
  364.    
  365.     if isempty(channelNumber) then
  366.         channelNumber = math.random(1,9)
  367.         backupchannelNumber = channelNumber
  368.     else
  369.         backupchannelNumber = channelNumber
  370.     end
  371.    
  372.     local sysDateTime = os.date("%d.%m.%Y %X")
  373.     local emcColors = { 'Black', 'Green', 'Yellow', 'Red', 'Blue', 'Orange', '#ff00ff', '#005500' }
  374.     local RANDCOL = ( emcColors[ math.random( #emcColors ) ] )
  375.     math.randomseed( os.time() + math.random(1,9999) )
  376.     symbolArray = { '☠', '☎', '♫', '♪', '™', '®', '©', '@', '☢', '♔', '彡', '✿', '❖', '☂', '☃', '♀', '♂', '‼', '¶', 'ð', '☯', '✌', '♆', '〄', '☣', '☛', 'Ψ', '✐', '¿', 'æ' }
  377.    
  378.     if string.find(channelMODE, "music") then
  379.         nameArray = { 'Enjoy the Music', 'ENJOY THE MUSIC', 'Enjoy the Beats', 'ENJOY THE BEATS', 'Music Channel', 'MUSIC CHANNEL' }
  380.         symbolArray = { '☆', '★', '✰', '☼', '❅', '☀', '❊', '✪', '*', '✼', '♫', '♪' }
  381.         musicArray = { '♫', '♪' }
  382.         _symbol1 = ( symbolArray[ math.random( #symbolArray ) ] )
  383.         _symbol2 = ( musicArray[ math.random( #musicArray ) ] )
  384.         -- soundboard.stream("http://stream02.iloveradio.de/iloveradio2.mp3")
  385.         nickNameArray = { 'Music Bot', 'MUSICBOT', 'JukeBox', 'JUKEBOX' }
  386.         newNick = _symbol1.._symbol2.." "..( nickNameArray[ math.random( #nickNameArray ) ] ).." ".._symbol2.._symbol1
  387.     elseif string.find(channelMODE, "blu") then
  388.         nickNameArray = { '! Bluscream #xploit', '! Bluscream #ungesund', '! Bluscream #undgemuted', '! Bluscream #fabelHAFT', '! Bluscream #omiliebe', '! Bluscream #pietsmietberührt', '! Bluscream #sepjö', '! Bluscream #hashtag' }
  389.         newNick = ( nickNameArray[ math.random( #nickNameArray ) ] )
  390.     end
  391.    
  392.     if channelMODE == "blu" then
  393.         nameArray = { 'Zur miefenden Mauke - Lokal', 'Blu\'s Matrix', 'Was geeeht ab?', 'Blu\'s Smileywunderland', '#undgemuted' }
  394.         channelName = ( nameArray[ math.random( #nameArray ) ] )
  395.         channelparentPath = {"User Channels", ""}
  396.         channelPath = {"User Channels", channelName, ""}
  397.         channelPassword = ""
  398.         channelNeededTP = needed_tp_op
  399.         channelCodec = codec_voice_max
  400.         channelCodecQuality = codec_voice_quality_max
  401.         channelTopic = "Bluscream's Channel | Bitte keine Beleidigungen"
  402.    
  403.     elseif channelMODE == "bluPW" then
  404.         nameArray = {
  405.             'Zur miefenden Mauke - Lokal',
  406.             'Blu\'s Matrix', 'Was geeeht ab?',
  407.             'Blu\'s Smileywunderland', '#undgemuted'
  408.         }
  409.         channelName = ( nameArray[ math.random( #nameArray ) ] )
  410.         channelparentPath = {"User Channels", ""}
  411.         channelPath = {"User Channels", channelName, ""}
  412.         channelPassword = math.random(1,99999999)
  413.         channelNeededTP = needed_tp_op
  414.         channelCodec = codec_voice_max
  415.         channelCodecQuality = codec_voice_quality_max
  416.         channelTopic = "Bluscream's Channel | Bitte keine Beleidigungen"
  417.    
  418.    
  419.     elseif channelMODE == "bluPW2" then
  420.         channelPassword = math.random(1,999)
  421.         nameArray = {
  422.             'Blu\'s Matrix - PW: '..channelPassword,
  423.             'Blu\'s Hütten - PW: '..channelPassword,
  424.             'Blu\'s Schuppen - PW: '..channelPassword
  425.         }
  426.         channelName = ( nameArray[ math.random( #nameArray ) ] )
  427.         channelparentPath = {"User Channels", ""}
  428.         channelPath = {"User Channels", channelName, ""}
  429.         channelNeededTP = needed_tp_op
  430.         channelCodec = codec_voice_max
  431.         channelCodecQuality = codec_voice_quality_max
  432.         channelTopic = "Bluscream's Channel | Bitte keine Beleidigungen | PW: "..channelPassword
  433.    
  434.     elseif channelMODE == "blumusic" then
  435.         channelName = "Blu\'s Matrix | ♪☆♫ JukeBox ♫☆♪"
  436.         channelparentPath = {"User Channels", ""}
  437.         channelPath = {"User Channels", channelName, ""}
  438.         channelNeededTP = needed_tp_ca
  439.         channelCodec = codec_music_max
  440.         channelCodecQuality = codec_music_quality_max
  441.         channelTopic = "Bluscream's Channel | Wenn AFK - MusikLounge"
  442.         -- ts3.printMessageToCurrentTab(codec_music_max .. " " .. codec_music_quality_max)
  443.    
  444.     elseif channelMODE == "blumusicPW" then
  445.         channelName = "Blu\'s Matrix | ♪☆♫ JukeBox ♫☆♪ | PW: 1"
  446.         channelparentPath = {"User Channels", ""}
  447.         channelPath = {"User Channels", channelName, ""}
  448.         channelNeededTP = needed_tp_ca
  449.         channelCodec = codec_music_max
  450.         channelCodecQuality = codec_music_quality_max
  451.         channelPassword = "1"
  452.         channelTopic = "Bluscream's Channel | Wenn AFK - MusikLounge | Passwort: 1"
  453.         -- ts3.printMessageToCurrentTab(codec_music_max .. " " .. codec_music_quality_max)
  454.  
  455.    
  456.     elseif channelMODE == "music" then
  457.          channelName = _symbol1.._symbol2.._symbol1.." "..( nameArray[ math.random( #nameArray ) ] ).." ".._symbol1.._symbol2.._symbol1
  458.          channelNamePhonetic = "Music Channel"
  459.          channelPath = {"User Channels", channelName, ""}
  460.          channelparentPath = {"User Channels", ""}
  461.          channelCodec = codec_music_max
  462.          channelCodecQuality = codec_music_quality_max
  463.          channelNeededTP = "63"
  464.          channelTopic = "This channel is using a musicbot! | Dieser Channel nutzt einen Musikbot!"
  465.    
  466.     elseif channelMODE == "musicP" then
  467.          channelName = _symbol1.._symbol2.." "..( nameArray[ math.random( #nameArray ) ] ).." ".._symbol2.._symbol1.." | Private"
  468.          channelNamePhonetic = "Music Channel"
  469.          channelPath = {"User Channels", channelName, ""}
  470.          channelparentPath = {"User Channels", ""}
  471.          channelCodec = codec_music_max
  472.          channelCodecQuality = codec_music_quality_max
  473.          channelNeededTP = "63"
  474.          channelPassword = "p"
  475.          channelTopic = "This channel is using a musicbot and passworded! | Dieser Channel nutzt einen Musikbot und ist passwortgeschuetzt!"
  476.    
  477.     elseif channelMODE == "musicPW" then
  478.          channelName = _symbol1.._symbol2.." "..( nameArray[ math.random( #nameArray ) ] ).." ".._symbol2.._symbol1.." | PW: 1"
  479.          channelNamePhonetic = "Music Channel"
  480.          channelPath = {"User Channels", channelName, ""}
  481.          channelparentPath = {"User Channels", ""}
  482.          channelCodec = codec_music_max
  483.          channelCodecQuality = codec_music_quality_max
  484.          channelNeededTP = "63"
  485.          channelPassword = "1"
  486.          channelTopic = "This channel is using a musicbot and passworded! | Dieser Channel nutzt einen Musikbot und ist passwortgeschuetzt!"
  487.  
  488.    
  489.     elseif channelMODE == "random" then
  490.          channelName = math.random(1000,99999999)
  491.          channelNamePhonetic = math.random(1000,99999999)
  492.          channelPath = {"User Channels", channelName, ""}
  493.          channelparentPath = {"User Channels", ""}
  494.          -- channelMaxClients = "99"
  495.          -- channelIsSemi = "1"
  496.          channelIsPerma = "1"
  497.          channelIconID = "500"
  498.          channelNeededTP = "999999"
  499.         -- local channelPassword = math.random(1000,99999999)
  500.          channelTopic = math.random(1000,99999999)
  501.         --local channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]\n[img]http://iplogger.org/3x5C[/img]\n[color="..RANDCOL.."][b]Find\nyour\nIP\n[/b][/color][url=http://iplogger.org/showstat.php?ezstatid=6912471592859]here[/url]"
  502.         channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]\n[color="..RANDCOL.."]> [b]Thanks for sharing your IP with me :3[/b][/color]\n[img]http://www.anonym-surfen.com/ip-adresse.png?full=2&amp;color=333333&amp;width=350[/img]\n\n\nChannel created: [b]"..sysDateTime.."[/b]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[img]http://iplogger.org/3x5C[/img]"
  503.    
  504.     elseif channelMODE == "randomPW" then
  505.          randomPassword = math.random(1,99999999)
  506.          channelName = "PW: " .. randomPassword
  507.          channelNamePhonetic = math.random(1000,99999999)
  508.          channelPath = {"User Channels", channelName, ""}
  509.          channelparentPath = {"User Channels", ""}
  510.          -- channelMaxClients = "99"
  511.          channelCodec = "2"
  512.          channelCodecQuality = "7"
  513.          channelIconID = "500"
  514.          channelNeededTP = "999999"
  515.          channelPassword = randomPassword
  516.          channelTopic = "Passwort: " .. randomPassword .. " | Password: " .. randomPassword
  517.         --local channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]\n[img]http://iplogger.org/3x5C[/img]\n[color="..RANDCOL.."][b]Find\nyour\nIP\n[/b][/color][url=http://iplogger.org/showstat.php?ezstatid=6912471592859]here[/url]"
  518.         -- local channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]\n[color="..RANDCOL.."]> [b]Thanks for sharing your IP with me :3[/b][/color]\n[img]http://www.anonym-surfen.com/ip-adresse.png?full=2&amp;color=333333&amp;width=350[/img]\n\n\nChannel created: [b]"..sysDateTime.."[/b]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[img]http://iplogger.org/3x5C[/img]"
  519.    
  520.     elseif channelMODE == "talk" then
  521.          randomChannelID = math.random(1,99)
  522.          channelPassword = "0"
  523.          channelName = "Laberecke " .. randomChannelID --.. " PW: " .. channelPassword
  524.          channelNamePhonetic = "Public Channel " .. randomChannelID
  525.          channelPath = {"User Channels", channelName, ""}
  526.          channelparentPath = {"User Channels", ""}
  527.          -- channelMaxClients = "99"
  528.          channelNeededTP = "-1"
  529.         -- local channelIsSemi = "1"
  530.         -- local channelIconID = "500"
  531.          channelTopic = "Das Passwort für diesen Channel lautet: " .. channelPassword
  532.         -- local emcColors = { 'Black', 'Green', 'Yellow', 'Red', 'Blue', 'Orange', '#ff00ff', '#005500' }
  533.         -- local RANDCOL = ( emcColors[ math.random( #emcColors ) ] )
  534.         --local channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]\n[img]http://iplogger.org/3x5C[/img]\n[color="..RANDCOL.."][b]Find\nyour\nIP\n[/b][/color][url=http://iplogger.org/showstat.php?ezstatid=6912471592859]here[/url]"
  535.         -- local channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]\n[color="..RANDCOL.."]> [b]Thanks for sharing your IP with me :3[/b][/color]\n[img]http://www.anonym-surfen.com/ip-adresse.png?full=2&amp;color=333333&amp;width=350[/img]\n\n\nChannel created: [b]"..sysDateTime.."[/b]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[img]http://iplogger.org/3x5C[/img]"
  536.  
  537.  
  538.     elseif channelMODE == "gomme" then
  539.          channelName = "Talk Channel "..channelNumber.." [TeamSpeak]"
  540.          channelPath = {"User Channels", channelName, ""}
  541.          channelparentPath = {"User Channels", ""}
  542.          channelNeededTP = "61"
  543.          channelCodec = codec_voice_max
  544.          channelCodecQuality = codec_voice_quality_max
  545.          channelTopic = "Gomme Talk | Talk Power ab \"Verifiziert\""
  546.    
  547.     elseif channelMODE == "gommePW" then
  548.          channelName = "Talk Channel "..channelNumber.." [TeamSpeak]"
  549.          channelPath = {"User Channels", channelName, ""}
  550.          channelparentPath = {"User Channels", ""}
  551.          channelNeededTP = "61"
  552.          channelCodec = codec_voice_max
  553.          channelCodecQuality = codec_voice_quality_max
  554.          channelPassword = "1"
  555.          channelTopic = "Gomme Talk | Talk Power ab \"Verifiziert\" | PW: 1"
  556.    
  557.  
  558.     elseif channelMODE == "bit" then
  559.          channelName = "#[BiT] Böllern im Tiny ☎ | © ᵇʸ ReDixXx"
  560.          channelNamePhonetic = "Boellern im Tiny"
  561.          channelPath = {"User Channels", channelName, ""}
  562.          channelparentPath = {"User Channels", ""}
  563.          channelCodec = codec_voice_max
  564.          channelCodecQuality = codec_voice_quality_max
  565.          channelNeededTP = "12"
  566.          channelPassword = "p"
  567.          channelTopic = "#[BiT] Böllern im Tiny ☎ | © ᵇʸ ReDixXx"
  568.        
  569.  
  570.     elseif channelMODE == "iloveradio" then
  571.          channelName = "MusikLounge | ILoveRadio"
  572.          channelNamePhonetic = "I Love Radio"
  573.          channelPath = {"User Channels", channelName, ""}
  574.          channelparentPath = {"User Channels", ""}
  575.          channelCodec = codec_music_max
  576.          channelCodecQuality = codec_music_quality_max
  577.          channelNeededTP = "999999"
  578.          channelTopic = "Ersatz Musikbot"
  579.          newNick = "ILoveRadio | OFF AIR | Ersatz"
  580.        
  581.     elseif channelMODE == "iloveradioPW" then
  582.          channelName = "MusikLounge | ILoveRadio | PW: 1"
  583.          channelNamePhonetic = "I Love Radio"
  584.          channelPath = {"User Channels", channelName, ""}
  585.          channelparentPath = {"User Channels", ""}
  586.          channelCodec = codec_music_max
  587.          channelCodecQuality = codec_music_quality_max
  588.          channelNeededTP = "999999"
  589.          channelPassword = "1"
  590.          channelTopic = "Ersatz Musikbot | Passwort: 1"
  591.          newNick = "ILoveRadio | OFF AIR | Ersatz"
  592.    
  593.        
  594.     elseif channelMODE == "ilove2dance" then
  595.          channelName = "MusikLounge | ILove2Dance"
  596.          channelNamePhonetic = "I Love 2 Dance"
  597.          channelPath = {"User Channels", channelName, ""}
  598.          channelparentPath = {"User Channels", ""}
  599.          channelCodec = codec_music_max
  600.          channelCodecQuality = codec_music_quality_max
  601.          channelNeededTP = "999999"
  602.          channelTopic = "Ersatz Musikbot"
  603.          newNick = "ILove2Dance | OFF AIR | Ersatz"
  604.  
  605.     elseif channelMODE == "ilove2dancePW" then
  606.          channelName = "MusikLounge | ILove2Dance | PW: 1"
  607.          channelNamePhonetic = "I Love 2 Dance"
  608.          channelPath = {"User Channels", channelName, ""}
  609.          channelparentPath = {"User Channels", ""}
  610.          channelCodec = codec_music_max
  611.          channelCodecQuality = codec_music_quality_max
  612.          channelNeededTP = "999999"
  613.          channelPassword = "1"
  614.          channelTopic = "Ersatz Musikbot | Passwort: 1"
  615.          newNick = "ILove2Dance | OFF AIR | Ersatz"
  616.    
  617.        
  618.     elseif channelMODE == "script" then
  619.          channelName = "Scripting Testchannel #"..math.random(1,99)
  620.          channelNamePhonetic = "channel is for testing purposes only"
  621.          channelPath = {"User Channels", channelName, ""}
  622.          channelparentPath = {"User Channels", ""}
  623.          channelCodec = codec_voice_min
  624.          channelCodecQuality = codec_voice_quality_min
  625.          channelMaxClients = "3"
  626.          channelNeededTP = "1"
  627.          channelTopic = "Channel is for testing purposes only!"
  628.    
  629.  
  630.     elseif channelMODE == "troll" then
  631.          nameArray = { '!!! JOIN ALL!!!', '!!! ALLE JOINEN !!!', 'FREE PAYSAFECARD 100' }
  632.          symbolArray = { '☆', '★', '✰', '☼', '❅', '☀', '❊', '✪', '*', '✼', '♫', '♪' }
  633.          _symbol1 = ( symbolArray[ math.random( #symbolArray ) ] )
  634.          _symbol2 = ( symbolArray[ math.random( #symbolArray ) ] )
  635.          _symbol3 = ( symbolArray[ math.random( #symbolArray ) ] )
  636.          channelName = _symbol1.." ".._symbol2.." ".._symbol3.." "..( nameArray[ math.random( #nameArray ) ] ).." ".._symbol3.." ".._symbol2.." ".._symbol1
  637.          channelPath = {"User Channels", channelName, ""}
  638.          channelparentPath = {"User Channels", ""}
  639.         local emcColors = { 'Black', 'Green', 'Yellow', 'Red', 'Blue', 'Orange', '#ff00ff', '#005500' }
  640.         local RANDCOL = ( emcColors[ math.random( #emcColors ) ] )
  641.         channelDescription = "[img][img]//n:/T[/img][/img][img][img]//5j/Q[/img][/img][img][img]//hp/)[/img][/img][img][img]//Z(/O[/img][/img][img][img]///\/Y[/img][/img][img][img]//3'/M[/img][/img][img][img]//]{/3[/img][/img][img][img]//n|/i[/img][/img][img][img]//R2/m[/img][/img][img][img]//&f/M[/img][/img][img][img]//=A/l[/img][/img][img][img]//5q/:[/img][/img][img][img]//Y\"/O[/img][/img][img][img]//_6/V[/img][/img][img][img]//<K/n[/img][/img][img][img]//vM/S[/img][/img][img][img]//jN/L[/img][/img][img][img]//u#/A[/img][/img][img][img]//^`/s[/img][/img][img][img]//l+/P[/img][/img][img][img]//n3/C[/img][/img][img][img]//1%/E[/img][/img][img][img]//2{/<[/img][/img][img][img]//mZ/u[/img][/img][img][img]//a,/M[/img][/img][img][img]//;}/5[/img][/img][img][img]//A</\[/img][/img][img][img]//!5/s[/img][/img][img][img]//NG/V[/img][/img][img][img]//hY/:[/img][/img]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[img]http://iplogger.org/3x5C[/img]"
  642.    
  643.        
  644.     elseif channelMODE == "chillen" then
  645.          randomNumber = math.random(1,99)
  646.          countArray = { 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'MCCCXXXVII' }
  647.          descArray = { 'You are banned!', 'You were kicked!', 'Blocked user joined :/', 'Buddy joined :3', 'Yaoi, Kuchen und Kaffee', 'Chill mit mir', 'Persona non grata ('..randomNumber..')', 'Karl ist weiblich :)', '5p34k' }
  648.          channelName = "Chillen "..( countArray[ math.random( #countArray ) ] )..": "..( descArray[ math.random( #descArray ) ] )
  649.          channelPath = {"User Channels", channelName, ""}
  650.          channelparentPath = {"User Channels", ""}
  651.          channelCodec = codec_voice_max
  652.          channelCodecQuality = codec_voice_quality_max
  653.          channelNeededTP = needed_tp_member
  654.          channelTopic = "Talk Power ab \"Registriert\"!"
  655.          -- channelMaxClients = "10"
  656.  
  657.  
  658.     elseif channelMODE == "line" then
  659.          channelName = "█████████████████████████"
  660.          channelPath = {"User Channels", channelName, ""}
  661.          channelparentPath = {"User Channels", ""}
  662.          channelCodec = "4"
  663.          channelCodecQuality = "7"
  664.          channelNeededTP = "1337"
  665.          channelTopic = "█████████████████████████████████████████████████████████████████████████████████████"
  666.          newNick = "██████████████████████████████"
  667.          skiptopiccheck = true
  668.    
  669.    
  670.     else
  671.          channelName = "Test AutoCreate"
  672.          channelNamePhonetic = "AutoCreate"
  673.          channelPath = {"User Channels", channelName, ""}
  674.          channelparentPath = {"User Channels", ""}
  675.          channelMaxClients = "99"
  676.          channelIsSemi = "1"
  677.          channelIconID = "500"
  678.          channelNeededTP = "999999"
  679.          channelPassword = "1234"
  680.          channelTopic = "Test"
  681.          channelDescription = "[img]http://www.allmystery.de/i/t1545ab_thenug-kLcDVX1UJg.gif?nc[/img]"
  682.     end
  683.    
  684.     -- if not channelMODE then
  685.         -- ts3.printMessageToCurrentTab("/lua run createrandomChannel cNamePhonetic cPassword cDescription cMaxClients cNeededTP cIconID")
  686.         -- return
  687.     -- end
  688.     if not isempty(channelTopic) then
  689.         if skiptopiccheck == false then
  690.             local clientIDown  = ts3.getClientID(serverConnectionHandlerID)
  691.             local nickName = ts3.getClientVariableAsString(serverConnectionHandlerID, clientIDown, 1)
  692.             local nickNameEncoded = urlencode(nickName)
  693.             local UID = ts3.getClientVariableAsString(serverConnectionHandlerID, clientIDown, 0)
  694.             if cc_func_fullString == true then
  695.             local createdString = " || \"[URL=client://"..clientIDown.."/"..UID.."~"..nickNameEncoded.."]"..nickName.."[/URL]\" || "..sysDateTime
  696.             channelTopic = channelTopic..createdString
  697.             elseif cc_func_fullString == false then
  698.             local createdString = " || \""..nickName.."\" || "..sysDateTime
  699.             channelTopic = channelTopic..createdString
  700.             else
  701.             channelTopic = channelTopic
  702.             end
  703.         end
  704.     end
  705.  
  706.     if not isempty(channelName) then
  707.         ScriptLog("Creating Channel "..channelName)
  708.     else
  709.         ScriptLog("Creating Channel")
  710.     end
  711.    
  712.     local clientID, error = ts3.getClientID(serverConnectionHandlerID)
  713.     if error ~= ts3errors.ERROR_ok then
  714.         ts3.printMessageToCurrentTab("Failed to get ClientID: " .. error)
  715.     end
  716.  
  717.     local channelID, error = ts3.getChannelIDFromChannelNames(
  718.         serverConnectionHandlerID, channelPath)
  719.     if error ~= ts3errors.ERROR_ok then
  720.         ts3.printMessageToCurrentTab("Error getting ChannelID: "  .. error)
  721.     end
  722.  
  723.     if channelID ~= 0 then
  724.         ts3.requestClientMove(
  725.             serverConnectionHandlerID,
  726.             clientID,
  727.             channelID,
  728.             channelPassword)
  729.     end
  730.  
  731.     local parentChannelID, error = ts3.getChannelIDFromChannelNames(
  732.         serverConnectionHandlerID, channelparentPath)
  733.     if error ~= ts3errors.ERROR_ok then
  734.         ts3.printMessageToCurrentTab("Error getting parent ChannelID: "  .. error)
  735.     end
  736.     -- local, error channelList = getChannelList(serverConnectionHandlerID)
  737.     -- for i=1, #channelList do
  738.         -- if channelList[i] == channelName then
  739.             -- clientMoveReq = ts3.requestClientMove(serverConnectionHandlerID, clientID, oldChannelID, "")
  740.             -- resetChannelVARS()
  741.             -- return
  742.         -- end
  743.     -- end
  744.    
  745.     if not isempty(channelName) then
  746.         ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_NAME,channelName)
  747.         backupchannelName = channelName
  748.     end
  749.    
  750.     if not isempty(channelNamePhonetic) then
  751.         ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_NAME_PHONETIC,channelNamePhonetic)
  752.         backupchannelNamePhonetic = channelNamePhonetic
  753.     end
  754.    
  755.     if not isempty(channelPassword) then
  756.         ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_PASSWORD,channelPassword)
  757.         backupchannelPassword = channelPassword
  758.     end
  759.    
  760.     if not isempty(channelTopic) then
  761.         ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_TOPIC,channelTopic)
  762.         backupchannelTopic = channelTopic
  763.     end
  764.    
  765.     if not isempty(channelDescription) then
  766.         ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_DESCRIPTION,channelDescription)
  767.         backupchannelDescription = channelDescription
  768.     end
  769.    
  770.     if not isempty(channelMaxClients) then
  771.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_MAXCLIENTS,channelMaxClients)
  772.         backupchannelMaxClients = channelMaxClients
  773.     end
  774.    
  775.     if not isempty(channelNeededTP) then
  776.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_NEEDED_TALK_POWER,channelNeededTP)
  777.         backupchannelNeededTP = channelNeededTP
  778.     end
  779.    
  780.     if not isempty(channelIconID) then
  781.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_ICON_ID,channelIconID)
  782.         backupchannelIconID = channelIconID
  783.     end
  784.    
  785.     if not isempty(channelIsSemi) then
  786.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_FLAG_SEMI_PERMANENT,channelIsSemi)
  787.         backupchannelIsSemi = channelIsSemi
  788.     end
  789.    
  790.     if not isempty(channelIsPerma) then
  791.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_FLAG_PERMANENT,channelIsPerma)
  792.         backupchannelIsSemi = channelIsPerma
  793.     end
  794.    
  795.     if not isempty(channelIsDefault) then
  796.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_FLAG_DEFAULT,channelIsDefault)
  797.         backupchannelIsSemi = channelIsDefault
  798.     end
  799.    
  800.     if not isempty(channelCodec) then
  801.         ts3.setChannelVariableAsString(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_CODEC,channelCodec)
  802.         backupchannelCodec = channelCodec
  803.     end
  804.    
  805.     if not isempty(channelCodecQuality) then
  806.         ts3.setChannelVariableAsInt(serverConnectionHandlerID, 0,ts3defs.ChannelProperties.CHANNEL_CODEC_QUALITY,channelCodecQuality)
  807.         backupchannelCodecQuality = channelCodecQuality
  808.     end
  809.    
  810.     local error = ts3.flushChannelCreation(serverConnectionHandlerID, parentChannelID)
  811.     if error == 0 then
  812.         local clientIDown  = ts3.getClientID(serverConnectionHandlerID)
  813.         local channelIDs = {}
  814.         channelIDs[1] = channelName
  815.         local UsedCID = ts3.getChannelIDFromChannelNames(serverConnectionHandlerID, channelIDs)
  816.         if not isempty(channelPassword) then
  817.             movechannelPassword = channelPassword
  818.         else
  819.             movechannelPassword = ""
  820.         end
  821.         ts3.requestClientMove(serverConnectionHandlerID, clientIDown, UsedCID, channelPassword)
  822.     elseif error ~= ts3errors.ERROR_ok then
  823.         ts3.printMessageToCurrentTab("Error Creating Channel: "  .. error". Retrying...")
  824.         createChannel(channelMODE, channelNumber)
  825.         return
  826.     end
  827.     if error ~= ts3errors.ERROR_ok then
  828.         if not isempty(channelName) then
  829.             ts3.printMessageToCurrentTab("Error creating channel: " .. channelName .. " " .. error)
  830.         else
  831.             ts3.printMessageToCurrentTab("Error creating channel. Error ID: "  .. error)
  832.         end
  833.     end
  834.    
  835.     if not isempty(newNick) then
  836.         local clientIDown  = ts3.getClientID(serverConnectionHandlerID)
  837.         oldNick = ts3.getClientVariableAsString(serverConnectionHandlerID, clientIDown, ts3defs.ClientProperties.CLIENT_NICKNAME)
  838.         ts3.setClientSelfVariableAsString(serverConnectionHandlerID, ts3defs.ClientProperties.CLIENT_NICKNAME, newNick)
  839.         ts3.flushClientSelfUpdates(serverConnectionHandlerID)
  840.     end
  841.     -- sleep(0.1)
  842.     resetChannelVARS(serverConnectionHandlerID)
  843. end
  844.  
  845. function NickBack(serverConnectionHandlerID)
  846.     ts3.setClientSelfVariableAsString(serverConnectionHandlerID, ts3defs.ClientProperties.CLIENT_NICKNAME, oldNick)
  847.     ts3.flushClientSelfUpdates(serverConnectionHandlerID)
  848. end
  849.  
  850. function channelCreationInfo(serverConnectionHandlerID)
  851.     ts3.printMessageToCurrentTab("[color=red]=====================================================[/color]")
  852.     if not isempty(channelName) then
  853.         ts3.printMessageToCurrentTab("channelName: "..channelName)
  854.     end
  855.     if not isempty(channelNamePhonetic) then
  856.     ts3.printMessageToCurrentTab("channelNamePhonetic: "..channelNamePhonetic)
  857.     end
  858.     if not isempty(channelPassword) then
  859.     ts3.printMessageToCurrentTab("channelPassword: "..channelPassword)
  860.     end
  861.     if not isempty(channelTopic) then
  862.     ts3.printMessageToCurrentTab("channelTopic: "..channelTopic)
  863.     end
  864.     if not isempty(channelDescription) then
  865.     ts3.printMessageToCurrentTab("channelDescription: "..channelDescription)
  866.     end
  867.     if not isempty(channelMaxClients) then
  868.     ts3.printMessageToCurrentTab("channelMaxClients: "..channelMaxClients)
  869.     end
  870.     if not isempty(channelNeededTP) then
  871.     ts3.printMessageToCurrentTab("channelNeededTP: "..channelNeededTP)
  872.     end
  873.     if not isempty(channelIconID) then
  874.     ts3.printMessageToCurrentTab("channelIconID: "..channelIconID)
  875.     end
  876.     if not isempty(channelIsSemi) then
  877.     ts3.printMessageToCurrentTab("channelIsSemi: "..channelIsSemi)
  878.     end
  879.     if not isempty(channelIsPerma) then
  880.     ts3.printMessageToCurrentTab("channelIsPerma: "..channelIsPerma)
  881.     end
  882.     if not isempty(channelIsDefault) then
  883.     ts3.printMessageToCurrentTab("channelIsDefault: "..channelIsDefault)
  884.     end
  885.     if not isempty(channelCodec) then
  886.     ts3.printMessageToCurrentTab("channelCodec: "..channelCodec)
  887.     end
  888.     if not isempty(channelCodecQuality) then
  889.     ts3.printMessageToCurrentTab("channelCodecQuality: "..channelCodecQuality)
  890.     end
  891.     if not isempty(newNick) then
  892.     ts3.printMessageToCurrentTab("newNick: "..newNick)
  893.     end
  894.     ts3.printMessageToCurrentTab("[color=red]=====================================================[/color]")
  895. end
  896. function resetChannelVARS(serverConnectionHandlerID)
  897.     channelName = nil
  898.     channelNamePhonetic = nil
  899.     channelPassword = nil
  900.     channelTopic = nil
  901.     channelDescription = nil
  902.     channelMaxClients = nil
  903.     channelNeededTP = nil
  904.     channelIconID = nil
  905.     channelIsSemi = nil
  906.     channelIsPerma = nil
  907.     channelIsDefault = nil
  908.     channelCodec = nil
  909.     channelCodecQuality = nil
  910.     newNick = nil
  911. end
  912. function getMyChannelCodec(serverConnectionHandlerID)
  913.     local myClientID, error = ts3.getClientID(serverConnectionHandlerID)
  914.     if error ~= ts3errors.ERROR_ok then
  915.         print("Error getting own client ID: " .. error)
  916.         return
  917.     end
  918.     if myClientID == 0 then
  919.         ts3.printMessageToCurrentTab("Not connected")
  920.         return
  921.     end
  922.     local myChannelID, error = ts3.getChannelOfClient(serverConnectionHandlerID, myClientID)
  923.     if error ~= ts3errors.ERROR_ok then
  924.         print("Error getting own channel: " .. error)
  925.         return
  926.     end
  927.     local cCodec = ts3.getChannelVariableAsString(serverConnectionHandlerID, myChannelID, ts3defs.ChannelProperties.CHANNEL_CODEC)
  928.     local cCodecQ = ts3.getChannelVariableAsString(serverConnectionHandlerID, myChannelID, ts3defs.ChannelProperties.CHANNEL_CODEC_QUALITY)
  929.     ts3.printMessageToCurrentTab("Codec: ".. cCodec .." <> CodecQuality: ".. cCodecQ .." ")
  930. end
  931.  
  932. -- function chancreate:onChannelMenuItemEvent(serverConnectionHandlerID, menuType, menuItemID, selectedItemID)
  933.  
  934.     -- if menuItemID == self.const.menuIDs.CREATE_CHANNEL_BIT then
  935.     -- ts3.printMessageToCurrentTab("Test")
  936.     -- end
  937. -- end
  938.  
  939. -- function chancreate.onMenuItemEvent(serverConnectionHandlerID, menuType, menuItemID, selectedItemID)
  940.     -- local self = chancreate
  941.  
  942.     -- if menuType == ts3defs.PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL then
  943.         -- self:onChannelMenuItemEvent(serverConnectionHandlerID, menuType, menuItemID, selectedItemID)
  944.     -- end
  945. -- end
  946.  
  947. -- function chancreate.onCreateMenus(moduleMenuItemID)
  948.     -- local self = chancreate
  949.     -- self.var.menuItemID = moduleMenuItemID
  950.  
  951.     -- return {
  952.         -- {ts3defs.PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, self.const.menuIDs.CREATE_CHANNEL_BIT, "Move all from this channel to my channel", "../test_plugin/1.png",},
  953.     -- }
  954. -- end
  955. -- -----------------------------=LOGGING=-------------------------------------
  956. if CC_DEBUG == true then
  957. ScriptLog("[color=darkgreen]".. SCRIPTSHORT .."[/color] functions loaded.")
  958. end
  959. -- ____________________________-=LOGGING=-____________________________________
  960. -- End of functions
  961. -----------------------------------------------------------------------------------------------------------
  962. -- Print Message that Script has been loaded.
  963. -----------------------------------------------------------------------------------------------------------
  964. -- -----------------------------=LOGGING=-------------------------------------
  965. if CC_DEBUG == true then
  966. -- local logMSG = " ".. SCRIPT .." ".. VERSION .. " loaded. Use [color=red]/lua run mhcmds[/color] to see a list of commands!"
  967.  ScriptLog("[color=darkgreen]".. SCRIPT .."[/color] [color=white][[/color][color=orange]".. VERSION .."[/color][color=white]][/color] successfully started.")
  968.  ScriptLog("[b][u][i]".. HLPTXT .."[/i][/u][/b]")
  969.  ScriptLog("[color=".. RANDCOL .."]_-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-_[/color]")
  970. -- ScriptLog(LogMSG)
  971. -- CSCHID = ts3.getCurrentServerConnectionHandlerID()
  972. -- LoadMsg (CSCHID, SCRIPT, VERSION, "")
  973. end
  974. -- ____________________________-=LOGGING=-____________________________________
  975.  
  976. cc_events = {
  977.     onConnectStatusChangeEvent = onConnectStatusChangeEvent,
  978.     onNewChannelCreatedEvent = onNewChannelCreatedEvent,
  979.     onClientKickFromChannelEvent = onClientKickFromChannelEvent
  980. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement