collapse collapse
* User Info
 
 
Welcome, Guest. Please login or register.
* Search

* Board Stats
  • stats Total Members: 989
  • stats Total Posts: 18363
  • stats Total Topics: 2500
  • stats Total Categories: 7
  • stats Total Boards: 35
  • stats Most Online: 1144

Author Topic: BeBot v0.6.8 released - Rise of the Godslayer edition  (Read 92796 times)

0 Members and 5 Guests are viewing this topic.

Offline Khalem

  • BeBot Founder
  • Administrator
  • ********
  • Posts: 1169
  • Karma: +0/-0
    • http://www.ancarim.com
BeBot v0.6.8 released - Rise of the Godslayer edition
« on: May 18, 2010, 07:49:17 pm »
First off I would like to apologize for the delayed release following the launch of the expansion.
With that out of the way, this release adds support for the new expansion and there have been no issues reported using the bot post release with the compatibility code added.

This release primarily focuses on AoC again, however there are a few fixes and changes that affect both games. Most notably the !help output should be a lot less spammy now.

As usual big props to Chaoz for providing an AoC patch so quickly :)

Download:
https://launchpad.net/bebot/+download

-------------
Version 0.6.8
-------------
- Changed order of the all link so 1st added is last on 1st, giving it priority
- Privgroup command Help no longer shows for AoC
- Fixed Several Bugs in the bid info blob
- Fixed some issues with adding alt with points, the merge process should work better now
- Raid announce delay is now configurable via Settings.
- Fixed crash issue when invalid security group is setup for relay
- Fixed removal of old relay entries in the table
- Added support for Rise of the godslayer expansion for AoC, courtesy of Chaoz.
- !help now only displays help for the channel it is called from unless another channel is specifically requested.
BeBot Founder and Fixer Kingpin

Offline Yite

  • BeBot Apprentice
  • ***
  • Posts: 152
  • Karma: +0/-0
    • Niflheim - Crom
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #1 on: May 18, 2010, 10:53:22 pm »
I notice one thing...

With 0.6.7 my bots kept reminding me it was available (never upgraded as I made the changes manually)

Now with the release of 0.6.8 I'm not getting any reminder at all :)
-Yite [Crom]

Offline Khalem

  • BeBot Founder
  • Administrator
  • ********
  • Posts: 1169
  • Karma: +0/-0
    • http://www.ancarim.com
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #2 on: May 19, 2010, 07:05:55 am »
The upgrade notification is not instant as the bot will check only every 24 hours or so.

There has been no changes to the version checking that I know of, and I tested the upgrade notification myself last night. Tbn, if you alter your version number to be the same as the released version (0.6.8) you will not get any notifications.
BeBot Founder and Fixer Kingpin

Offline shimmer

  • BeBot Rookie
  • *
  • Posts: 5
  • Karma: +0/-0
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #3 on: May 21, 2010, 02:39:35 pm »
Is there somewhere I can find the individual files that were changed rather then re downloading the whole thing and overwriting all my customizations? 

Offline dillinger

  • BeBot Apprentice
  • ***
  • Posts: 91
  • Karma: +0/-0
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #4 on: May 22, 2010, 07:13:00 am »
Chelas my friends!

I already fixed the bot for Rise of the Godslayer with the guide of Chaoz!

Where can I change my BeBot Version manualy, I realy don't want to upgrade the whole Bot at this point.

Thanx in advance!

Offline plugz

  • BeBot User
  • **
  • Posts: 35
  • Karma: +0/-0
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #5 on: May 22, 2010, 04:31:49 pm »
Is there somewhere I can find the individual files that were changed rather then re downloading the whole thing and overwriting all my customizations?

/signed on this one Khalem, it would be helpful to know which individual parts were changed, so those with customized modules know whether or not they have to retool their own tweaks

Offline Khalem

  • BeBot Founder
  • Administrator
  • ********
  • Posts: 1169
  • Karma: +0/-0
    • http://www.ancarim.com
BeBot Founder and Fixer Kingpin

Offline dillinger

  • BeBot Apprentice
  • ***
  • Posts: 91
  • Karma: +0/-0

