Need a little help with adjusting shoutcast script of madman :D
 

Need a little help with adjusting shoutcast script of madman :D

Started by Quattro, 20 February, 2005, 00:36:38

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Quattro

what's wrong with this

Sorry not madman's script
sorry RabidWombat


#Code#


-- Shoutcast interface through PtokaX script

-- Author: RabidWombat

-- Requirements: the winamp source of the shoutcast server

-- is running on the hub server where this script is AND

-- you have installed Clever (a GREAT utility)

-- This is the version I downloaded for testing purposes

-- http://www.jukkis.net/clever/clever_2_98.zip

-- This is site for all offered versions:

-- http://www.jukkis.net/

--//Modded By Madman

--//Added !sc.song

--//Guide Added

--//More Stuff Added

--//Even More On Ubikk's Request ;p





--   Guide So You Can Add The Commands You Wish

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe prev"); --//Play Previous Song

--   execute(sCleverDir.."clever.exe alwaysontop"); --//Toggle Always On Top

--   execute(sCleverDir.."clever.exe pause"); --//Pauses

--   execute(sCleverDir.."clever.exe stop"); --//Stops

--   execute(sCleverDir.."clever.exe next"); --//Play Next Song

--   execute(sCleverDir.."clever.exe volup"); --//Increase The Volume

--   execute(sCleverDir.."clever.exe voldn"); --//Decrease The Volume

--   execute(sCleverDir.."clever.exe swshuffle"); --//Sets Shuffle On Off

--   execute(sCleverDir.."clever.exe swrepeat"); --//Sets Repet On Off

--   execute(sCleverDir.."clever.exe getshuffle > output.tmp"); --//Get Status on Shuffle

--   execute(sCleverDir.."clever.exe getrepeat > output.tmp"); --//Get Staus on Repeat

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe getinfo > output.tmp"); --//shows Info about the song

--   Example...

--   44kHz      128kbps      Channels:2

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe GETINFO > output.tmp"); --//shows Info about the song

-- Example...

--   044,128,2

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe prettyinfo > output.tmp"); --//Shows Pretty Info About The Song

--   Example..

--   Songname:   Ramp - The Logical Song (Original Mix)

--   Time:       04:22 of 06:57 (02:35 left)

--   Status:     Playing

--   Shuffle:    On

--   Repeat:     On

--   Playlist position 2 of 7 songs.

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe staus > output.tmp"); --//Shows Staus Of Winamp Ex. Play

--   execute(sCleverDir.."clever.exe songlength > output.tmp"); --//Total Length Of Song

--   execute(sCleverDir.."clever.exe timeleft > output.tmp"); --//Shows Timeleft

--   execute(sCleverDir.."clever.exe songtitle > output.tmp"); --//Shows The Song Title

--   execute(sCleverDir.."clever.exe visual"); --//Visualtion On Off

--   execute(sCleverDir.."clever.exe clear"); --//Clears The Playlist

--   execute(sCleverDir.."clever.exe playlist > output.tmp"); --//Show Playlist

--   execute(sCleverDir.."clever.exe play");    --//Start Play



--   if (strcmp(command, "play")==0) singleOpt(C_PLAY);

--   play        Play the song in playlist position

--   if (strcmp(command, "volume"    )==0) singleParam(C_SET_VOLUME);

--   volume      Set volume (0-255)





sCleverDir = "D:\\Program\\clever\\";

--// If other then C:\CLEVER you have to create C:\CLEVER mannuly...

--It's for the settings file

--Also rember to run the clever.exe fil first... you need to configure it =)

sBotName = "[Q.NL][Sec]Hub-Music";


BotEmail = "www.winamp.com"
 
BotSpeed = "Warpspeed"
 
BotTag = "<++ V:0.01,Music,Songs:3735>"
 
MyInfoString = "$MyINFO $ALL "..sBotName.." "..BotTag.."$ $"..BotSpeed..strchar( 1 ).."$"..BotEmail.."$"
 
 
 
function Main()
 
   frmHub:RegBot(sBotName)
 
   SendToAll(MyInfoString)
   
end

low = strlower;



sHelpOutput = "Commands\r\n";

sOpHelpOutput = "Op Commands\r\n";



--For ShoutCastSong

Msg = "The HubServer Is Playing" --Will show  "Msg songname"



