ISXOgre changes: OgreConsole
Posted: 20 Jun 2015, 19:52
I've been working on some changes lately, that have had a minor impact to a few people... Mostly by accident. These changes will be coming to everyone "in the near future". I just wanted to explain the changes that already slipped out. They are minor, so don't worry!
Some quick back ground information. Innerspace has, basically an autocomplete feature when you type into the console. For example, if you were trying to save keystrokes, you can type a few letters of the command, and it will find the first command that matches those letters and use it. For example, lets say you wanted to do an export. Most people would type "ogre export", and that is the most correct way. However, because of auto complete, you could actually type "ogr export" (notice the missing e). You could even drop a few more letters, "o export" actually worked, because "ogre" was the first available command Innerspace could find. This is NOT ideal, because guess what happens when a new command is created? The "o" may no longer find "ogre" as the first available option, which is what is happening now.
I created a new command, "oc" (for OgreConsole - more on this later). Now if you type "o export" it actually is trying to send the word "export" to the OgreConsole, which isn't finished being coded yet, and fails.
The "fix"? Is to type out the actual command you want, in this case, type "ogre export". (This is why it didn't impact very many people, because most people weren't aware/using Innerspace's autocomplete commands).
Anyways!
So what is this OgreConsole I'm working on? You may have seen me, or BJCasey, or anyone else mention 'OgreIRC' in the past. Other people mention the 'Tell window' or the 'Mini' window where tells go to. These all general do the same thing, but are all different code. Some work differently; OgreIRC you can flip open/closed with a keystroke, Tell Window doesn't even open until text goes in there. OgreIRC you can type into, including commands, the tell window you can't. Etc etc.
OgreConsole is my way to simplify the entire thing. Everyone will be using this new OgreConsole window, and it will have the functionality of BOTH windows.
I'm also planning on changing how MCP works to incorporate it into the OgreConsole. How OgreIRC works (OgreConsole is largely based on OgreIRC), is you give it commands, such as: !command -letsgo all. Which is the exact same as the MCP command "Letsgo" with a parameter of "all".
The problem is, to have both of these, I need to have different code for the MCP, and different code for OgreIRC. It also means they function differently. One would allow default (empty) parameters, while the other wouldn't. This also meant if I forgot, MCP could have options that didn't exist for OgreIRC users, and vice versa.
I'm planning (I'm getting ahead of myself here, as I haven't started coding this at all yet) to change all MCP buttons, to simply send OgreConsole commands instead. This means there would only be ONE spot to code, and everyone would have access to all the commands. (This makes scripters lives easier that want to access Ogrebot commands also, since they will all be in the same spot).
OgreConsole will be generic, with a plugin for each game. This means it will function identically for EQ1, as it will for EQ2. Nice side bonus for anyone who plays both games. Also means I only have to update it once for both games, so it saves time for me.
I don't have an ETA on this project. As right now I still don't have a lot of time for another few weeks, and because a lot of this information is sent via the uplink, it's pretty easy to hit major problems that take time to fix.
Some quick back ground information. Innerspace has, basically an autocomplete feature when you type into the console. For example, if you were trying to save keystrokes, you can type a few letters of the command, and it will find the first command that matches those letters and use it. For example, lets say you wanted to do an export. Most people would type "ogre export", and that is the most correct way. However, because of auto complete, you could actually type "ogr export" (notice the missing e). You could even drop a few more letters, "o export" actually worked, because "ogre" was the first available command Innerspace could find. This is NOT ideal, because guess what happens when a new command is created? The "o" may no longer find "ogre" as the first available option, which is what is happening now.
I created a new command, "oc" (for OgreConsole - more on this later). Now if you type "o export" it actually is trying to send the word "export" to the OgreConsole, which isn't finished being coded yet, and fails.
The "fix"? Is to type out the actual command you want, in this case, type "ogre export". (This is why it didn't impact very many people, because most people weren't aware/using Innerspace's autocomplete commands).
Anyways!
So what is this OgreConsole I'm working on? You may have seen me, or BJCasey, or anyone else mention 'OgreIRC' in the past. Other people mention the 'Tell window' or the 'Mini' window where tells go to. These all general do the same thing, but are all different code. Some work differently; OgreIRC you can flip open/closed with a keystroke, Tell Window doesn't even open until text goes in there. OgreIRC you can type into, including commands, the tell window you can't. Etc etc.
OgreConsole is my way to simplify the entire thing. Everyone will be using this new OgreConsole window, and it will have the functionality of BOTH windows.
I'm also planning on changing how MCP works to incorporate it into the OgreConsole. How OgreIRC works (OgreConsole is largely based on OgreIRC), is you give it commands, such as: !command -letsgo all. Which is the exact same as the MCP command "Letsgo" with a parameter of "all".
The problem is, to have both of these, I need to have different code for the MCP, and different code for OgreIRC. It also means they function differently. One would allow default (empty) parameters, while the other wouldn't. This also meant if I forgot, MCP could have options that didn't exist for OgreIRC users, and vice versa.
I'm planning (I'm getting ahead of myself here, as I haven't started coding this at all yet) to change all MCP buttons, to simply send OgreConsole commands instead. This means there would only be ONE spot to code, and everyone would have access to all the commands. (This makes scripters lives easier that want to access Ogrebot commands also, since they will all be in the same spot).
OgreConsole will be generic, with a plugin for each game. This means it will function identically for EQ1, as it will for EQ2. Nice side bonus for anyone who plays both games. Also means I only have to update it once for both games, so it saves time for me.
I don't have an ETA on this project. As right now I still don't have a lot of time for another few weeks, and because a lot of this information is sent via the uplink, it's pretty easy to hit major problems that take time to fix.