Offline Yite

  • BeBot Apprentice
  • ***
  • Posts: 152
  • Karma: +0/-0
    • Niflheim - Crom
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #8 on: May 26, 2010, 12:13:46 pm »
Seems to be a problem with launchpad, you should be able to access the diff that link links to by going to http://bazaar.launchpad.net/~bebot-devel/bebot/stable-0.6/revision/203?remember=179 and click the compare with revision 179 link on that page but that also times out.
-Yite [Crom]

Offline Khalem

  • BeBot Founder
  • Administrator
  • ********
  • Posts: 1169
  • Karma: +0/-0
    • http://www.ancarim.com
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #9 on: May 26, 2010, 08:13:02 pm »
Works fine here. In any case however, the changed files are:

    * ChangeLog.txt

    * Main.php

    * Sources/AOChat.php

    * core/User.php

    * core/ao/Whois.php

    * main/15_BotHelp.php

    * modules/Bid.php

    * modules/MassMsg.php

    * modules/OnlineDisplay.php

    * modules/Points.php

    * modules/Raffle.php

    * modules/Raid.php

    * modules/Relay.php

    * modules/Roll.php

    * modules/Say.php

    * modules/SettingsUI.php

    * modules/ao/AutoInv.php

    * modules/ao/Callers.php
BeBot Founder and Fixer Kingpin

Offline Yite

  • BeBot Apprentice
  • ***
  • Posts: 152
  • Karma: +0/-0
    • Niflheim - Crom
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #10 on: May 27, 2010, 10:42:34 am »
works now .. *shrug*
-Yite [Crom]

Offline Kyr

  • BeBot Apprentice
  • ***
  • Posts: 177
  • Karma: +0/-0
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #11 on: June 04, 2010, 09:38:01 pm »

I found an issue with the 0.6.8 release.

modules/Roster.php is missing a command that was included in 0.6.7.  !member mains - Shows the mains only members list.

~Kyr

Offline Khalem

  • BeBot Founder
  • Administrator
  • ********
  • Posts: 1169
  • Karma: +0/-0
    • http://www.ancarim.com
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #12 on: June 05, 2010, 11:32:53 pm »

I found an issue with the 0.6.8 release.

modules/Roster.php is missing a command that was included in 0.6.7.  !member mains - Shows the mains only members list.

~Kyr

This sounds like a custom command as I cannot recall having seen it in the logs, and the repository changelog shows nothing related to the Roster.php being modified between 0.6.7 and 0.6.8
http://bazaar.launchpad.net/~bebot-devel/bebot/stable-0.6/revision/203?start_revid=179&remember=179&compare_revid=179
BeBot Founder and Fixer Kingpin

Offline Kyr

  • BeBot Apprentice
  • ***
  • Posts: 177
  • Karma: +0/-0
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #13 on: June 06, 2010, 02:49:55 am »
Hmm, I don't remember making this change.  Basically it lists only main members.
Code: [Select]
<?php
/*
* Roster.php - Handle member roster commands.
*
* BeBot - An Anarchy Online & Age of Conan Chat Automaton
* Copyright (C) 2004 Jonas Jax
* Copyright (C) 2005-2010 Thomas Juberg, ShadowRealm Creations and the BeBot development team.
*
* Developed by:
* - Alreadythere (RK2)
* - Blondengy (RK1)
* - Blueeagl3 (RK1)
* - Glarawyn (RK1)
* - Khalem (RK1)
* - Naturalistic (RK1)
* - Temar (RK1)
*
* See Credits file for all aknowledgements.
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; version 2 of the License only.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software
*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
*  USA
*
* File last changed at $LastChangedDate: 2009-01-11 16:36:02 +0100 (Sun, 11 Jan 2009) $
* Revision: $Id: Roster.php 1948 2009-01-11 15:36:02Z temar $
*/

$roster_handler = new Roster_Handler($bot);