function Main()

   tCommands = {

   --// 1 = Ops only...

   --// 0 = All

      [low("!SC.next")]    = { ShoutCastNext,   1,   "Play next song in playlist" },

      [low("!SC.prev")]    = { ShoutCastPrev,   1,   "Play prev song in playlist" },

      [low("!SC.playlist")]   = { ShoutCastPlayList,   0,   "Display Playlist" },

      [low("!SC.play")]   = { ShoutCastPlay,   1,   "Play" },

      [low("!SC.pause")]   = { ShoutCastPause,   1,   "Pause" },

      [low("!SC.stop")]   = { ShoutCastStop,   1,   "Stop" },

      [low("!SC.status")]   = { ShoutCastStatus,   0,   "Display Status" },

      [low("!SC.help")]   = { ShoutCastHelp,   0,   "Help Message" },

      [low("!SC.song")]   = { ShoutCastSong,   0,     "SongTitle"},

      [low("!SC.volup")]   = { ShoutCastVolUp,   1,   "Volume Up"},

      [low("!SC.voldn")]   = { ShoutCastVolDn,   1,   "Volume Down"},

      [low("!SC.playnr")]   = { ShoutCastPlayNr,1,   "Play nr X track"},

      [low("!SC.tracknr")]= { ShoutCastGetTrack,1,"Get current song's track number"},

      [low("!SC.vol")]   = { ShoutCastVol,   1,   "Set Volume 0-255"},

      [low("!SC.volhelp")]   = { ShoutCastVolHelp,   1,   "Volume Help"},

      [low("!SC.pretty")]   = { ShoutCastPretty,    1,   "Display Pretty info"},

--      [low("!SC.test")]   = { ShoutCastTest,   1,     "Test"},

--      [low("!SC.test2")]   = { ShoutCastTest2,   1,     "Test With Output.tmp"},

   };



   for sCmd, tCmd in tCommands do

      if(tCmd[2] == 1) then

         sOpHelpOutput = sOpHelpOutput..sCmd.."-\t"..tCmd[3].."\r\n";

      else

         sHelpOutput = sHelpOutput..sCmd.."-\t"..tCmd[3].."\r\n";

      end

   end



   frmHub:RegBot(sBotName);

end



function DataArrival(curUser, sData)

   local s, e, cmd, args = strfind(sData, "%b<>%s+(%S+)%s*([^%|]*)%|$");



   if(cmd == nil) then return 0; end

   cmd = strlower(cmd);



   --if(tCommands[cmd] and (tCommands[cmd][2] == 0 or (curUser.iProfile == 0))) then --//Masters Only

   if(tCommands[cmd] and (tCommands[cmd][2] == 0 or curUser.bOperator)) then --//Ops And Above

      curUser:SendData(sData);

      tCommands[cmd][1](curUser, args);

      return 1;

   end

end



