Advertisement
Guest User

Untitled

a guest
May 31st, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.38 KB | None | 0 0
  1. <?php
  2.  
  3. error_reporting(E_ALL);
  4.  
  5. class getChannel {
  6.  
  7. private static $eventName = 'getChannel';
  8. private static $config;
  9. private static $simpleConfig = array(
  10. );
  11. private static $cacheNames = array();
  12. private static $clientsNeedHelp = array();
  13.  
  14. private static function loadConfig() {
  15. global $lang;
  16. $cfg = getEventConfigValue(self::$eventName);
  17. if ($cfg != false) {
  18. self::$config = $cfg;
  19. } else {
  20. self::$config = self::$simpleConfig;
  21. echo ": > [".self::$eventName."]: ".$lang->getConsoleLanguage('SIMPLE_CONFIGURATION')."\n";
  22. }
  23. return true;
  24. }
  25.  
  26. public static function onRegister() {
  27. global $cache;
  28. self::loadConfig();
  29.  
  30. return true;
  31. }
  32. private static function getFirstFreeChannel($commandConfig) {
  33. global $ts, $cache;
  34. $channelList = $cache->getCacheValue('ch_channels');
  35. $channelsInSection = array();
  36. $channelsIdList = array();
  37. foreach ($channelList as $channel) {
  38. if ($channel['pid'] == $commandConfig['channels_section'])
  39. $channelsInSection[] = $channel['channel_name'];
  40. }
  41. foreach ($channelsInSection as $channelName) {
  42. $channelsIdList[] = preg_replace($commandConfig['channel_num_regex'],'\1',$channelName);
  43. }
  44. unset($channelsInSection,$channelList);
  45. for ($i=1;$i>=1;$i++) {
  46. if (!in_array($i,$channelsIdList))
  47. return $i;
  48. }
  49. }
  50. private static function getLastChannelSubChannel($cid) {
  51. global $ts, $cache;
  52. $channelList = $cache->getCacheValue('ch_channels');
  53. $channelSubs = array();
  54. foreach ($channelList as $channel) {
  55. if ($channel['pid'] == $cid)
  56. $channelSubs[] = $channel;
  57. }
  58. return @$channelSubs[count($channelSubs)-1] or false;
  59. }
  60.  
  61. private static function checkGroups($clientGroups, $groups) {
  62. foreach ($clientGroups as $clientGroup) {
  63. if (in_array($clientGroup,$groups))
  64. return true;
  65. }
  66. return false;
  67. }
  68. public static function checkText($input, $maximalCharsNums){
  69. $output;
  70. $SRaw = $input;
  71. $maximalCharsNum = $maximalCharsNums;
  72. $maximalCharsNum += 2;
  73. if(strlen($SRaw) >= $maximalCharsNum){
  74. $output = substr($SRaw, 0, $maximalCharsNum)."";
  75. } else {
  76. $output = $SRaw;
  77. }
  78. return $output;
  79. }
  80. private static function ID($client)
  81. {
  82. return '[URL=client://0/'.$client['client_unique_identifier'].'~'.urlencode($client['client_nickname']).']'.$client['client_nickname'].'[/URL]';
  83. }
  84. public static function onClientAreOnChannel($clid = null,$cid = 0,$invokerid = null,$clientsData = null) {
  85. global $ts, $kernel, $lang, $cache, $clientsData, $channelsData, $whoami;
  86. $clientInfo = $ts->getElement($ts->getClientInfo($clid),'data');
  87. $cgroups = $ts->getElement('data',$ts->channelGroupClientList(null, $clientInfo['client_database_id'], self::$config['channel_admin_group_id']));
  88. $create = true;
  89. $clientGroups = explode(",",$clientInfo['client_servergroups']);
  90. if($cgroups[0][""] === ""){
  91. $create = false;
  92. }else{
  93. $found_c = $cgroups[0]["cid"];
  94. }
  95. $channelFound = false;
  96.  
  97. if(self::checkGroups($clientGroups, self::$config['need_groups'])){
  98. if($create == false){
  99. if ($clid != $whoami['client_id'] && array_key_exists('client_nickname',$clientInfo) == true){
  100. foreach ($channelsData as $channel) {
  101. if($channel['pid'] == self::$config['channels_section']){
  102. if($channel['channel_topic'] == '#free'){
  103. $channelFound = $channel;
  104. break;
  105. }
  106. }
  107. }
  108. list($number, $rest) = explode(".", $channelFound['channel_name']);
  109. if($channelFound){
  110. $ts->editChannel($channelFound['cid'],array(
  111. 'channel_topic' => date('d').'.'.date('m').'.'.date('y'),
  112. 'channel_description' => $lang->langReplace(array('[user_nick]', '[date]','[CH_NUM]'), array(self::ID($clientInfo), date("d/m/y H:i", time()), $number), 'CH_NEW_DESCRIPTION'),
  113. 'channel_name' => $number.'. '.self::checkText($clientInfo['client_nickname'], 15). ' - Kanał',
  114. 'channel_flag_maxclients_unlimited' => 1,
  115. 'channel_flag_maxfamilyclients_unlimited' => 1,
  116. 'channel_maxclients' => 1,
  117. 'channel_maxfamilyclients' => 1,
  118. 'channel_password' => '12345'
  119. )
  120. );
  121. $ts->moveClient($clid,$channelFound['cid']);
  122. $ts->sendMessage(1, $clid,$lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_ID]','[CH_NUM]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $channel['cid'],$number),'CH_USER'));
  123. $ts->setClientChannelGroup($channelFound['cid'],self::$config['channel_admin_group_id'],$clientInfo['client_database_id']);
  124. if (self::$config['max_subchannels'] > 0) {
  125. for ($i = 1; $i <= self::$config['max_subchannels']; $i++) {
  126. $ts->createChannel(
  127. array(
  128. 'channel_flag_semi_permanent' => 0,
  129. 'channel_flag_permanent' => 1,
  130. 'channel_name' => $i . '. ' . $lang->getLanguage('CH_UPDATE_DEFAULT_NAME'),
  131. 'channel_description' => $lang->langReplace(array('[ID]','[NICK]'),array($i,$clientInfo['client_nickname']),'CH_SUB_DESC'),
  132. 'cpid' => $channelFound['cid'],
  133. 'channel_codec' => self::$config['channel_codec'],
  134. 'channel_codec_quality' => self::$config['channel_codec_level'],
  135. 'channel_password' => '12345'
  136. )
  137. );
  138. }
  139. }
  140. }else{
  141. $ts->pokeClient($clid, 'Brak wolnych kanałów! Wróć za chwilkę!');
  142. $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Brak wolnych kanałów! Wróć za chwilkę!'), 'channel');
  143. }
  144. }
  145. }else{
  146. $channelInfo = $ts->getElement($ts->getChannelInfo($found_c), 'data');
  147. list($number, $name) = explode(".", $channelInfo['channel_name'], 2);
  148. $ts->sendMessage(1, $clid, $lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_NUMB]','[CH_NAME]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $number,$name),'CH_USER_BAD'));
  149. $ts->moveClient($clid,$found_c);
  150. }
  151. }else{
  152. $ts->pokeClient($clid, 'Aby otrzymać kanał najpierw się zarejestruj');
  153. $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Aby otrzymać kanał najpierw się zarejestruj'), 'channel');
  154.  
  155. }<?php
  156.  
  157. error_reporting(E_ALL);
  158.  
  159. class getChannel {
  160.  
  161. private static $eventName = 'getChannel';
  162. private static $config;
  163. private static $simpleConfig = array(
  164. );
  165. private static $cacheNames = array();
  166. private static $clientsNeedHelp = array();
  167.  
  168. private static function loadConfig() {
  169. global $lang;
  170. $cfg = getEventConfigValue(self::$eventName);
  171. if ($cfg != false) {
  172. self::$config = $cfg;
  173. } else {
  174. self::$config = self::$simpleConfig;
  175. echo ": > [".self::$eventName."]: ".$lang->getConsoleLanguage('SIMPLE_CONFIGURATION')."\n";
  176. }
  177. return true;
  178. }
  179.  
  180. public static function onRegister() {
  181. global $cache;
  182. self::loadConfig();
  183.  
  184. return true;
  185. }
  186. private static function getFirstFreeChannel($commandConfig) {
  187. global $ts, $cache;
  188. $channelList = $cache->getCacheValue('ch_channels');
  189. $channelsInSection = array();
  190. $channelsIdList = array();
  191. foreach ($channelList as $channel) {
  192. if ($channel['pid'] == $commandConfig['channels_section'])
  193. $channelsInSection[] = $channel['channel_name'];
  194. }
  195. foreach ($channelsInSection as $channelName) {
  196. $channelsIdList[] = preg_replace($commandConfig['channel_num_regex'],'\1',$channelName);
  197. }
  198. unset($channelsInSection,$channelList);
  199. for ($i=1;$i>=1;$i++) {
  200. if (!in_array($i,$channelsIdList))
  201. return $i;
  202. }
  203. }
  204. private static function getLastChannelSubChannel($cid) {
  205. global $ts, $cache;
  206. $channelList = $cache->getCacheValue('ch_channels');
  207. $channelSubs = array();
  208. foreach ($channelList as $channel) {
  209. if ($channel['pid'] == $cid)
  210. $channelSubs[] = $channel;
  211. }
  212. return @$channelSubs[count($channelSubs)-1] or false;
  213. }
  214.  
  215. private static function checkGroups($clientGroups, $groups) {
  216. foreach ($clientGroups as $clientGroup) {
  217. if (in_array($clientGroup,$groups))
  218. return true;
  219. }
  220. return false;
  221. }
  222. public static function checkText($input, $maximalCharsNums){
  223. $output;
  224. $SRaw = $input;
  225. $maximalCharsNum = $maximalCharsNums;
  226. $maximalCharsNum += 2;
  227. if(strlen($SRaw) >= $maximalCharsNum){
  228. $output = substr($SRaw, 0, $maximalCharsNum)."";
  229. } else {
  230. $output = $SRaw;
  231. }
  232. return $output;
  233. }
  234. private static function ID($client)
  235. {
  236. return '[URL=client://0/'.$client['client_unique_identifier'].'~'.urlencode($client['client_nickname']).']'.$client['client_nickname'].'[/URL]';
  237. }
  238. public static function onClientAreOnChannel($clid = null,$cid = 0,$invokerid = null,$clientsData = null) {
  239. global $ts, $kernel, $lang, $cache, $clientsData, $channelsData, $whoami;
  240. $clientInfo = $ts->getElement($ts->getClientInfo($clid),'data');
  241. $cgroups = $ts->getElement('data',$ts->channelGroupClientList(null, $clientInfo['client_database_id'], self::$config['channel_admin_group_id']));
  242. $create = true;
  243. $clientGroups = explode(",",$clientInfo['client_servergroups']);
  244. if($cgroups[0][""] === ""){
  245. $create = false;
  246. }else{
  247. $found_c = $cgroups[0]["cid"];
  248. }
  249. $channelFound = false;
  250.  
  251. if(self::checkGroups($clientGroups, self::$config['need_groups'])){
  252. if($create == false){
  253. if ($clid != $whoami['client_id'] && array_key_exists('client_nickname',$clientInfo) == true){
  254. foreach ($channelsData as $channel) {
  255. if($channel['pid'] == self::$config['channels_section']){
  256. if($channel['channel_topic'] == '#free'){
  257. $channelFound = $channel;
  258. break;
  259. }
  260. }
  261. }
  262. list($number, $rest) = explode(".", $channelFound['channel_name']);
  263. if($channelFound){
  264. $ts->editChannel($channelFound['cid'],array(
  265. 'channel_topic' => date('d').'.'.date('m').'.'.date('y'),
  266. 'channel_description' => $lang->langReplace(array('[user_nick]', '[date]','[CH_NUM]'), array(self::ID($clientInfo), date("d/m/y H:i", time()), $number), 'CH_NEW_DESCRIPTION'),
  267. 'channel_name' => $number.'. '.self::checkText($clientInfo['client_nickname'], 15). ' - Kanał',
  268. 'channel_flag_maxclients_unlimited' => 1,
  269. 'channel_flag_maxfamilyclients_unlimited' => 1,
  270. 'channel_maxclients' => 1,
  271. 'channel_maxfamilyclients' => 1,
  272. 'channel_password' => '12345'
  273. )
  274. );
  275. $ts->moveClient($clid,$channelFound['cid']);
  276.  
  277. $ts->moveClient(self::$config['clid_bota'],$channelFound['cid']);
  278. $ts->sendMessage(1, self::$config['clid_bota'],self::$config['komenda_start']);
  279. $ts->editChannel(self::$config['idkanalu_automatycznykanal'],array(
  280. 'channel_name' => self::$config['nazwa_off'],
  281. 'channel_flag_maxclients_unlimited' => 1,
  282. 'channel_flag_maxfamilyclients_unlimited' => 1,
  283. 'channel_maxclients' => 0,
  284. 'channel_maxfamilyclients' => 0,
  285. )
  286. );
  287. sleep(self::$config['interval']);
  288.  
  289.  
  290. $ts->sendMessage(1, $clid,$lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_ID]','[CH_NUM]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $channel['cid'],$number),'CH_USER'));
  291. $ts->setClientChannelGroup($channelFound['cid'],self::$config['channel_admin_group_id'],$clientInfo['client_database_id']);
  292. if (self::$config['max_subchannels'] > 0) {
  293. for ($i = 1; $i <= self::$config['max_subchannels']; $i++) {
  294. $ts->createChannel(
  295. array(
  296. 'channel_flag_semi_permanent' => 0,
  297. 'channel_flag_permanent' => 1,
  298. 'channel_name' => $i . '. ' . $lang->getLanguage('CH_UPDATE_DEFAULT_NAME'),
  299. 'channel_description' => $lang->langReplace(array('[ID]','[NICK]'),array($i,$clientInfo['client_nickname']),'CH_SUB_DESC'),
  300. 'cpid' => $channelFound['cid'],
  301. 'channel_codec' => self::$config['channel_codec'],
  302. 'channel_codec_quality' => self::$config['channel_codec_level'],
  303. 'channel_password' => '12345'
  304. )
  305. );
  306. }
  307. }
  308. $ts->sendMessage(1, self::$config['clid_bota'],self::$config['komenda_stop']);
  309. $ts->moveClient(self::$config['clid_bota'],self::$config['kanal_dyzurki']);
  310. $ts->editChannel(self::$config['idkanalu_automatycznykanal'],array(
  311. 'channel_name' => self::$config['nazwa_on'],
  312. 'channel_flag_maxclients_unlimited' => 1,
  313. 'channel_flag_maxfamilyclients_unlimited' => 1,
  314. 'channel_maxclients' => 1,
  315. 'channel_maxfamilyclients' => 1,
  316. )
  317. );
  318. }else{
  319. $ts->pokeClient($clid, 'Brak wolnych kanałów! Wróć za chwilkę!');
  320. $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Brak wolnych kanałów! Wróć za chwilkę!'), 'channel');
  321. }
  322. }
  323. }else{
  324. $channelInfo = $ts->getElement($ts->getChannelInfo($found_c), 'data');
  325. list($number, $name) = explode(".", $channelInfo['channel_name'], 2);
  326. $ts->sendMessage(1, $clid, $lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_NUMB]','[CH_NAME]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $number,$name),'CH_USER_BAD'));
  327. $ts->moveClient($clid,$found_c);
  328. }
  329. }else{
  330. $ts->pokeClient($clid, 'Aby otrzymać kanał najpierw się zarejestruj');
  331. $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Aby otrzymać kanał najpierw się zarejestruj'), 'channel');
  332.  
  333. }
  334. }
  335. }
  336. ?>
  337.  
  338. }
  339. }
  340. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement