In an excited rush to ship beta 41 last night, I forgot a few things. 41b fixes these.
http://www.joetheodd.com/javaop/Plugins-41b.ziphttp://www.joetheodd.com/javaop/Core-41b.zipCore
- Implemented BNLS as the main method of versioning. The code for RCRS is still present, but no longer usable, as no RCRS servers are up to date.
- Removed the ability to local hash, as CheckRevision is out of date.
Java Version:
- Unfortunately, I don't have JDK 1.4, so I built this against 1.5. Someone may show you mercy and recompile it, but I wouldn't hold your breath.
Beta 41b fixes these bugs:
- The version command reported that we were still using beta40b, due to the neglect of updating a static value. Fixed!
- The BNLS server was typed incorrectly, causing everyone to fail to connect properly. If you've run the bot after installing beta 41, you'll need to change it to "bnls.valhallalegends.com", but if you're just upgrading now this is fixed.
- The RCRSWrapper and RCRSClient classes have been changed to fit the same interface as BNLSWrapper and BNLSClient, but are still unused. This is just to make their implementation easier if there comes a day where RCRS is used again.
--------------------------
HISTORY
--------------------------
Beta 40
There are 3 new plugins, written by Ryan Marcus. I haven't tested them at all, so I can only assume they work. They are:
- Channel Protection -- For locking down the channel
- Clan -- For sending messages when somebody leaves the channel. Useful for advertising. This will be expanded later for more clan-related stuff
- Global Command -- For commands that affect all bots.
Core:
- Added the ability to get a handle to StaticExposedFunctions via PublicExposedFunctions. This cleans up a lot of code.
- Added the ability for plugins to add and remove menus and menu items. This isn't totally complete yet, but it works if plugins want to use it. The only thing I haven't done is use it in my own plugins, but next version they will.
- Fixed a bunch of misspellings on the word "separate"
- Added a new plugin type: GuiPlugin. It's used by any plugins that want to implement gui stuff, like adding/removing menus. So far, it's only used by SwingGui.
Remote Control:
- Removed all functionality from the RemoteControl. I will put it back in once I get it working, but right now it was just making me feel bad.
Web:
- Added Ryan Marcus as a contributer.
Swing GUI:
- Totally rewrote the majory of it
- It is now MDI-Style rather than tabbed. This allows for easy customization of menus.
- There are now icons on all the menus. Very sexy looking icons, drawn by our good friend Ergot
UPDATE: beta40b solves a problem running on Java 1.4.2.
Beta 39
Core:
- Removed a duplicate function called removeBot() (all functions now use deleteBot())
- Got rid of some debugging output ("Sending / Receiving packet of length xxx")
- Added a function GetLocalSettingsSection. It pulls an entire section of the local settings back.
- Ensured that bots don't have weird characters in their names. This was causing some problems for people.
- Added a function botGetSettings which retrieve the settings file for that bot.
- Added the ability to use Custom Flags. See the Command plugin updates (below) for more information.
- Trying to stop a bot that's not running no longer causes an error. It just does everything it can do.
- Plugin "StayConnected" will no longer load, even if it wasn't deleted on update.
Battle.net Login Plugin:
- Added some comments to Login.java, since it was beginning to get confusing,
- The client token is now slighly more random. It's still possible to predict, however, but now it's more difficult.
- Changed the CDKey Owner to "
www.JavaOp.com" (shameless plug! Smiley)
- Added handlers for all possible problems with secondary cdkey (banned, etc.) instead of displaying an error
- Your CDKey is now locally sanity-checked before ever trying to connect. If it's the wrong length or an invalid key, a connection to Battle.net is never made.
- Leaving the CDKey blank has a better error message. Used to be "Invalid length", now it's "CDKey missing".
- If there's a problem with the secondary CDKey, it now indicates it.
- Updated version information for Starcraft 1.13b
- Fixed a problem that occurred in Java 1.4.2 because of using LinkedList.peek().
Commands:
- It is now possible to customize the required flags for your bots! They are stored in a file called <botname>.flags. To edit it manually, add lines that look like:
command=FLAGS
to the file. To edit it while the bot is running, you can use the ?setflagsfor and ?getflagsfor commands. If no custom flags are set, the bot will use the default flags.
Email Register:
- Is now a default plugin.
Fun Stuff:
- Added ?removequote
- Fixed a potential vulnerability in pickrandom
Help:
- ?help now displays the required flags for the command. It also takes into account custom flags.
Swing Gui:
- Added a "Quick Preferences" dialog, which lists the most important preferences in one simple place, making it much quicker to get a bot up and running.
- Added a new global preference, "Hold at bottom", which forces the bot to go to the bottom when new text is added no matter where the cursor is. I don't like this myself, but I added it due to popular demand.
- Added a new global preference, "Select new bots", which, when turned on (which is default), will automatically change tabs when a new bot is added.
- Added a new global preference, "Bot icons". If this is turned on (which it is by default), the game icon that the bot is connected with is displayed on the tab. I think it looks pretty neat, and helps you mentally organize your bots.
- Added a new menu option, "Edit -> Clear", which will clear the chat screen for the current bot.
- Menus that display a list of bots (load, delete, select default) will now give you information about bots when you hold your mouse over them. Information displayed includes the account, channel, server, and product.
Beta 38
- Delete the StayConnected plugin. It was doing nothing but causing problems.
- Changed default rcrs server to rcrs1.javaop.com. My account on the ForgeHosting server will no longer be maintained, so if something happens please update your servers manually (or hit 'default' on that setting in the Global Settings dialog)
- Added "0x" in front of hex values in the login.
- Added some support for "second key" errors.
- Made login more verbose to help track down bugs.
- Updated local hash values for new Starcraft and Diablo 2 versions
- Added synchronization to the RCRS stuff, so that they don't get the current server confused
- Got rid of variable 'connected' which wasn't always correct anyways
- Added a very big warning if somebody disabled Battle.net Login lugin.
- Made the verbosity option of the SwingGUI plugin a global setting
Beta 37
New Plugin!
Name: Forwarding
Description: Forwards whispers or messages to a specific user
New commands: Forwardoff, Fowardwhispers, Forwardall
New Plugin!
Name: User information
Description: Stores and displays persistant information about users. So far, just last time seen and first time seen
New commands: seen, lastseen, firstseen
- Bot's connection will now time out after 5 seconds (configurable)
- RCRS Connection times out in 5 seconds
- More than one RCRS server can be specified, comma-separated. By default, rcrs1-4.javaop.com is used in addition to the default. These will be up within a day or two.
<update> 37b: setting the timeout now works.
Beta 36
New Plugin!
"Advertisements"
- This will request advertisements every 15 seconds. When the ad changes, it will be displayed. Optionally, the advertisement can be shown out loud, but I have no idea why you would ever want to do that..
New Plugin!
"Ladder"
- This adds 3 new commands (starladder, broodladder, and war2ladder) that display information on the ladder. See their help for more information.
- Added a "Number-Only" textfield for the configuration to make sure that users don't type in an illegal character where a number is required.
- Changed many plugins to use the new textfield.
- Moved the storage of the "Username" when chat is entered to earlier, to make sure that the username is known when the profile is requested.
- Fixed the error handling in the commands, so if a plugin has an error it just displays it and carries on.
- You can no longer type in your own format for "logging". That would have just caused an error anyway, I don't know why I ever allowed it.
- SID_EXTRAWORK is apparently really handled now (thanks again to Joe)
- Added /reply and /rewhisper commands to make whispering easier.
- Added the name of the plugin to the top of the plugin settings page.
- When the Settings form comes up, "default" is once again automatically selected.
- Added some information about banning people outside the channel to the FAQ
- Got rid of a handful of stray outputs.
Beta 35
- BIG bug fix: my PersistantMap (settings storer) had a bit of a race-condition type of problem. If you closed a bot while it was saving, the configuration would be lost. Now it saves to a temp file first.
- PersistantMap (settings) saves/loads much less frequently now, only when it's required.
- The connection sequence is now stopped properly if you disconnect/reconnect while it's connecting.
- Changed "InsaneJoey" to "Joe" on credits page
- Fixed a couple typos on the website (thanks Incandescent)
- SwingGUI no longer screws up if you create a "New" bot and specify a blank name or cancel out of it. (thanks phoozed or fooz or whatever)
- A neat new option on SwingGUI: "Colored Names" -- when this is enabled (which it is by default), everybody's name gets a unique color based on the characters in their name. I think it makes it easier to tell people apart or find a specific person like that.
Beta 34
I strongly recommend enabling StayConnected. I set it as a required plugin so new bots will automatically have it enabled.
New Plugin!
"StayConnected"
- There's lots of options, but by default, when you disconnect, this will automatically reconnect you. It also throttles connections, so when a bot fails to connect the reconnect is delayed. If it fails multiple times, the delay is increased more and more.
- Totally re-did the exception handling. Disconnects are handled properly, and IOException is only thrown when a disconnect happens.
- Alias stuff no longer throws an IOException for failed file i/o
- Database stuff no longer throws an IOException for failed file i/o
- Color stuff no longer handled IOExceptions
- PersistantMap (settings) no longer throws an IOException for failed file i/o
- Most of the File i/o now looks after its own exceptions
- connect()/reconnect()/disconnect() no longer throw exceptions
- Managed to break "diff" on the PacketThread due to so many changes, but the main thing is handling disconnects properly.
- Created a new global variable called "Connected" which stores a Boolean object.
- SID_EXTRAWORK is now handled (thanks, Joe!)
- Got rid of "LocalSettingChanged" callback, since it didn't really work properly anyways
- Got rid of "missingConfig" and "missingUserDatabase" callbacks, since they didn't work anyway
- Got rid of MiniBuffer, which was code for the old RemoteSwingGui that isn't used
- Cleaned up exception handling on many plugins
- Added a Diablo Shareware icon (Thanks Ergot!)
Beta 33
- _COMPLETELY_ rewrote the Remote thing. It's now Java-specific, but much more powerful since I can send objects over the connection. I'll write up a new guide for it soon, although it's similar to the old version.
- Added constants for SID_PROFILE (0x35)
- Made the "User" interface Serializable (so it can be transferred across the network)
- Added support for war3-style profiles (/w3profile)
Beta 32
- Fixed a serious bug where the SwingGUI would lock up (I HOPE). It seems to be caused by setForegroundAt(), which sets the color of the tab. I was using it when messages arrived, but apparently it didn't like that. So I got rid of it, and I'm praying it's fixed.
- Gave names to threads to make debugging easier
- Got rid of "Connect bot" under the File menu, because that just broke stuff.
- Added the ability to edit the colors of the GUI. I'll start a sticky thread, and if you make good color schemes please post a link!
- Got rid of DisplayPluginInformation class, which didn't do anything.
Beta 31
New Plugin!
"Away message"
- Sets an away message when there's no activity, "Bot's been gone for xxx minutes".
- Configurable: how long to wait before first message (3 mins), how long between messages (1 minute), whether to display the seconds, etc.
- Added notification if you flood off.
- Changed the defaults of Anti-flood (it's a little better now, I think).
- Changed the name of Anti-flood (to force you to reload the defaults).
- Got rid of the need for "Short description", everything just uses "Description" (which is getLongDescription() now).
- Completely re-wrote the message queue and moved it to its own class. This was to fix a rather nasty bug that took me a long time to find, and only cropped up when I called sendText() from a weird place (such as from an OutgoingText callback or OutgoingPacket callback). The new one is much prettier anyway, and I like it more.
- Changed the description of "Server" to tell the user to give something else focus if you manually type in a server (Java bug).
- Changed TimeReader to handle 1's (no longer "1 minutes").
- Profile plugin now removes everything after (and including) a # from a user's name before checking their profile
- Profile plugin doesn't check "Account expires" by default because that doesn't exist
- SwingGUI tabs can now notify you when an event occurs. By default they turn red, but they can also be configured to automatically change when an even occurs, although doing that is pretty annoying and silly.
- Added the option to SwingGUI to filter "away" messages ("you are currently marked as away", "you are no longer marked as away", etc). This is on by default, and is handy if you're using the Away Message plugin.
Beta 30
New plugin!
Profile
- View profiles with .profile or ?profile
- Specify different profile fields in the configuration
- Get your own profile info (time logged, account created, etc.) on login
- Set profile fields with /setprofile (or .setprofile) \profile\description hi!
- Set profile fields with handy aliases, /setsex /setlocation /setdescription
New plugin!
ShellCommands
- Control your computer remotely!
- Pretty useless to control your computer, because of flooding; however,
- Added a method to PublicExposedFunctions for querying the required flags for a command
- Added a method to PublicExposedFunctions to check if a user is allowed to use a command (convenience)
- Added a method to FileTime to take in 2 strings
- Added a function to BotCoreStatic, getInstance(). Saves a little memory by not creating a new one every time.
- Changed the color of local messages from CYAN to LIGHTBLUE. Cyan's ugly
- Fixed BotMail plugin so that L is required (instead of M, I think) to use .getmail
- Got rid of .flip -- it's now just an alias that uses pickrandom
- Right click -> "Edit in DB..." on somebody's name in the channel once again works
- Fixed a bug in the DB editor where no users caused bad stuff
- Added a visual "Profile" display for user's profiles in SwingGUI. Also allows you to edit your own.
- Fixed Version command
- Added Arta to contributers page (since I use BNetDocs for everything)
Beta 29
- Added options for getting info on plugins (full name, author, description, etc.) to StaticExposedFunctions
- The setting changer now displays information about each plugin when it's clicked on.
- Added new options to CommandlineConfiguration (Enable all plugins / Disable all plugins / Get info on plugin)
- Fixed a spelling mistake in AntiFlood ("releasees")
- Added the abiliity to automatically change passwords to BNetLogin. Added some new settings to control it. By default, it's off.
- Made some changes to the PluginManager to make it work with Commandline.
- PersistantMap no longer throws an IOException when it creates the new settings.
- Fixed the SwingGUI so it "works" over commandline
Beta 28
- New Command! "define" -- defines a word using dictionary.reference.com. There's also an option for the number of definitions to return, default 3.
- Got rid of the .jar files which probably don't work anymore.
- Fixed it so that the "default" settings can actually be changed (it broke when I named it " default"). Your settings for server and port and "connect automatically" will be reset! Sorry! Sad
- Got rid of a stupid dependancy on javaop2_static (which only still existed because of the dependancy)
- God rid of some annoying outputs
- Fixed BNetLogin so RCRS can once again be used (note: don't forget it's a global setting now, it affects all bots)
Beta 27
New Plugin! FunStuff is mostly useless but amusing commands.
"Fun Stuff" Commands:
- Addquote - Adds a quote
- Quote - Displays a random quote
- Flip - Flips a coin (.pickrandom heads tails)
- Pickrandom - Picks a random parameters (.pickrandom a b c d e f)
- Random - Picks a random number (can be passed the min/max numbers as parameters)
- Host - Resolve a DNS to ip(s)
- Time - Displays the current time
Core:
- Got rid of JavaOp2_static, and added a new class called BotCoreStatic which implements StaticExposedFunctions. This is now passed to plugins in load(), and gives access to various static-type methods.
- getSettingDefault() now writes the setting if it wasn't there
- Added some methods for toggling loaded plugins to the BotCore
- The "Default" plugin (now called " Default" to push it to the top) is now looked after automatically by the plugin classes
- Added a lot more methods to the PluginManager class
- Added a bunch of global-type stuff to the GenericPluginInterface class
- Limited messages to 100 characters, but I might get rid of that
- Added an ErrorMessage class which will only display a GUI if it ought to.
Plugins:
- Fixed up anti-flood. The first message is now always sent instantly. If you can tweak the settings and pass /testqueue with various sizes faster than me, let me know.
- Added a setting to BasicCommands -- /join commands can be made non-instant now (which allows you to .join somewhere; say something; join somewhere else)
- RCRS Server is now a global setting. It affects all bots.
- Added some settings for RemoteControl plugin which don't do anything yet.
- Changed SwingGUI a lot to make use of the Static Functions class
- Got rid of File -> Configure Bot -- it just wasn't going to work out
- Moved the Setting Wizard and User DB Wizard to the SwingGUI. Double-clicking on their .jar file likely won't work anymore
- Added a static option "Load Gui" -- the Gui can be totally disabled by changing it
- Added a "loudness" setting to the SwingGUI. By default, DEBUG messages are no longer shown. It can also be configured to Quiet, which only shows errors.
- Moved "all flags" option to a static variable (in UserManagement plugin)
Beta 26
- Added a new plugin: SweepBan -- it uses the command /sweepban <channel> (or .sweepban <channel>)
- Totally re-wrote flood protection based on Adron's explanation. It is much faster for more messages, it sends the first couple messages with less delay, and it is extremely customizable. I don't recommend tweaking the settings, but you CAN!
- "Connect Automatically" now defaults to "false"
- Reconnecting no longer causes a NullPointerException
- Got rid of Boolean.parseBoolean() which isn't comptable with Java 1.4.2.
- Fixed the scroll wheel setting on the settings form so it's actually possible to scroll with the mousewheel now.
- The SwingGUI will no longer try to parse Profile requests that it didn't send
- Got rid of "Reload + Reconnect" since it was redundant (setting "automatically connect" and reloading does the same thing)
- Rewrote the "getting started" documentation
Beta 25
- Moved the packet sending to the packe thread. Connections are now done assynchronously; that is, the bot won't freeze up while the connection is happening.
- Added the ability to toggle "default plugins" fromt he main
- Added the ability to change the default bots in the SwingGUI
- Added an option (to the default plugin) called "connect automatically"
- Fixed a bug in CheckRevision that made cached version checks failed. I was saving the wrong variable -- oops!
- Flag changes are now done properly so that users don't end up at the top of the channel
- It is now optional whether users with ops end up at the top (untested, but should work)
- Fixed the channel clearing -- it will now clear from the top, the way it should
- The numbers you put into the "max characters" now makes a difference
- The defaults for "max characters" is more reasonable
- Added the ability to squelch/unsquelch by right-clicking on a user's name
- Added Mnemonics (Alt-N, etc.) to menu options
- Added War3Clan options, /accept, /decline, and /invites. UNTESTED!
Beta 24
Core:
- If no plugins are found, the user will be prompted to find them
- Plugins have an abstract method called isRequiredPlugin(). All plugins that identify themselves as a required plugin will automatically be loaded when a new bot is started.
- JavaOp2 will no longer end when no bots are loaded
- JavaOp2 can now start even if no bots are selected
- "Connect" should no longer be able to have two separate conections open
- A bot can now be closed without being connected
- Added the ability to delete bots
- Completely redid the list in the settings page. It's now a JTable and it's possible to select with only a single click. Plus is looks much sexier.
- Removed the ability to show a settings gui from the PublicExposedFunction class -- it is now only in the static function project.
Plugins:
- Tons of small changes to remove useless redundant code
- Fixed a bug in the "Filters" plugin that kills LEAVE events. Events with blank messages will no longer automatically be cancelled
Rewrote large parts of the SwingGUI plugin:
- It can now be loaded with no bots
- It can now load and load/connect bots properly
- It can now reload/reload+connect bots properly
- When a bot is reloaded, it doesn't lose selection
- Bots can be configured without being loaded
- Bots can be deleted
- Added a secondary menu for when no bots are loaded
- Cleaned up a lot of crappy code
Beta 23
- You can now change your password. Fill in the "password change" box in the BNetLogin Plugin and, next time you log in, it'll change your password to that and set it to your regular password. (Thanks to Maddox for help with this)
- Fixed a bug where, if you disable a plugin, all the plugins below them would be disabled. (Thanks to Quik for finding this)
- Fixed a bug where, if a user with just L uses .whatcanichange, it would result in an IPBan. (Thanks to Allanon for finding)
- Changed the NLS messages a little, when adding Password Change.
I think that's everything, I kinda lost my version tag so I can't do a compare.
Beta 22
- The "Settings" form will, once again, load! I don't know how that one slipped through <: ) (thanks to Quik for pointing it out)
- The "Verify Server" option is now a checkbox instead of a checkbox saying "True"
- Moved version string back into BotCore.java (it was in the global settings file, where it's used, but that caused me too much stress looking for it all the time Smiley)
Beta 21
- GenericPluginInterface is now an Abstract Class which implements a few methods to make plugin developers' lives easier
- Plugins can now take more active control of their preferenes panel
- Plugins don't have load() called when you are setting preferences now. That caused some annoyances sometimes.
- RemoteControl doesn't listen on ports when it's not enabled (thanks to Newby)
- getLocalSetting() no longer throws a PluginException (that was dumb)
Beta 20
Core:
- The bot now gets a list of all servers (that match, for example, useast.battle.net) and chooses a random one rather than choosing whichever one Battle.net sends me to. This way, if a server is down, odds are you can still connect if you try more than once.
- Cleared up the connecting messages a bit
- Fixed a bug where, if an invalid code for "loudness" is passed, it would hit an infinite loop. Thanks to Quik for reporting a bug in the ?game command which manifested as this infinite loop.
- Added a function to PersistantMap to get an entire section as a "Properties" object. This lets plugins retrieve all their properties at once.
- Changed GlobalSettings class to accomidate getting a list.
- Now forcing all remote protocol clients to use or accept authentication. That cleaned up the authentication code a lot since now it's not strewn about randomly.
Plugins:
- BNetLogin now confirms that the server you connect to belongs to Blizzard. If the server isn't Blizzard, it assumes there's a security problem and doesn't connect. This is, of course, optional -- if you are connecting to a BNetD or TestBNCS server, then set the "Verify server" option to false. This is the first time this has been done in a bot, to my knowledge Smiley
- Lots of changes to the RemoteControl Plugin and SwingGUI (the Remote Control parts of SwingGUI). Nothing worth listing here, mostly cleaning up code.
- Fixed ?game command (thanks to Quik)
Beta 19
New plugin!
- RemoteControl. This allows you to control the bot over a tcp/ip connection (ie, over the Internet). Right now it's buggy and somewhat tricky to use. I'll make another thread with instructions on how to get it running after.
Core updates:
- Changed some calls to JFrame.show() to JFrame.setVisible(true) to conform with new conventions
- Global Variables and Global Settings are now handled separately from the rest of the bot. They can be called by plugins by using functions in the javaop2_static project (which is new). This lets plugins interact with the bot without having to go through a specificly loaded bot
- Also moved things like getting a list of running bots, all bots, getting a bot by name, starting a bot, stopping a bot, etc. to javaop2_static
- Got rid of some "reverse compatibility" code I added a long time ago to get over the hump between beta12 and beta13.
- Changed the names of some functions in the PublicExposedFunctions classes so they aren't overloaded functions. This was to accomidate the RemoteControl.
- Added a "MiniBuffer" class to PublicExposedFunctions which is basically a way of calling functions/listening for function calls remotely. Used, of course, for the RemoteControl.
- Moved BigIntegerEx and FileTime classes to javaop2_pub so they can be used by plugins. They are basically library functions.
Plugin updates:
- Made updates to pretty much all plugins to accomidate the functions with changed names
- Totally re-organized login code. Grouped it logically (by passwording and versioning)
- Re-did the way games are loaded. Version byte, file location, etc. are now loaded from a configuration file which can be easily changed when Battle.net updates versions without ever recompiling.
- SECURITY UPDATE: Added validation for M[2] value which ensures that the server actually knows your password. It's a security feature that I should have included a long time ago.
- Rewrote large parts of the SwingGUI, which is now also used as the RemoteSwingGUI.
Website:
- Fixed link to
www.gnu.org on the introduction page
- Fixed the header for Ban/Kick commands, thanks to somebody whose name I forget for emailing me about that
Beta 18
- Added a plugin for ipban (commands are .ipban and .unipban).
- Aliases can have parameters
- Aliases can be used from the gui, or from other commands (like .loud)
- Aliases can have arguments:
%u = name of the person who used the alias
%v = bot version
%c = command used
%n = bot name
- Cyclic aliases (a -> b, b -> a) no longer cause an infinite loop
- Added lastwhisper command to BasicCommands plugin
- ?trigger requires flags
- "Command not found" message is now optional, default off -- can be changed in "Help" plugin
- CommandlineConfiguration can now configure the Default settings
- SID_NULL is sent out every 20 seconds. This can be disabled in the Ping plugin.
- Got rid of some debugging output for ?whoami command
Beta 17
Command Plugin
- Added a "Command" plugin. If you want to be able to use commands, command plugin MUST be enabled!!
- Triggers can be any number of characters (although 0 characters is annoying and stupid)
- You can set the bot to be default loud, loud-no-name, quiet, or silent. Silent is kinda dumb, though
- Added commands, .loud, .quiet, and .silent. They allow you to run a command loudly, quietly, or silently:
.loud whoami
.quiet find joe
- Added a .settrigger command
- It's now configurable if the trigger is required when whispering commands. If it's an ops bot, I recommend no trigger, but if it's a chat bot, I recommend requiting the trigger.
- When commands are whispered into the bot, he'll always whisper them back
- It is configurable if users are allowed to stack messages with semicolons. I haven't tried turning it off, but it should work.
- ?trigger or trigger can be whispered to the bot to get the trigger
"Filter" plugin
- Commands are filter, filterword, unfilter, unfilterword, and filters
- Users with flag i (configurable) are completly ignored
Core changes:
- Got rid of trigger and loud settings -- they're now in the Command Plugin
- Got rid of all the command processing stuff (that's all in Command Plugin), and added raiseEvent() to the public functions. raiseEvent() still checks if the user has access, however.
- Added LoudnessConstants, which can be used to send messages in the various formats
- Got rid of getTrigger()
- UserDB can now take "null" for a username -- null is the "local user" and has MU
- FileManagement now corrently handles a FileNotFound exception, so the program doesn't die if you don't have plugins loaded
Plugin Changes
- Modified many plugins to accept null users, and to send the "loudness" when a command is used
- ALL commands may now be used locally (From the SwingGUI) "/whoami, /find joe, /ban *, etc.)
- The swing gui will stay under a maximum size now (by default, when it reaches 10000 characters, it's chopped back to 9000)
- Got rid of the /clear command (I'll put it back if requested)
- .clearqueue now sends back, "Queue cleared"
- .say (with no parameters) no longer causes an exception
- .help now registered itself for userError callbacks, which means that if you screw up a command, you'll get "help" for it (that was actually a bug, it was all written and I forgot to enable it)
- Fixed the logging formatter to take an Object instead of a String
- Fixed up the priority in the user management plugin so they all match
- Version no longer says it out loud by default, ".loud version" for that
Beta 16
- Updated for Starcraft 1.12b (RCRS is already updated, so unless you explicitly use hashes, you're ok). Thanks to Warrior and AntiVirus[GtK] for helping me with this.
- Designation now uses /resign instead of rejoining the channel. Finally!
- Cleaned up (and fixed minor bugs) in the selecting default bots dialog.
- The graphical user database editor can now default to a user
- Fixed a couple small bugs in the user database editor
- Changed the LIGHTBLUE color to actually resemble light blue (and not violet)
- Added support for requesting/parsing profiles
- Added a right-click context menu to the channel list, allowing you to ban, ban-with-message, kick, kick-with-message, designate, op, edit (in database), and get profile (Thanks to Fyre for suggesting this)
- Changed the clan ranks so they indicate which level (in standard war3) they represent (thanks to Quik for bringing this up)
Beta 15
Core:
- "Reconnect" works now
- Added a "loud" option (to default configuration) which will cause the bot's messages to be sent back out loud, rather than as a whisper
- Can no longer load the same bot twice
- Fixed a bug that occurred when packets arrived in pieces, it wouldn't read the entire thing and stuff would break
- Plugins can now display plain (non-system) messages, in color
- Plugins can now bring up the configuration gui's
- Fixed up a couple clan packet codes
- Added email packet codes
- Moved ColorConstants class to JavaOp2_pub, rather than in the gui
Plugins:
- Updated Starcraft for 1.12 (RCRS was already updated, yesterday)
- ConsoleDisplay filters out color codes in displayed messages (not a noticable change)
- Totally re-did large parts of the swing gui. You can now configure bots through it, load from a list of bots, get help pages, connect, reconnect, disconnect, and reload instances.
Large functionality changes (+new plugins)
Anti-floodbot:
- SimpleEventParser now has some anti-floodbot functionality. If a user joins and leaves within a certain (configurable) time frame (200ms, by default), his messages won't be displayed, and nothing about him will be processed.
EmailRegister
- This new plugin lets you register your email accounts for Starcraft, Diablo2, and War3 accounts. Just fill in your email and check off "Register email".
- Can also request a password reset -- just check the checkbox and connect (I wouldn't recommend leaving it on, though, unless you want a lot of emails..)
ShowInvisibleUsers
- This new plugins lets you see invisible users in the channel. When you enter a channel, it'll reveal any hidden users
- Can also check channels periodically, but that'll cause annoying status update messages and rearrange the channel. But if you're really curious or paranoid, then have fun.
War3Clan
- Very basic clan functionality. Basically, displays if you're in a clan, if you're invited to a clan, and if you leave a clan. It can't actually do or initiate anything.
Beta 14
- Wrote CommandlineConfigure, which is a program for configuring bots from the commandline.
- Cleaned up the code for the file management stuff quite a bit, got rid of dozens of redundant lines
- Changed the .plugin files so they no longer take plugin version numbers (which I never intended). I also included a kludge in this version that'll remove " v?.?" from the end of each line in the .plugin file, which I'm going to remove in 15 or 16. It's just so you don't have to re-do your configuration files.
- Added InsaneJoey to the contributers page (it showed up in CVS's change log from 13->14, so why not include it here?)
Beta 13
- The flags to ban people outside the channel are now customizable (somebody please confirm it works -- thanks)
- SetupBots.jar doesn't lock up when you click on "Simple Event Processor". This was actually a couple things that came together in a bad way, but it's all good now!
Beta 12
- Added a "greeting" plugin, which takes care of idle
--> New commands are greet, setgreet, idle, setidle, idlecount
--> There are 2 forms of idle, count and time -- count will display the message after a certain amount of channel activity (60 actions, by default), and time will happen after a certain amount of time (60 seconds, by default). Check the configuration and online help for more info
--> Note that this plugin is 100% untested. A cookie to anybody who finds a bug.
- Got rid of a ton of stray System.out.println()'s, so it'll be less spammy when run from console
- Added a /clear command to the SwingGui
- Changed the condition for "do you want to save?" on setting forms. If you type in a server, and click somewhere else, it will then save. Stupid java doesn't recognize the text has changed till after it loses focus Sad
- Now displays time elapsed to complete CheckRevision
- Fixed a bug in SRP (War3 login) from beta11 that makes the War3 login moderately less secure (substantially more secure than BNLS, of course.. I just forgot to randomize the client key)
Beta 11
- Plugins can't be loaded more than once
- Stuff is sorted and uniqued now (like the list of plugins, list of bots, etc.)
- Output is locked unless you're logged in. Now you can't get ipbanned by sending a message too early, while logging in.
- Changed around some colors on the SwingGUI, so it looks sexier. Smiley
- Compiled a version history
Beta 10
- ?trigger command, which can be used by anybody but is a very low priority
- Bot will always treat itself as having S and only S
- Fixed auto-rejoin some more
Beta 9
- Designate command (also op)
- Auto-designate (flag E, by default)
- Fixed BB logging format
- Packet logging option
- Removed black background from the console output
- Added unban command (duh, can't believe I forgot it)
- /commands showing up in chat are optional, default off
- No longer sends 0-length messages from Swing gui
Beta 8
- Logging plugin
- Join/leave notifications made optional
- Auto-rejoin bug fixed
- SwingGui can fail to load, the bot is ok
Beta 7
- Re-did the plugin selection gui
- Auto-rejoin plugin
- Alias plugin
- Minor bug fixes
Beta 6
- Added pretty lag bars (drawn by me!)
- Added tooltips to the channel list
- Shrunk the lag/image columns on the channel list to make room for the name
- Added commands: join, rejoin, home, uptime, ping, where, say, disconnect, reco
nnect, close, and quit
- Other monitor bug fixes
Beta 5
- Fixed a problem with flags updates
- Minor bug fixes
Beta 4
- Supports TFT and LOD
- Settings are sorted alphabetically
- Supports RCRS
Beta 3
- Bug fixes, don't remember what
Beta 2
- Greatly updated gui
Beta 1
- Initial release