broadcast

ggblade

Member
Member
Aug 14, 2014
29
0
6
dont know what goes on, but this code worked on magma but does not on fougerite
it gives

error invoking function on_Command in plugin.
JsException: Exception of type 'Jint.Native.JsException' was thrown.

JavaScript:
function On_Command(Player, cmd, args)
{
if(cmd=="b")
   {
     if(Player.Admin)
     {
       if(args.Length < 1)
       {
      Player.Message("Command Usage: /admin message");
       }
         else
         {
         var text = argsToText(args);
         Server.BroadcastFrom("[Admin]","[color#E5E4E2]" + text);
         var day = System.DateTime.Now.ToString("M.dd"); 
         Plugin.Log("Chat Log\\Chat_" + day, Player.Name + "[ADMIN]: "+ text);
         }
       }
     }
   }
 

Linkpad

New Member
Member
Sep 1, 2014
6
3
3
Looks like the Magma Javascript interpreter is fucked up, I can't even use join for an array :/ Anyway here a working version of your code :

JavaScript:
function On_Command(Player, cmd, args)
{
    if(cmd=="b")
    {
        if(Player.Admin)
        {
            if(args.Length < 1)
            {
                Player.Message("Command Usage: /admin message");
            }
            else
            {
                var text = fullString(args);
                Server.BroadcastFrom("[Admin]","[color#E5E4E2]" + text);
                var day = System.DateTime.Now.ToString("M.dd");
                Plugin.CreateDir("Chat Log");
                Plugin.Log("Chat Log\\Chat_" + day, Player.Name + "[ADMIN]: "+ text);
            }
        }
    }
}

function fullString(args)
{
    var text = "";
    if (args.Length == 1)
    {
        text = args[0];
    }
    else
    {
        for (var l = 0; l < args.Length; l++)
        {
            if (l == args.Length - 1)
            {
                text += args[l];
            }
            else
            {
                text += args[l] + " ";
            }
        }
    }
    return text;
}
Thanks to @Jakkee for fullString function took in a script.
 
Last edited:
  • Like
  • Useful
Reactions: Jakkee and ggblade

balu92

Retired Staff
Retired Staff
Trusted Member
Jul 11, 2014
338
75
28
34
I don't think there is anything wrong with the interpreter, most likely he was missing argsToText() function from the script
 

Linkpad

New Member
Member
Sep 1, 2014
6
3
3
Ok, but I could do args.join(" "); without any problems no ? But it give me an error in Jint
 

Linkpad

New Member
Member
Sep 1, 2014
6
3
3
Oh ok, so we can use C# code inside javascript, didn't know it ! Thanks for the explanation. Also, I saw that we need to create the folder "Fougerite" for js script, but I was never able to load a js script from "Fougerite" folder. The only way it works is by adding script in "/save/Magma/ScriptName/ScriptName.js". I am missing something for "Fougerite" folder ?
 

DreTaX

Probably knows the answer...
Administrator
Jun 29, 2014
4,093
4,784
113
At your house.
github.com
Oh ok, so we can use C# code inside javascript, didn't know it ! Thanks for the explanation. Also, I saw that we need to create the folder "Fougerite" for js script, but I was never able to load a js script from "Fougerite" folder. The only way it works is by adding script in "/save/Magma/ScriptName/ScriptName.js". I am missing something for "Fougerite" folder ?
From 1.0.4 PRE4, its /save/magma
 
  • Like
Reactions: Linkpad

ggblade

Member
Member
Aug 14, 2014
29
0
6
yeah, that code worked. i apolegise for not saying it.

Thanks for the help everyone.