IPB

Welcome Guest ( Log In | Register )

1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

5 Pages V < 1 2 3 4 > »   
Reply to this topicStart new topic
> Mother of all greet plugins for 2.7, New PimpList development/discuss
Snap
post Feb 23 2009, 08:45 PM
Post #31


The following post is supplementry information
*****

Group: Global Moderators
Posts: 2,922
Joined: 29-January 06
From: Eugene Oregon
Member No.: 31



@Jack if CCX parsing is enabled for the greets:
CODE
      'ccx.RegisterFunction(Name, CallBack, Args, Priority)
      ccx.RegisterFunction "ST_score", "SNJ.GetUMoney", 1, 1

That will be how you will add functions to be used in greetings.


--------------------
~Life is all busy and stuff right now. - Car accident, lots of dr. appointments... Other stuff too. I still <3 StealthBot.net - - I'll be around.
Thinking about PMing me? Post it instead! CCX Forums | SnapNJacks Trivia Forums
IPB Image
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FiftyToo
post Feb 23 2009, 09:23 PM
Post #32


Posting God
*****

Group: Sr. Members
Posts: 1,552
Joined: 28-September 06
From: Ohio
Member No.: 9,153



QUOTE(Jack @ Feb 23 2009, 04:07 PM) *

If this does get rewritten, make sure all the variables (%'s) are in some kind of separate file. Xelloss first did it all in the plugin then I tried to shorten that down even more -- huge failure doing so. The cleanest way to do this is having all the variables in a separate file.


I dont understand what you mean, can you please explain? I cannot see a reason that the variables should be defined in a separate file.

@Ninja

If you need to offload some of the work onto me, just let me know. I can crank out code like its no ones business smile.gif

52


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 23 2009, 10:54 PM
Post #33


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



QUOTE(FiftyToo @ Feb 23 2009, 10:23 PM) *
@Ninja

If you need to offload some of the work onto me, just let me know. I can crank out code like its no ones business smile.gif

52
Okay, will do smile.gif I might need your help on the Databases. I know you don't like how I code SQL stuff, so if you and I can work on it, it can be that much better.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FiftyToo
post Feb 24 2009, 01:24 AM
Post #34


Posting God
*****

Group: Sr. Members
Posts: 1,552
Joined: 28-September 06
From: Ohio
Member No.: 9,153



QUOTE(The-Black-Ninja @ Feb 23 2009, 11:54 PM) *

Okay, will do smile.gif I might need your help on the Databases. I know you don't like how I code SQL stuff, so if you and I can work on it, it can be that much better.


I will use this opportunity to work on that unified database utility we have on the back burner smile.gif

52


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 24 2009, 11:40 AM
Post #35


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



QUOTE(FiftyToo @ Feb 24 2009, 02:24 AM) *

QUOTE(The-Black-Ninja @ Feb 23 2009, 11:54 PM) *

Okay, will do smile.gif I might need your help on the Databases. I know you don't like how I code SQL stuff, so if you and I can work on it, it can be that much better.


I will use this opportunity to work on that unified database utility we have on the back burner smile.gif

52
OH YEAH! I totally forgot about that!


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FiftyToo
post Feb 26 2009, 12:25 AM
Post #36


Posting God
*****

Group: Sr. Members
Posts: 1,552
Joined: 28-September 06
From: Ohio
Member No.: 9,153



This is what I have so far....

http://www.pastecode.org/32350

... I know we arent suppose to post external links, but I would actually prefer that this link dies a slow death, since the script is not even complete smile.gif

There are only a couple more things I need to do before this utility script is ready for testing. If anyone is interested, this is basically an extension for the plugin system that will use a single database, and allow people to create an XML that contains their table definitions and queries (with parameters), and this extention will detect it, create a dynamic class on the fly, and then create an instance of the class for the plugin to use.

Here is the XML I am using as an example...

CODE
<SBPlugin Name="TimebanDB">
    <DatabaseSchema>
        <Table Name="TimebannedUser">
            <Columns>
                <Column Name="Username" Type="VARCHAR(20)" />
                <Column Name="Banned" Type="BIT" />
                <Column Name="UnbanTime" Type="DateTime" />
            </Columns>
        </Table>
    </DatabaseSchema>
    <Queries>
        <Query Name="BanUser">
            <Parameters>
                <Parameter Name="Username" Type="VARCHAR(20)" />
                <Parameter Name="Duration" Type="INT" />
            </Parameters>
            <QueryText>
<![CDATA[
UPDATE TimebannedUser
SET Banned = 1,
    UnbanTime = DATEADD("s", @Duration, NOW())
WHERE Username = @Username
]]>
            </QueryText>
        </Query>
    </Queries>
</SBPlugin>


And this is how it will be used inside the Timeban plug (again, as an example...)

CODE
Set dbObject = DatabaseManager.GetDatabaseClass("timeban")
dbObject.BanUser "FiftyToo", 20


Total separation of the data layer and presentation layer! Another important aspect is that the database manager will automatically create the tables if they do not exist. it will also create columns if they do not exist. This will allow new versions of a plugin to add a column to the database simply by adding another line in the XML, and anyone that gets the new version will have their own database updated on bot load.

52


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 26 2009, 12:36 AM
Post #37


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



I love it, I love it, I love it, I love it, I love it!!! biggrin.gif biggrin.gif


...



biggrin.gif


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Jack
post Feb 26 2009, 04:50 PM
Post #38


Ultimate spammer.
********

Group: Sr. Members
Posts: 5,593
Joined: 28-January 06
Member No.: 28



QUOTE(FiftyToo @ Feb 23 2009, 09:23 PM) *

QUOTE(Jack @ Feb 23 2009, 04:07 PM) *

If this does get rewritten, make sure all the variables (%'s) are in some kind of separate file. Xelloss first did it all in the plugin then I tried to shorten that down even more -- huge failure doing so. The cleanest way to do this is having all the variables in a separate file.


I dont understand what you mean, can you please explain? I cannot see a reason that the variables should be defined in a separate file.

I've given two examples and told you my reason why.


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Snap
post Feb 26 2009, 07:42 PM
Post #39


The following post is supplementry information
*****

Group: Global Moderators
Posts: 2,922
Joined: 29-January 06
From: Eugene Oregon
Member No.: 31



@Jack
There's no point in using an external file to use %var->function pointers - if CCX parsing is executed, any plugin can register the pointers in Event_Load. With an external file we'd have to deal with abandoned or corrupted (user-inputed) data.
- Not to mention CCX supports arguments for registered functions.

What's up with the mixed signals?
QUOTE(Jack)
I'd like to help on the pimplist if there's not going to be too many people.
QUOTE(Jack)
QUOTE(The-Black-Ninja @ Feb 23 2009, 04:46 PM) *
.... you're more than welcome to help us! biggrin.gif <3
I pass.


--------------------
~Life is all busy and stuff right now. - Car accident, lots of dr. appointments... Other stuff too. I still <3 StealthBot.net - - I'll be around.
Thinking about PMing me? Post it instead! CCX Forums | SnapNJacks Trivia Forums
IPB Image
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Jack
post Feb 26 2009, 11:46 PM
Post #40


Ultimate spammer.
********

Group: Sr. Members
Posts: 5,593
Joined: 28-January 06
Member No.: 28



The point is, the plugin is going to have 50 variables and listing them all inside the plugin itself is going to become a huge mess.

This post has been edited by Jack: Feb 26 2009, 11:46 PM


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 26 2009, 11:52 PM
Post #41


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



would't

CODE
var1 = 1:var2 = 2:.....


be good enough? just to keep them all in 1 line ofc i dont know if it works haven't used ":" to other things then actions.


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 26 2009, 11:53 PM
Post #42


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



QUOTE(Call @ Feb 27 2009, 12:52 AM) *

would't

CODE
var1 = 1:var2 = 2:.....


be good enough? just to keep them all in 1 line ofc i dont know if it works haven't used ":" to other things then actions.
There's going to be upwards of 20 variables in total, depending. Having all those on one line will be disgusting...


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 26 2009, 11:55 PM
Post #43


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



QUOTE(The-Black-Ninja @ Feb 27 2009, 06:53 AM) *

QUOTE(Call @ Feb 27 2009, 12:52 AM) *

would't

CODE
var1 = 1:var2 = 2:.....


be good enough? just to keep them all in 1 line ofc i dont know if it works haven't used ":" to other things then actions.
There's going to be upwards of 20 variables in total, depending. Having all those on one line will be disgusting...


make it pretty ^^


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 27 2009, 12:04 AM
Post #44


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



QUOTE(Call @ Feb 27 2009, 12:55 AM) *
make it pretty ^^
That's the challenge. Maybe we could do something along the lines of Jack's suggestion; we can store the variables in the Database in a separate table. That way, the variables can be organized by Product so when they join, all the variables can be easily found and the user has the option of physically adding in new variables and functions.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 27 2009, 12:06 AM
Post #45


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



you could use arrays maybe?


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 27 2009, 12:08 AM
Post #46


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



QUOTE(Call @ Feb 27 2009, 01:06 AM) *
you could use arrays maybe?
That still involves the "clutter" of having all those variables in one plugin. We have the database already to store various user stats, why not use it to store the variables as well?


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 27 2009, 12:10 AM
Post #47


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



QUOTE(The-Black-Ninja @ Feb 27 2009, 07:08 AM) *

QUOTE(Call @ Feb 27 2009, 01:06 AM) *
you could use arrays maybe?
That still involves the "clutter" of having all those variables in one plugin. We have the database already to store various user stats, why not use it to store the variables as well?


yea but with arrays u wouldt have to make names to all the variables


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 27 2009, 12:26 AM
Post #48


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



Wouldn't it be helpful if you were able to explain what the variables do, though? What's cleaner; like 30 variables mashed into arrays in the plugin or neatly organized in tables and columns in the database so it's easy to read?

This:
Variable
Product
Definition
%UAllUsername of joiner
%winsAllUser's wins
%iconWC3User's icon name


Or:
CODE
DiabloArr = Array("var1", "var2", "var3")
War3Arr = Array("var1", "var2", "var3")
StarArr = Array("var1", "var2", "var3")

'// Variable names
'//
'//
'//
'//
'//
'//
'//


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 27 2009, 12:46 AM
Post #49


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



wouldt UBound(varArray) be good to write like

Product|Description

so it will be the information in the end you would use?

Edit
Example:
CODE
Arr = Array("var1", "var2", "var3", "Product|Description")


This post has been edited by Call: Feb 27 2009, 12:47 AM


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 27 2009, 12:59 AM
Post #50


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



The point I'm making is that the database is a far more superior way of organizing, displaying, writing and retrieving information from arrays; it keeps it out of the code, making the code neater and easier to read, which is going to be important for this plugin, and allows for faster retrieval. For example:

CODE
WarArray = Array("var1", "var2", "var3")
WarDesc = Array("Username", "Wins", "Icon")

'//User types command: .greetvar icon

They want to view the variable to get a user's icon:

For i = 0 To UBound(WarDesc)
  If WarDesc(i) = "icon" Then AddQ WarArray(i)
Next

Or with our Database:
CODE
'//User types command: .greetvar icon

Set ts = conn.Execute("SELECT `variable` FROM `vars` WHERE `definition` = 'icon'")
AddQ ts.Fields(0)
You have no idea how superior a database will be for this plugin.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 27 2009, 01:06 AM
Post #51


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



QUOTE(The-Black-Ninja @ Feb 27 2009, 07:59 AM) *

The point I'm making is that the database is a far more superior way of organizing, displaying, writing and retrieving information from arrays; it keeps it out of the code, making the code neater and easier to read, which is going to be important for this plugin, and allows for faster retrieval. For example:

CODE
WarArray = Array("var1", "var2", "var3")
WarDesc = Array("Username", "Wins", "Icon")

'//User types command: .greetvar icon

They want to view the variable to get a user's icon:

For i = 0 To UBound(WarDesc)
  If WarDesc(i) = "icon" Then AddQ WarArray(i)
Next

Or with our Database:
CODE
'//User types command: .greetvar icon

Set ts = conn.Execute("SELECT `variable` FROM `vars` WHERE `definition` = 'icon'")
AddQ ts.Fields(0)
You have no idea how superior a database will be for this plugin.


i vote for the database but oh well idk if it need to be changeable variables i use microsoft something to view sql database and it looks kinda good was that i was thinking of heh


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Snap
post Feb 27 2009, 01:10 AM
Post #52


The following post is supplementry information
*****

Group: Global Moderators
Posts: 2,922
Joined: 29-January 06
From: Eugene Oregon
Member No.: 31



@Jack- &all
Were not going to make people open up the plugin to figure out what variables do what-- that's eww.
Documentation - -and apparently Ninja is planing a help database - will be used to explain the plugin.
As far as the code goes -
CODE
         strRes = Replace(strRes, "%trigger", Botvars.Trigger)
         strRes = Replace(strRes, "%0", Username)
         strRes = Replace(strRes, "%chancount", GetInternalUserCount())

Will be perfectly acceptable.

This post has been edited by Snap: Feb 27 2009, 01:10 AM


--------------------
~Life is all busy and stuff right now. - Car accident, lots of dr. appointments... Other stuff too. I still <3 StealthBot.net - - I'll be around.
Thinking about PMing me? Post it instead! CCX Forums | SnapNJacks Trivia Forums
IPB Image
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 27 2009, 01:11 AM
Post #53


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



then it would be good to use alies to? like %trig etc


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 27 2009, 01:19 AM
Post #54


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



QUOTE(Snap @ Feb 27 2009, 02:10 AM) *
Documentation - -and apparently Ninja is planing a help database - will be used to explain the plugin.
I figure that's the easiest way to go, there will obviously be a massive help command to be used in-bot due to the sheer length of it, but I think on-the-fly documentation could be helpful as well, like my example showing a quick reference to a variable name.


QUOTE(Call @ Feb 27 2009, 02:11 AM) *
then it would be good to use alies to? like %trig etc
What do you mean "alias"?


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Call
post Feb 27 2009, 01:28 AM
Post #55


Posting God
*****

Group: Beta Testers
Posts: 1,423
Joined: 15-June 08
From: Denmark, Copenhagen
Member No.: 38,127



QUOTE(The-Black-Ninja @ Feb 27 2009, 08:19 AM) *

QUOTE(Call @ Feb 27 2009, 02:11 AM) *
then it would be good to use alies to? like %trig etc
What do you mean "alias"?


i mean "%trig" would be the same as "%trigger" and etc ofc idk if its a good anymore it just came to me xd


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Snap
post Feb 27 2009, 01:38 AM
Post #56


The following post is supplementry information
*****

Group: Global Moderators
Posts: 2,922
Joined: 29-January 06
From: Eugene Oregon
Member No.: 31



Yea, there will probably be aliases - I use a bunch in CCX. %user = %0 etc. -- I didn't use %trig, but I think I will - - "Use %triggerNews to view the news" always looked weird..

@Ninja
Have fun documenting it -- I'm finding more work documenting CCX than it was writing it - lol...


--------------------
~Life is all busy and stuff right now. - Car accident, lots of dr. appointments... Other stuff too. I still <3 StealthBot.net - - I'll be around.
Thinking about PMing me? Post it instead! CCX Forums | SnapNJacks Trivia Forums
IPB Image
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Zerosu
post Feb 27 2009, 03:25 PM
Post #57


Rookie
*

Group: Members
Posts: 9
Joined: 18-May 07
Member No.: 23,822



QUOTE(Snap @ Feb 27 2009, 01:38 AM) *
...
@Ninja
Have fun documenting it -- I'm finding more work documenting CCX than it was writing it - lol...

Thats why you write the code (with minimal documentation) and let someone else write the long stuff for you ph34r.gif

This post has been edited by Zerosu: Feb 27 2009, 03:27 PM


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FiftyToo
post Feb 27 2009, 04:46 PM
Post #58


Posting God
*****

Group: Sr. Members
Posts: 1,552
Joined: 28-September 06
From: Ohio
Member No.: 9,153



QUOTE(Snap @ Feb 27 2009, 01:38 AM) *
...
@Ninja
Have fun documenting it -- I'm finding more work documenting CCX than it was writing it - lol...


When I begin a new function, I usually start off by writing simple comments that describe exactly what the code must do, step by step. This is what it looks like after the comments...

CODE


    '// This method will read the xml file of all the plugins that have been detected
    '// and will make sure the tables and columns exist.
    Private Sub validateSchema()
        '// loop through all of the database classes
            
            '// loop through tables in the xml file

                '// does table exist?

                    '// no, lets create it

                '// else

                    '// yes, loop through columns

                        '// create column if it does not exist

    
    End Sub



Now all i need to do is fill in the code, like such...

CODE


    '// This method will read the xml file of all the plugins that have been detected
    '// and will make sure the tables and columns exist.
    Private Sub validateSchema()

        Dim k, i, o    
        Dim dbObject
        Dim tableNodeList, tableNode, tableName
        Dim columnNodeList, columnNode, columnName, columnType, columnSize
    
        '// loop through all of the database classes
        k = p_databaseObjects.Keys
        For i = 0 To p_databaseObjects.Count - 1
            
            '// get the object
            Set dbObject = p_databaseObjects.Item(k(i))
            
            '// loop through tables in the xml file
            Set tableNodeList = dbObject.XMLDoc.SelectNodes("/SBPlugin/DatabaseSchema/Tables/Table")
            For Each tableNode In tableNodeList
                
                tableName = tableNode.SelectSingleNode("@Name").Text
                '// does table exist?
                If Not tableExists(tableName) Then
                    '// no, lets create it
                    
                    '// TODO: Create Table
                    AddChat vbMagenta, "Create Table: " & tableName
                    
                '// else
                Else
                    '// yes, loop through columns
                    Set columnNodeList = tableNode.SelectNodes("Columns/Column")
                    For Each columnNode In columnNodeList
                        columnName = columnNode.SelectSingleNode("@Name").Text
                        columnType = columnNode.SelectSingleNode("@Type").Text
                        columnSize = columnNode.SelectSingleNode("@Size").Text
                    
                        '// create column if it does not exist
                        If Not columnExists(tableName, columnName) Then
                        
                            '// TODO: Create Column
                            AddChat vbMagenta, "Create Column: " & tabkename & "." & columnName
                        
                        End If
                    Next
                End If    
            Next
        Next
    
    End Sub




52


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Feb 27 2009, 05:12 PM
Post #59


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



@Snap, would you like me to start seriously listing the variables that will be used so we can see where the CCX plugin will come in?

@52, that looks super good; the documentation is short and to the point.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Snap
post Feb 28 2009, 12:04 AM
Post #60


The following post is supplementry information
*****

Group: Global Moderators
Posts: 2,922
Joined: 29-January 06
From: Eugene Oregon
Member No.: 31



Basically, all you need to do to implement CCX is something like this:
CODE

'//Do all your variable replacements: (Doesn't matter how this is done)
strRes = Replace(strRes, "%trigger", Botvars.Trigger)
strRes = Replace(strRes, "%0", Username)
'//Etc
'//Now for CCX: (Make sure that the CCX parsing happens last)
If GetSetting("AGP", "UseCCX") = "true" AND psVersions.Item("ccx") > 1 Then
   strRes = CCX.ParseFunctions(strRes)
End If

3 lines of code, and you're done with the implementation. w/ that they can use dynamic, random, other-plugin customizable greetings (I.E. %st_score(%user) ). - This was CCX's design intent in the first place.


@52 I was referring to external documentation - explaining how to use the the plugin - not internal comments. - Comments I consider part of the code - I couldn't even read my own code if i didn't comment on it.

P.S. I just remembered you'll also need to use CCX.AddEscape on code you don't want executed. I.E. a username or channel name contained any "%,()"'s. - So I guess a little more complicated than 3 lines of code sad.gif. Not much though.


--------------------
~Life is all busy and stuff right now. - Car accident, lots of dr. appointments... Other stuff too. I still <3 StealthBot.net - - I'll be around.
Thinking about PMing me? Post it instead! CCX Forums | SnapNJacks Trivia Forums
IPB Image
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

5 Pages V < 1 2 3 4 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 17th July 2019 - 06:27 PM
Skin by Andrea
Website Legal Information | Hosted by LunarPages