Blaze

From Botdom Wiki

(Redirected from Inferno)
Jump to: navigation, search
Blaze
Developer(s): plaguethenet
Programming language: VB.NET
Minimum requirements: .NET Framework 2.0
Development state: Gold
Source model: Closed Source
Last stable release: 2.02 (11/13/2007)
License type: AS-IS


Website


Blaze (previously known as Inferno) is a bot by plaguethenet which aims to be to VBBot what Dante was to NoodleBot. It is based on dAmn[WIN] 2.0's dAmn library and is far more stable than VBBot and dAmn[WIN] 1.0.

Contents

Requirements

You must have the Microsoft .NET Framework 2.0 installed in order to run the bot. Installation is simple; unzip the bot and run Inferno.exe, it will give you instructions on how to set it up for the first time. The .NET Framework 2.0 can be downloaded here. If you are unsure if you have the framework installed, simply unzip the bot and try running it.

Suggestions

  • Please post your suggestions here.

Download

Features

  • XML Based Configuration files
  • VB.NET and C# Modules and plugins
  • Module/Plugin Cache System

FAQ

Why wont you answer my questions?

  • Because, Blaze was created to be extremely simple to set up and use. If you cannot figure it out then you should probably not have a bot. Sorry.

Why dont you add support for _____?

  • I add things as i see fit. Suggest all you like, And i will try to listen.

There is a problem with the module ____, Can you fix it?

  • While i try to make the modules as stable as possible, I never intended to write the modules at all, and they are provided as-is. I will attempt to fix any issues, But i would appreciate it if someone else would write modules for blaze other then just me.

Why did you finalize blaze if it still has known issues?

  • Because at this point in time development has stopped, Im awaiting the release of dAmn 1.0 and im going to re-write blaze in C# for better portability.

When will blaze run under linux/OS X?

  • When it is fully re-written in C#.

I found a bug, What should i do?

  • First see if its listed under known issues, If it is then just be patient and wait for me to fix it. If it isnt listed under known issues, Send an email to plaguethenet@gmail.com describing the issue and the steps to re-produce it.

Known Issues

Current Issues

  • Fails to connect almost all the time.
  • You can set the access permission of a command that does not exist.
  • The wordstats module disables logging for some reason. use the command module disable wordstats to fix.

Fixed Issues

  • If you close the bot window, You will lose any settings in the cache that have not been committed to disk. Use !quit (Replace ! with your trigger) to shutdown the bot.
  • Auto-Rejoin is broken

Change Log

2.02 Final

  • Fixed a bug in 2.0 that caused some settings to not save as intended.
  • Added an interface to disable modules.
  • Added a command that disables modules.
  • Added a response and wordstats module.

2.0 Final

  • Name changed to Blaze
  • Obselete Functions removed from the bot core.
  • Bot-Core simplified
  • Bot core is considered to be 100% Complete.

1.40RC2

Changes

  • Replaced VBSettings with a new settings system. This is mostly because i lost the source but also because VBSettings had alot of issues that were hard to work around. No worries. Lessons learned.
  • Modified the core to run faster.
  • Added a log verifyer for future use. It will eventually be used to send another bot a copy of your log files and that bot can verify them to make sure they are valid. Still working on it.
  • Fixed a few spelling and grammar errors. Im sure there are more. English never was my first language (C++ Was)
  • I am slowly changing the module system over to a new way of declaring commands. this allows the bot to be much faster with alot of commands loaded. Instead of having to call them all.
  • All config files (Due to the change in format) have been renamed to .vs2 You may upgrade your old settings by typing \\upgrade (Replace \\ with your trigger)

Notes

  • __MyHost.RegisterCommand("example", PrivLevels.Member, "example help")
    should be replaced with
__MyHost.RegisterCommand("example", PrivLevels.Member, "example help", AddressOf ExampleSubRoutine)
  • Afformentioned command delegate (ExampleSubroutine) should be declared as follows:
Sub ExampleSubRoutine(ByVal command As String, ByVal user As String, ByVal room As String, ByVal params As String)
'Do stuff here
End Sub
  • The old way of declaring commands is being phased out. Change your modules now to avoid them breaking in the future when the command is set to obsolete (No Compile), It is currently Obsolete (Warn).
  • This version has not been released to the general public yet.