function ShoutCastPretty(curUser)

   execute(sCleverDir.."clever.exe prettyinfo > output.tmp"); --//Shows Pretty Info About The Song

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      --curUser:SendData(sBotName, "\r\n"..line);

      SendToAll(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastVolUp(curUser)

   execute(sCleverDir.."clever.exe volup"); --//Increase The Volume

   curUser:SendData(sBotName, "Volume Increased")

end



function ShoutCastVol(curUser, args)

   if(args and tonumber(args)) then

      execute(sCleverDir.."clever.exe volume "..tonumber(args));

      curUser:SendData(sBotName, "Volume Set To " ..args)

   end

end



function ShoutCastVolDn(curUser)

   execute(sCleverDir.."clever.exe voldn"); --//Decrease The Volume

   curUser:SendData(sBotName, "Volume Decreased")

end



function ShoutCastVolHelp(curUser) --//Volume Help

   if(curUser.iProfile == 0) then

      curUser:SendPM(sBotName,"\r\nVolume Help\r\n"..

      "Write !sc.vol X\tX = Some Nr\n"..

      "The Text Bellow Show What A Nr Is In Volume %\r\n"..

      "10 = 3 %\r\n"..

      "20 = 7 %\r\n"..

      "30 = 11 %\r\n"..

      "40 = 15 %\r\n"..

      "50 = 19 %\r\n"..

      "60 = 23 %\r\n"..

      "70 = 27 %\r\n"..

      "80 = 31 %\r\n"..

      "90 = 35 %\r\n"..

      "100 = 39 %\r\n"..

      "110 = 43 %\r\n"..

      "120 = 47 %\r\n"..

      "130 = 50 %\r\n"..

      "140 = 54 %\r\n"..

      "150 = 58 %\r\n"..

      "160 = 62 %\r\n"..

      "170 = 66 %\r\n"..

      "180 = 70 %\r\n"..

      "190 = 74 %\r\n"..

      "200 = 78 %\r\n"..

      "210 = 82 %\r\n"..

      "220 = 86 %\r\n"..

      "230 = 90 %\r\n"..

      "240 = 94 %\r\n"..

      "250 = 98 %\r\n"..

      "255 = 100 %\r\n");

   end

end



function ShoutCastTest(curUser, args) --//For Testing

   if(args and tonumber(args)) then

      execute(sCleverDir.."clever.exe play "..tonumber(args));

   end

end



function ShoutCastTest2(curUser) --//For Testing

   execute(sCleverDir.."clever.exe -h > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastNext(curUser) --//Play Next Song

   execute(sCleverDir.."clever.exe next");

end



function ShoutCastPrev()

   execute(sCleverDir.."clever.exe prev"); --//Play Prev Song

end



function ShoutCastPlayNr(curUser, args)

   if(args and tonumber(args)) then

      execute(sCleverDir.."clever.exe play")

      execute(sCleverDir.."clever.exe play "..tonumber(args));

      execute(sCleverDir.."clever.exe songtitle > output.tmp");

      readfrom("output.tmp");

      local line = read("*a");

         if(line) then

            line = gsub(line, "\n", "");

         SendToOps(sBotName, curUser.sName.." has selected track "..tonumber(args).." [ "..line.." ]");

         end

   end

   readfrom();

end



function ShoutCastPlayList(curUser) --//Show Playlist

   execute(sCleverDir.."clever.exe playlist > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendPM(sBotName, "\r\n"..line);

   end

   readfrom();

end





function ShoutCastGetTrack(curUser) --//Get Track nr

   execute(sCleverDir.."clever.exe getplpos > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "");

      curUser:SendData(sBotName, "Current song's track number is: [ "..line.." ]");

   end

   readfrom();

end



function ShoutCastPlay()

   execute(sCleverDir.."clever.exe play"); --//Play

end



function ShoutCastPause()

   execute(sCleverDir.."clever.exe pause"); --//Pause

end



function ShoutCastStop()

   execute(sCleverDir.."clever.exe stop"); --//Stop

end



function ShoutCastStatus(curUser)

   execute(sCleverDir.."clever.exe status > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastSong(curUser) --//Playing Song
   execute(sCleverDir.."clever.exe songtitle > output.tmp")
   readfrom("output.tmp");
   local line = read("*a");
   if(line) then
      SendToAll(sBotName, Msg.." "..line);
   end
   readfrom();
end



function ShoutCastSongLength(curUser)

   execute(sCleverDir.."clever.exe songlength > output.tmp"); --//Total Length Of Song

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastTimeLeft(curUser)

   execute(sCleverDir.."clever.exe timeleft > output.tmp"); --//Shows Timeleft

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end





function ShoutCastHelp(curUser) --//Help

   curUser:SendData(sBotName, sHelpOutput);

   if(curUser.bOperator) then

   --if(curUser.iProfile == 0) then

      curUser:SendData(sBotName, sOpHelpOutput);

   end

end
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

bastya_elvtars

There is a script by Mutor that is MUCH better than this shoutcast script as it has no limitations. :)

http://www.plop.nl/ptokaxbots/Mutor/ShoutStats_1.0c.lua
Everything could have been anything else and it would have just as much meaning.

Quattro

My problem is that it's not working as i want it to...
i have working version, but i wanted to add some myinfo to it, so i borrowed some code from another script and rewrote it to fit in...
i wanted to add a tag and stuff...
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

Quattro

QuoteOriginally posted by bastya_elvtars
There is a script by Mutor that is MUCH better than this shoutcast script as it has no limitations. :)

http://www.plop.nl/ptokaxbots/Mutor/ShoutStats_1.0c.lua

Seen it, but does it work for normal winamp too?
i run just winamp on my pc and i want to be able to post info on what i'm playing at my server...
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

Quattro

ultimatly i want to change this to a dch++ script
or maybe a plugin (sed? )  :D
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

Madman

sCleverDir = "D:\\Program\\clever\\"; 
--// If other then C:\CLEVER you have to create C:\CLEVER mannuly...
--It's for the settings file
--Also rember to run the clever.exe fil first... you need to configure it =)

sBotName = "-=Destruction=-";

BotEmail = "Email" --//Bots Email
BotSpeed = "Connection" --//The Connection Of The Bot
BotDescr = "Description" --//You Bots Description
BotTag = "" --// Example <++ V:0.668,M:A,H:0/0/1,S:0>
BotShare = 1024 * 1024
MyInfoString = "$MyINFO $ALL "..sBotName.." "..BotDescr.." "..BotTag.."$ $"..BotSpeed..strchar( 1 ).."$"..BotEmail.."$" ..BotShare.."$"

low = strlower;

sHelpOutput = "Commands\r\n";
sOpHelpOutput = "Op Commands\r\n";

--For ShoutCastSong
Msg = "The HubServer Is Playing" --Will show  "Msg songname"

function Main()
	tCommands = {
	--// 1 = Ops only...
	--// 0 = All
		[low("!SC.next")] 	= { ShoutCastNext,	1,	"Play next song in playlist" },
		[low("!SC.prev")] 	= { ShoutCastPrev,	1,	"Play prev song in playlist" },
		[low("!SC.playlist")]	= { ShoutCastPlayList,	0,	"Display Playlist" },
		[low("!SC.play")]	= { ShoutCastPlay,	1,	"Play" },
		[low("!SC.pause")]	= { ShoutCastPause,	1,	"Pause" },
		[low("!SC.stop")]	= { ShoutCastStop,	1,	"Stop" },
		[low("!SC.status")]	= { ShoutCastStatus,	0,	"Display Status" },
		[low("!SC.help")]	= { ShoutCastHelp,	0,	"Help Message" },
		[low("!SC.song")]	= { ShoutCastSong,	0, 	 "SongTitle"},
		[low("!SC.volup")]	= { ShoutCastVolUp,	1,	"Volume Up"},
		[low("!SC.voldn")]	= { ShoutCastVolDn,	1,	"Volume Down"},
		[low("!SC.playnr")]	= { ShoutCastPlayNr,1,	"Play nr X track"},
		[low("!SC.tracknr")]= { ShoutCastGetTrack,1,"Get current song's track number"}, 
		[low("!SC.vol")]	= { ShoutCastVol,	1,	"Set Volume 0-255"},
		[low("!SC.volhelp")]	= { ShoutCastVolHelp,	1,	"Volume Help"},
		[low("!SC.pretty")]	= { ShoutCastPretty, 	1,	"Display Pretty info"},
--		[low("!SC.test")]	= { ShoutCastTest,	1, 	 "Test"},
--		[low("!SC.test2")]	= { ShoutCastTest2,	1, 	 "Test With Output.tmp"},
	};

	for sCmd, tCmd in tCommands do
		if(tCmd[2] == 1) then
			sOpHelpOutput = sOpHelpOutput..sCmd.."-\t"..tCmd[3].."\r\n";
		else
			sHelpOutput = sHelpOutput..sCmd.."-\t"..tCmd[3].."\r\n";
		end
	end

	frmHub:RegBot(sBotName);
	SendToAll(MyInfoString)
end

Here You Go, The Problem With yours was that it had 2
function Main()

I had the same prob... ;p didn't see that the command are loaded in the main function...

 
--==BotShare==--
-- 1                   == 1 B
-- 1024                == 1 KB
-- 1024 * 1024             == 1 MB
-- 1024 * 1024 * 1024       == 1 GB
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

Quattro

Lot's of thanks :D Both Madman and  Pothead :D
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

Quattro

I'll post the working script in here :D

#Code#


-- Shoutcast interface through PtokaX script

-- Author: RabidWombat

-- Requirements: the winamp source of the shoutcast server

-- is running on the hub server where this script is AND

-- you have installed Clever (a GREAT utility)

-- This is the version I downloaded for testing purposes

-- http://www.jukkis.net/clever/clever_2_98.zip

-- This is site for all offered versions:

-- http://www.jukkis.net/

--//Modded By Madman

--//Added !sc.song

--//Guide Added

--//More Stuff Added

--//Even More On Ubikk's Request ;p

--//Further modded by Madman Quattro and Pothead

--//Added Myinfostring and some modifications... (thanks to Madman and Pothead)





--   Guide So You Can Add The Commands You Wish

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe prev"); --//Play Previous Song

--   execute(sCleverDir.."clever.exe alwaysontop"); --//Toggle Always On Top

--   execute(sCleverDir.."clever.exe pause"); --//Pauses

--   execute(sCleverDir.."clever.exe stop"); --//Stops

--   execute(sCleverDir.."clever.exe next"); --//Play Next Song

--   execute(sCleverDir.."clever.exe volup"); --//Increase The Volume

--   execute(sCleverDir.."clever.exe voldn"); --//Decrease The Volume

--   execute(sCleverDir.."clever.exe swshuffle"); --//Sets Shuffle On Off

--   execute(sCleverDir.."clever.exe swrepeat"); --//Sets Repet On Off

--   execute(sCleverDir.."clever.exe getshuffle > output.tmp"); --//Get Status on Shuffle

--   execute(sCleverDir.."clever.exe getrepeat > output.tmp"); --//Get Staus on Repeat

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe getinfo > output.tmp"); --//shows Info about the song

--   Example...

--   44kHz      128kbps      Channels:2

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe GETINFO > output.tmp"); --//shows Info about the song

-- Example...

--   044,128,2

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe prettyinfo > output.tmp"); --//Shows Pretty Info About The Song

--   Example..

--   Songname:   Ramp - The Logical Song (Original Mix)

--   Time:       04:22 of 06:57 (02:35 left)

--   Status:     Playing

--   Shuffle:    On

--   Repeat:     On

--   Playlist position 2 of 7 songs.

--------------------------------------------------------------------------------------

--   execute(sCleverDir.."clever.exe staus > output.tmp"); --//Shows Staus Of Winamp Ex. Play

--   execute(sCleverDir.."clever.exe songlength > output.tmp"); --//Total Length Of Song

--   execute(sCleverDir.."clever.exe timeleft > output.tmp"); --//Shows Timeleft

--   execute(sCleverDir.."clever.exe songtitle > output.tmp"); --//Shows The Song Title

--   execute(sCleverDir.."clever.exe visual"); --//Visualtion On Off

--   execute(sCleverDir.."clever.exe clear"); --//Clears The Playlist

--   execute(sCleverDir.."clever.exe playlist > output.tmp"); --//Show Playlist

--   execute(sCleverDir.."clever.exe play");    --//Start Play



--   if (strcmp(command, "play")==0) singleOpt(C_PLAY);

--   play        Play the song in playlist position

--   if (strcmp(command, "volume"    )==0) singleParam(C_SET_VOLUME);

--   volume      Set volume (0-255)





sCleverDir = "C:\\clever\\";

--// If other then C:\CLEVER you have to create C:\CLEVER mannuly...

--It's for the settings file

--Also rember to run the clever.exe fil first... you need to configure it =)



sBotName = "[Q.NL][Sec]Hub-Music";



BotEmail = "www.winamp.com" --//Bots Email

BotSpeed = "Warpspeed" --//The Connection Of The Bot

BotDescr = "Mod by Madman, Pothead, Quattro" --//Your Bots Description

BotTag = "<++ V:0.01,Music,Songs:3735>" --// Example <++ V:0.668,M:A,H:0/0/1,S:0>

BotShare = 18380421494

MyInfoString = "$MyINFO $ALL "..sBotName.." "..BotDescr.." "..BotTag.."$ $"..BotSpeed..strchar( 1 ).."$"..BotEmail.."$" ..BotShare.."$"



low = strlower;



sHelpOutput = "Commands\r\n";

sOpHelpOutput = "Op Commands\r\n";



--For ShoutCastSong

Msg = "The HubServer Is Playing" --Will show  "Msg songname"



function Main()

   tCommands = {

   --// 1 = Ops only...

   --// 0 = All

      [low("!SC.next")]    = { ShoutCastNext,   1,   "Play next song in playlist" },

      [low("!SC.prev")]    = { ShoutCastPrev,   1,   "Play prev song in playlist" },

      [low("!SC.playlist")]   = { ShoutCastPlayList,   1,   "Display Playlist" },

      [low("!SC.play")]   = { ShoutCastPlay,   1,   "Play" },

      [low("!SC.pause")]   = { ShoutCastPause,   1,   "Pause" },

      [low("!SC.stop")]   = { ShoutCastStop,   1,   "Stop" },

      [low("!SC.status")]   = { ShoutCastStatus,   0,   "Display Status" },

      [low("!SC.help")]   = { ShoutCastHelp,   1,   "Help Message" },

      [low("!SC.song")]   = { ShoutCastSong,   0,     "SongTitle"},

      [low("!SC.volup")]   = { ShoutCastVolUp,   1,   "Volume Up"},

      [low("!SC.voldn")]   = { ShoutCastVolDn,   1,   "Volume Down"},

      [low("!SC.playnr")]   = { ShoutCastPlayNr,1,   "Play nr X track"},

      [low("!SC.tracknr")]= { ShoutCastGetTrack,1,"Get current song's track number"},

      [low("!SC.vol")]   = { ShoutCastVol,   1,   "Set Volume 0-255"},

      [low("!SC.volhelp")]   = { ShoutCastVolHelp,   1,   "Volume Help"},

      [low("!SC.pretty")]   = { ShoutCastPretty,    1,   "Display Pretty info"},

--      [low("!SC.test")]   = { ShoutCastTest,   1,     "Test"},

--      [low("!SC.test2")]   = { ShoutCastTest2,   1,     "Test With Output.tmp"},

   };



   for sCmd, tCmd in tCommands do

      if(tCmd[2] == 1) then

         sOpHelpOutput = sOpHelpOutput..sCmd.."-\t"..tCmd[3].."\r\n";

      else

         sHelpOutput = sHelpOutput..sCmd.."-\t"..tCmd[3].."\r\n";

      end

   end



   frmHub:RegBot(sBotName);

   SendToAll(MyInfoString)

end



function DataArrival(curUser, sData)

   local s, e, cmd, args = strfind(sData, "%b<>%s+(%S+)%s*([^%|]*)%|$");



   if(cmd == nil) then return 0; end

   cmd = strlower(cmd);



   --if(tCommands[cmd] and (tCommands[cmd][2] == 0 or (curUser.iProfile == 0))) then --//Masters Only

   if(tCommands[cmd] and (tCommands[cmd][2] == 0 or curUser.bOperator)) then --//Ops And Above

      curUser:SendData(sData);

      tCommands[cmd][1](curUser, args);

      return 1;

   end

end



function ShoutCastPretty(curUser)

   execute(sCleverDir.."clever.exe prettyinfo > output.tmp"); --//Shows Pretty Info About The Song

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      --curUser:SendData(sBotName, "\r\n"..line);

      SendToAll(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastVolUp(curUser)

   execute(sCleverDir.."clever.exe volup"); --//Increase The Volume

   curUser:SendData(sBotName, "Volume Increased")

end



function ShoutCastVol(curUser, args)

   if(args and tonumber(args)) then

      execute(sCleverDir.."clever.exe volume "..tonumber(args));

      curUser:SendData(sBotName, "Volume Set To " ..args)

   end

end



function ShoutCastVolDn(curUser)

   execute(sCleverDir.."clever.exe voldn"); --//Decrease The Volume

   curUser:SendData(sBotName, "Volume Decreased")

end



function ShoutCastVolHelp(curUser) --//Volume Help

   if(curUser.iProfile == 0) then

      curUser:SendPM(sBotName,"\r\nVolume Help\r\n"..

      "Write !sc.vol X\tX = Some Nr\n"..

      "The Text Bellow Show What A Nr Is In Volume %\r\n"..

      "10 = 3 %\r\n"..

      "20 = 7 %\r\n"..

      "30 = 11 %\r\n"..

      "40 = 15 %\r\n"..

      "50 = 19 %\r\n"..

      "60 = 23 %\r\n"..

      "70 = 27 %\r\n"..

      "80 = 31 %\r\n"..

      "90 = 35 %\r\n"..

      "100 = 39 %\r\n"..

      "110 = 43 %\r\n"..

      "120 = 47 %\r\n"..

      "130 = 50 %\r\n"..

      "140 = 54 %\r\n"..

      "150 = 58 %\r\n"..

      "160 = 62 %\r\n"..

      "170 = 66 %\r\n"..

      "180 = 70 %\r\n"..

      "190 = 74 %\r\n"..

      "200 = 78 %\r\n"..

      "210 = 82 %\r\n"..

      "220 = 86 %\r\n"..

      "230 = 90 %\r\n"..

      "240 = 94 %\r\n"..

      "250 = 98 %\r\n"..

      "255 = 100 %\r\n");

   end

end



function ShoutCastTest(curUser, args) --//For Testing

   if(args and tonumber(args)) then

      execute(sCleverDir.."clever.exe play "..tonumber(args));

   end

end



function ShoutCastTest2(curUser) --//For Testing

   execute(sCleverDir.."clever.exe -h > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastNext(curUser) --//Play Next Song

   execute(sCleverDir.."clever.exe next");

end



function ShoutCastPrev()

   execute(sCleverDir.."clever.exe prev"); --//Play Prev Song

end



function ShoutCastPlayNr(curUser, args)

   if(args and tonumber(args)) then

      execute(sCleverDir.."clever.exe play")

      execute(sCleverDir.."clever.exe play "..tonumber(args));

      execute(sCleverDir.."clever.exe songtitle > output.tmp");

      readfrom("output.tmp");

      local line = read("*a");

         if(line) then

            line = gsub(line, "\n", "");

         SendToOps(sBotName, curUser.sName.." has selected track "..tonumber(args).." [ "..line.." ]");

         end

   end

   readfrom();

end



function ShoutCastPlayList(curUser) --//Show Playlist

   execute(sCleverDir.."clever.exe playlist > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendPM(sBotName, "\r\n"..line);

   end

   readfrom();

end





function ShoutCastGetTrack(curUser) --//Get Track nr

   execute(sCleverDir.."clever.exe getplpos > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "");

      curUser:SendData(sBotName, "Current song's track number is: [ "..line.." ]");

   end

   readfrom();

end



function ShoutCastPlay()

   execute(sCleverDir.."clever.exe play"); --//Play

end



function ShoutCastPause()

   execute(sCleverDir.."clever.exe pause"); --//Pause

end



function ShoutCastStop()

   execute(sCleverDir.."clever.exe stop"); --//Stop

end



function ShoutCastStatus(curUser)

   execute(sCleverDir.."clever.exe status > output.tmp");

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastSong(curUser) --//Playing Song
   execute(sCleverDir.."clever.exe songtitle > output.tmp")
   readfrom("output.tmp");
   local line = read("*a");
   if(line) then
      SendToAll(sBotName, Msg.." "..line);
   end
   readfrom();
end



function ShoutCastSongLength(curUser)

   execute(sCleverDir.."clever.exe songlength > output.tmp"); --//Total Length Of Song

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end



function ShoutCastTimeLeft(curUser)

   execute(sCleverDir.."clever.exe timeleft > output.tmp"); --//Shows Timeleft

   readfrom("output.tmp");

   local line = read("*a");

   if(line) then

      line = gsub(line, "\n", "\r\n");

      curUser:SendData(sBotName, "\r\n"..line);

   end

   readfrom();

end





function ShoutCastHelp(curUser) --//Help

   curUser:SendData(sBotName, sHelpOutput);

   if(curUser.bOperator) then

   --if(curUser.iProfile == 0) then

      curUser:SendData(sBotName, sOpHelpOutput);

   end

end



Have fun with it
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

Quattro

Btw i would like to further modify it by introducing robocop profiles in it..
I've seen a script that was changed to support  RC profiles but that was some time ago, dunno which it was  ?(  ?(
quattro-place.no-ip.com:1418
PtokaX DC Hub 0.3.3.0 build 17.09 Not Running :(
wdp10.no-ip.info:1412
DCH++ v1.0-Release (Plugin API v1.0) Special Quattro? Build
For DCH scripting and plugins

Madman

#9
Since you are trying to learn i wont post my working version of the script...
I'll give u this tho...

The Table witch defines witch profiles witch are aloowed to do the op commands
AllowedProfiles = {
--//Set To 1 To Allow Profiles To Use The Op Commands
[0] = 1,   -- Masters
[1] = 0,   -- Operators
[2] = 0,   -- Vips
[3] = 0,   -- Regs
[4] = 0,   -- Moderator
[5] = 1,   -- NetFounder
[-1] = 0,  -- Users(unregged)
}

and what to do... it is really simple... =)
just replace
curUser.bOperator
with
AllowedProfiles[curUser.iProfile] == 1

*Edit*

Pm me in United Ops and i'll help you with the MyInfo Spam you talked about....
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

Madman

#10
Here is the changes you wanted =)

The commands for each profile is untested
So i dont know if the Ops still can do what the Netfounder can do...
But atlest the help works as it should... =)
Let me know if you find any bugs....

Quote--//Added A Switch For The Tag
--//Added AllowedProfiles
--//Removed AllowedProfiles
--//Request By Quattro
--//Added RoboCop Profiles Support, The Higer Profile, More Commands

http://destruction.myftp.org/filer/Lua/Lua4/shoutcast.lua
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

SMF spam blocked by CleanTalk