class 
Roster_Handler extends BaseActiveModule
{
    function 
__construct(&$bot)
    {
        
parent::__construct(&$botget_class($this));

        
$this -> register_command("all""member""ADMIN");
        
$this -> register_command("all""guest""ADMIN");
        
$this -> register_command("all""rosterupdate""ADMIN");
        
$this -> register_command("all""buddylist""ADMIN");

        if(
$this -> bot -> game == "ao")
            
$this -> register_event("cron""1hour");

        
$this -> help['description'] = 'Handles member roster commands.';
        
$this -> help['command']['member'] = "Shows the members count.";
        
$this -> help['command']['member add <name>'] = "Adds player <name> as a member to the bot.";
        
$this -> help['command']['member del <name>'] = "Removes player <name> from the member list.";
        
$this -> help['command']['member list'] = "Shows the members list.";
        
$this -> help['command']['member mains'] = "Shows the mains only members list.";
        
$this -> help['command']['guest'] = "Shows the guest list.";
        
$this -> help['command']['guest add <name>'] = "Adds player <name> as a guest to the bot.";
        
$this -> help['command']['guest del <name>'] = "Removes player <name> from the guest list.";
        
$this -> help['command']['rosterupdate'] = "Forces the bot to run through a roster update.";
        
$this -> help['command']['buddylist'] = "Displays a list of all of the bots buddies.";
        
$this -> help['command']['buddylist clear'] = "Wipes all of the bots buddies from the bots buddylist.";

        
$this -> bot -> core("settings") -> create("Roster""Buddylistupdate"10"What difference is allowed between the bots buddylist and the number of members who should be on it before a roster update is forced?""10;20;30;40;50");

//      $infos = $this -> bot -> db -> select("SELECT * FROM #___professions ORDER BY profession ASC");
//      foreach ($infos as $info)
//      {
//          $this -> prof[$info[1]] = $info[0];
//      }

    
}

    
/*
    Unified message handler
    */
    
function command_handler($source$msg$type)
    {
        
$return false;

        
/*
        This should really be moved to the bot core.. but until i get the time to modify every single module... :\
        */
        
$vars explode(' 'strtolower($msg));

        
$command $vars[0];

        switch(
$command)
        {
            case 
'member':
                switch(
$vars[1])
                {
                    case 
'del':
                    case 
'rem':
                        
$return $this -> bot -> core("user") -> del ($source$vars[2], 00);
                        if (
$return["error"] == true)
                        {
                            return 
$return["errordesc"];
                        }
                        else
                        {
                            return 
$return["content"];
                        }
                    case 
'add':
                        
$return $this -> bot -> core("user") -> add ($source$vars[2], 0MEMBER0);
                        if (
$return["error"] == true)
                        {
                            return 
$return["errordesc"];
                        }
                        else
                        {
                            return 
$return["content"];
                        }
                    case 
'list':
                        return 
$this -> memberslist();
                    case 
'mains':
                        return 
$this -> memberslistmain();
                    default:
                        return 
$this -> memberscount();
                }
            case 
'guest':
                switch(
$vars[1])
                {
                    case 
'del':
                    case 
'rem':
                        
$return $this -> bot -> core("user") -> del ($source$vars[2], 00);
                        if (
$return["error"] == true)
                        {
                            return 
$return["errordesc"];
                        }
                        else
                        {
                            
$this->bot->core('notify')->del($vars[2]);
                            return 
$return["content"];
                        }
                    case 
'add':
                        
$userlevel $this -> bot -> db -> select("SELECT user_level FROM #___users WHERE nickname = '".$vars[2]."'");
                        if(!empty(
$userlevel))
                            
$userlevel $userlevel[0][0];
                        else
                            
$userlevel 0;
                        if (
$userlevel == 2)
                        {
                            return 
"##highlight##" $vars[2] . " ##end##is already a MEMBER and connot be added as GUEST!";
                        }
                        if (
$userlevel == 1)
                        {
                            return 
"##highlight##" $vars[2] . " ##end##is already a GUEST!";
                        }

                        
$return $this -> bot -> core("user") -> add ($source$vars[2], 0GUEST0);
                        if (
$return["error"] == true)
                        {
                            return 
$return["errordesc"];
                        }
                        else
                        {
                            
//$this -> bot -> core('notify') -> add ($source, $vars[2]);
                            
return $return["content"];
                        }
                    case 
'list':
                    default:
                        return 
$this -> guest_list();
                }
            case 
'rosterupdate':
                if (
$this -> bot -> guildbot)
                {
                    
$this->output($source"Starting roster update.");
                    
$this->bot->core("roster_core")->update_guild(true);
                    return 
FALSE;
                }
                else
                {
                    
$this->output($source"Starting roster update.");
                    
$this->bot->core("roster_core")->update_raid(true);
                    return 
FALSE;
                }
                break;
            case 
'buddylist':
                if (
$vars[1] == 'clear')
                {
                    return 
$this -> clear_buddies();
                }
                else
                {
                    return 
$this -> list_buddies();
                }
                break;
            default:
                return 
"Broken plugin, recieved unhandled command: $command";
                break;
        }
    }

    
/*
    Makes a list of current Guests
    */
    
function guest_list()
    {
        
$inside "##blob_title##:::: <botname>'s Guest List ::::##end##\n\n";
        
$count 0;
        
$result $this -> bot -> db -> select("SELECT id, nickname, added_at, added_by FROM #___users WHERE user_level = " GUEST " ORDER BY nickname ASC");
        if (!empty(
$result))
        {
            foreach (
$result as $val)
            {
                if (!empty(
$val[1]))
                {
                    
$count++;
                    
$inside .= "##blob_text##&#8226; " $val[1] . "##end## ".$this -> bot -> core("tools") -> chatcmd("whois " $val[1], "[Whois]")." ".$this -> bot -> core("tools") -> chatcmd("guest del " $val[1], "[Remove]")."\n";
                    
$inside .= "##blob_title##Added:##end## ##blob_text##" gmdate($this -> bot -> core("settings") -> get("Time""FormatString"), $val[2]) . " GMT##end## :: ##blob_title##By:##end####blob_text## "stripslashes($val[3]) ."##end##\n\n";
                }
            }
        }
        return 
$count " guests in <botname> :: " $this -> bot -> core("tools") -> make_blob("click to view"$inside);
    }

    function 
memberslist()
    {
        
$blob "";
        
$count 0;
        
$result $this -> bot -> db -> select("SELECT nickname, last_seen FROM #___users WHERE user_level = " MEMBER " ORDER BY nickname ASC");
        if (!empty(
$result))
        {
            
$inside "##blob_title##:::: <botname>'s Member List ::::##end##\n\n";
            foreach (
$result as $val)
            {
                
$count++;
                
$inside .= "##blob_text##&#8226; " $val[0];
                if (
$val[1] > 0)
                {
                    
$inside .= ", last seen at " gmdate($this -> bot -> core("settings") -> get("Time""FormatString"), $val[1]);
                }
                else
                {
                    
$inside .= ", never seen online";
                }
                
$inside .= "##end## ".$this -> bot -> core("tools") -> chatcmd("whois " $val[0], "[Whois]")."\n";
            }
            
$blob " :: " $this -> bot -> core("tools") -> make_blob("click to view"$inside);
        }
        return 
$count " members in <botname>" $blob;
    }

    function 
memberscount()
    {
        
$blob "";
        
$total 0;

        if(
$this -> bot -> game == "aoc")
            
$cp "class";
        else
            
$cp "profession";

        
$buddies count($this -> bot -> aoc -> buddies);
        
//Get a list of professions
        
$profession_list "'".$this->bot->core('professions')->get_professions("', '")."'";
        
$counts $this -> bot -> db -> select("SELECT t2.".$cp.", COUNT(DISTINCT t1.nickname)
                FROM #___users AS t1 LEFT JOIN #___whois AS t2 ON t1.nickname = t2.nickname
                 WHERE user_level = " 
MEMBER " AND t2.".$cp." IN ($profession_list) GROUP BY ".$cp);

        foreach (
$this -> bot->core('professions')->get_profession_array() as $prof)
            
$count[$prof] = 0;
        if (!(empty(
$counts)))
        {
            foreach (
$counts as $profcount)
            {
                
$count[$profcount[0]] += $profcount[1];
                
$total += $profcount[1];
            }
        }

        
$inside "##blob_title##:::: <botname>'s Member Count ::::##end##\n";
        
$inside .= "\n##blob_text##Buddy List Count: ##blob_title##".$buddies."##end##\n";
        foreach (
$count as $key => $value)
            
$inside .= "\n&#8226; ".$key." = ##blob_title##".$value."##end##";
        
$blob " :: " $this -> bot -> core("tools") -> make_blob("click to view"$inside);

        return 
$total " members in <botname>" $blob;
    }

    function 
list_buddies()
    {
        
$buddies $this -> bot -> aoc -> buddies;
        
$count 0;

        if (empty(
$buddies))
        {
            return 
"No buddies in <botname>'s buddylist!";
        }

        foreach (
$buddies as $id => $value)
        {
            
$buddy[$id] = $this -> bot -> core("chat") -> get_uname($id);
            
$count++;
        }

        
asort($buddy);

        foreach (
$buddy as $id => $value)
        {
            
$msg .= $value " (ID: " $id ")\n";
        }

        return 
$count " buddies in <botname>'s buddylist :: " $this -> bot -> core("tools") -> make_blob("click to view"$msg);
    }

    function 
clear_buddies()
    {
        
$buddies $this -> bot -> aoc -> buddies;
        
$count 0;

        foreach (
$buddies as $id => $value)
        {
            
$this -> bot -> core("chat") -> buddy_remove($id);
            
$count++;
        }

        return 
"Removed " $count " buddies from <botname>'s buddylist.";
    }

    
/*
    This gets called on cron
    */
    
function cron()
    {
        
$buddies $this -> bot -> aoc -> buddies;
        
$buddy_count count($buddies);

        
$notify_db $this -> bot -> db -> select("SELECT count(notify) FROM #___users WHERE notify = 1");

        
$notify_count $notify_db[0][0];

        if (
$notify_count $buddy_count >= $this -> bot -> core("settings") -> get("Roster""Buddylistupdate") || $buddy_count $notify_count >= $this -> bot -> core("settings") -> get("Roster""Buddylistupdate"))
        {
                
$force true;

                if (
$this -> bot -> guildbot)
                {
                    
$this -> bot -> core("roster_core") -> update_guild($force);
                }
                else
                {
                    
$this -> bot -> core("roster_core") -> update_raid($force);
                }
        }
    }

    function 
memberslistmain()
    {
            
$blob "";
            
$count 0;
            
$result $this -> bot -> db -> select("SELECT nickname, last_seen FROM #___users LEFT JOIN alts ON #___users.nickname = alts.alt WHERE user_level = " MEMBER " AND alts.alt IS NULL ORDER BY nickname ASC");
            if (!empty(
$result))
            {
                    
$inside "##blob_title##:::: <botname>'s Mains List ::::##end##\n\n";
                    foreach (
$result as $val)
                    {
                            
$count++;
                            
$inside .= "##blob_text##&#8226; " $val[0];
                            if (
$val[1] > 0)
                            {
                                    
$inside .= ", last seen at " gmdate($this -> bot -> core("settings") -> get("Time""FormatString"), $val[1]);
                            }
                            else
                            {
                                    
$inside .= ", never seen online";
                            }
                            
$inside .= "##end## ".$this -> bot -> core("tools") -> chatcmd("whois " $val[0], "[Whois]")."\n";
                    }
                    
$blob " :: " $this -> bot -> core("tools") -> make_blob("click to view"$inside);
            }
            return 
$count " mains in <botname>" $blob;
    }
}
?>