1.34RC1

  • Added an internal RPC System. This allows one module to call another module.
  • Added an interface to keep track of rooms, privclasses and member data.
  • Added the ability to change the default error messages. To do so use the command "set"
  • Fixed a bug where the auto-rejoin wouldn't work.
  • Fixed a bug with the room/privclass/member tracker.
  • Added a dice module.
  • Added a command to Lock the current workstation (Windows 2000/XP/Vista only)
  • Added a few more games. (Spin the bottle, kick roulette, kick roulette with bofh excuses)
  • Further optimized the cache system.
  • Removed some legacy code that was doing nothing
  • The bot no longer prompts you to press a key to exit (If you exit with the quit command)
  • Added a GUI for setting up the bot. If you make a mistake in the GUI Delete bot.xml in the config folder and start the bot again.
  • The bot will no longer default to joining #Botdom unless you do not set a room to join.
  • Added a command: rpcdump to show info on the currently available RPC Calls.
  • Improved the output of cachestats to make the data more readable.
  • There is now an Interactive Console. The console is hidden by default and there is no command to show it currently. If you want to check it out type
    \\eval MyHost.ConsoleVisible = True
    To hide it type hide into the console. Replace\\ with your trigger.
  • Optimized the internal Module cache to increase speed when reloading.
  • Added a send method to the Host interface. This allows the processing of tokens like $USER without the additional function call.
  • Added a module that allows you to control some of the aspects of windows (Shutdown, reboot and lock).

1.0RC2

  • Re-enabled the cache system that was disabled in 0.3a
  • Fixed the problems with the cache system.
  • Cache writes are done via a background thread. This should be a great improvement on speed.
  • Any write requests update the read cache. So: Save Early. Save often.
  • Added a command to view cache statistics: cachestats
  • Added a command to commit the write cache to disk: commit
  • Changed the internal operation of MyHost.Reconfig() so that it committed the write cache to disk and invalidated the read cache.
  • Added a debuglevel command. this command changes the verbosity of Inferno's console display. Valid values range from 0 (Silent unless EXTREMELY Important) to 10 (Spam away) The default value is 2.
  • Added a Finite State Machine based Calculator.
  • Added a cmdas command - Runs a command as a different user. Note: The command will execute successfully regardless of the users permissions. Usage: cmdas username command params
  • Added a prop command - Gets the title or topic of the specified room, If no room is specified it will default to the current room. Usage: prop [title|topic] [room]
  • Fixed the uptime display to show the time in a more natural way, Also added the current number of times the bot disconnected from dAmn.
  • Added a credits command.
  • Fixed a few bugs in the AI Command.
  • Fixed a bug where changes to settings that were in the cache, were not being updated.
  • Added internal data structures for room, privclass and member data.
  • Created a script module that allows Noodlebot style scripts (Written in VB) to be loaded.
  • Created a notes module.
  • Created a welcome module.
  • Created a Magic 8ball.
  • Created a bunch of scripts.
  • Stopped calling Setting.Save(). It has been replaced with MyHost.RegisterForSave(setting)
  • Added write caching. (Prevents redundant writes, and greatly speeds up the bot)
  • Added new interfaces to the bot core. Allowing more access to the internals of the bot.
  • dAmn Packet Parsing is now far more efficient.
  • Added a command priv override. Allows you to give access to commands on a user/room basis.
  • These new permissions override the user group. But do not override disabled commands.
  • Finished Regression testing. The bot is no longer a mix of beta/release candidate. It is now just a release candidate.
  • Removed the SetHelp Event from the bot (Its declaration is still present, But it will never fire)
  • The bot now deals with internal errors more gracefully.
  • Added a purely cosmetic memory flush, to keep the bots memory in task manager down, The bot always used this amount of memory, But it displayed upwards of 22mb in task manager.
  • Made numerous improvements to the scripting engine.
  • Out of date cache dll's will no longer be loaded.

0.92RC1

  • Re-organized the Core of the bot
  • Added a note module
  • Added an AIML Engine
  • Fixed a few issues with Tablump Processing

0.91RC1

  • Too many changes to list.
  • Beginning of Release Candidate State.

0.4a

  • Heavily modified internal events
  • Added about 15 new commands to the bot
  • Fixed a bug in the plugin loader that caused it to try to compile C# Scripts as VB.NET
  • Lowered the PONG timer from 5 minutes to 10 seconds.
  • Made more changes to InfernoCore.vb in the hopes of gaining more speed.

0.3a

  • Initial Release

Interfaces

Host Interface

Public Interface ModuleHost
    Event StateChange(ByVal NewState As dAmnDOTNet.ConnectionState)
    Event Command(ByVal Room As String, ByVal from As String, ByVal Command As String, ByVal Params As String, ByVal e As ModuleEventArgs)
    Event dAmnPacket(ByVal Packet As VBSettings.Setting)
    Event Unload(ByVal reloading As Boolean)
    Event SetHelp(ByVal Command As String, ByVal helptext As String)
    Event InternalMessage(ByVal RecieverID As String, ByVal Data As Object, ByVal MessageGUID As String)
    Event UserMessage(ByVal room As String, ByVal sender As String, ByVal message As String)
    Event PreCommand(ByVal command As String, ByVal from As String, ByVal room As String, ByVal e As ModuleEventArgs)
    Event FailedCommand(ByVal command As String, ByVal from As String, ByVal room As String, ByVal params As String, ByVal Reason As FailureReasons)
    Event ConsoleCommand(ByVal Command As String, ByVal params As String, ByVal e As ModuleEventArgs)
    Function GetConfig(ByVal name As String, Optional ByVal LoadOrCreate As Boolean = True) As VBSettings.Setting
    Function GetdAmnObject() As dAmnDOTNet.dAmn
    Function RegisterCommand(ByVal Command As String, ByVal DefaultPrivs As PrivLevels, ByVal HelpText As String) As Boolean
    Function GetCommandPrivs(ByVal command As String) As PrivLevels
    Function GetUserPrivs(ByVal User As String) As PrivLevels
    Function TryAddModule(ByVal Path As String) As Boolean
    Function PrivToString(ByVal priv As PrivLevels) As String
    Function StringToPriv(ByVal Priv As String) As PrivLevels
    Function NewGUID() As String
    Function IsCommandEnabled(ByVal command As String) As Boolean
    Function GetFileList(ByVal Dirs As String, ByVal Extensions As String) As List(Of String)
    Function CheckOverride(ByVal user As String, ByVal command As String, Optional ByVal room As String = "") As Override
    Function ParseTokensToText(ByVal input As String, ByVal command As String, ByVal room As String, ByVal user As String) As String
    Function RunRPC(ByVal RPCName As String, Optional ByVal param As Object = Nothing) As Object
    Function HasRPC(ByVal RPCName As String) As Boolean
    ReadOnly Property RPCList() As IList(Of String)
    ReadOnly Property AppPath() As String
    ReadOnly Property Owner() As String
    ReadOnly Property CommandList() As IList(Of String)
    ReadOnly Property ModuleList() As IList(Of String)
    ReadOnly Property ModuleCount() As Long
    ReadOnly Property CommandCount() As Long
    ReadOnly Property VersionString() As String
    ReadOnly Property HostName() As String
    ReadOnly Property Uptime() As System.Diagnostics.Stopwatch
    ReadOnly Property Disconnects() As Long
    ReadOnly Property Room() As ChatroomCollection
    ReadOnly Property Help(ByVal command As String) As String
    ReadOnly Property CacheStats() As CacheStats
    ReadOnly Property dAmn() As dAmnDOTNet.dAmn
    Property ConsoleVisible() As Boolean
    Property LockDown() As Boolean
    Sub Send(ByVal room As String, ByVal text As String, Optional ByVal Who As String = "", Optional ByVal type As dAmnDOTNet.MessageType = dAmnDOTNet.MessageType.MSG_MAIN)
    Sub DispatchMessage(ByVal Destination As String, ByVal Data As Object)
    Sub Quit()
    Sub SetUserPrivs(ByVal user As String, ByVal privlevel As PrivLevels)
    Sub DeleteUser(ByVal user As String)
    Sub SetCommandPrivs(ByVal command As String, ByVal Privlevel As PrivLevels)
    Sub Reload()
    Sub Reconfig()
    Sub ConsoleMessage(ByVal Message As String, Optional ByVal Level As Integer = 2)
    Sub DisableCommand(ByVal command As String)
    Sub EnableCommand(ByVal command As String)
    Sub TriggerCommand(ByVal room As String, ByVal from As String, ByVal command As String, ByVal params As String)
    Sub FlushMemory()
    Sub Allow(ByVal user As String, ByVal command As String, Optional ByVal room As String = "")
    Sub Deny(ByVal User As String, ByVal command As String, Optional ByVal room As String = "")
    Sub UnsetAO(ByVal User As String, ByVal command As String, Optional ByVal room As String = "")
    Sub ClearScriptCache()
    Sub RegisterForSave(ByVal S As VBSettings.Setting)
    Sub ForceSave()
    Sub ICMessage(ByVal Message As String)
    Sub RegisterRPC(ByVal name As String, ByVal RPCDelegate As RPC)
    Delegate Function RPC(ByVal Parameter As Object) As Object
End Interface

Module Interface

Public Interface ModuleClient
    Property MyHost() As ModuleHost
    Sub Init(ByVal Host As ModuleHost)
End Interface

Additional Information

This section is a stub. You can help Botdom Wiki by expanding it by clicking the edit button at the right.

Source

  • Please send an email to plaguethenet AT gmail DOT com with the subject Source and i will reply with the source to dAmnDOTNet, Inferno, and dAmn[WIN] I will upload it as soon as i find a host, but it is 11.4mb So its hard to find a host sometimes.
    • [1] - or get it here
Personal tools