Offline Justine

  • BeBot Rookie
  • *
  • Posts: 16
  • Karma: +0/-0
Re: BeBot v0.6.8 released - Rise of the Godslayer edition
« Reply #14 on: June 06, 2010, 05:43:27 pm »

I found an issue with the 0.6.8 release.

modules/Roster.php is missing a command that was included in 0.6.7.  !member mains - Shows the mains only members list.

~Kyr


As I have not played with that, and recently wanted to look at the "members" vs what our guild actually has... when you do a request for !members mains does it list out the mains, last log on and details?  for example will it show a link to get an alt list for them?  if so that would be huge for me to easily see if someones alt is showing as a member when it should not.  Alot of people have been adding low alts and deleting them only to change their minds on class/race/ yadda yadda. 


 

* Recent Posts
[AoC] special char for items module by bitnykk
[February 09, 2024, 09:41:18 pm]


0.8.x updates for AoC by bitnykk
[January 30, 2024, 11:16:08 pm]


0.8.x updates for AO by bitnykk
[January 30, 2024, 11:15:37 pm]


BeBot still alive & kicking ! by bitnykk
[December 17, 2023, 12:58:44 am]


Bebot and Rasberry by bitnykk
[November 29, 2023, 11:04:14 pm]

* Who's Online
  • Dot Guests: 485
  • Dot Hidden: 0
  • Dot Users: 0

There aren't any users online.
* Forum Staff
bitnykk admin bitnykk
Administrator
Khalem admin Khalem
Administrator
WeZoN gmod WeZoN
Global Moderator
SimplePortal 2.3.7 © 2008-2024, SimplePortal