I am ski23, creator of the Tease AI Java personality Mischevious and contributor to Tease AI Java itself. I am a senior in Computer Science at Virginia Tech, and I have real world programming job experience. Any question you have about TAJUtils, I should be able to answer.
Introduction
TAJUtils are a series of 4 utils files that I wrote that will allow developers to quickly and easily create personalities and modules by reducing the amount of coding developers need to do themselves.
The 4 utils files in TAJUtils are:
- ChatUtils
- MediaUtils
- StrokingMethodUtils
- PersonalityUtils
Download
You will always be able to find these utils files in the main folder for Mischevious. However, you can find them individually here (right click the page and select "save as"):
ChatUtils
MediaUtils
StrokingMethodUtils
PersonalityUtils
Overview
Here I will go into an overview about what each of these utils files do:
ChatUtils:
ChatUtils is a Utility that allows for very customizable messages.
ChatUtils allows you to:
- send system messages with no sender or a specified sender
- easily send custom messages with whatever font, color, font size, bold, italics you wish
- send debug messages that can be seen in chat if the debug configuration is on. This is very helpful for debugging an issue.
- Throw error and warning messages
- Disabling responses from triggering inside of a response to getInput
MediaUtils provides a way to sort display and like/dislike media (currently only images)
MediaUtils allows you to sort your pictures into 4 types: Dislike, Normal, Like, Love. Disliked pictures are discarded. Pictures can be sorted into these folders and then later, you can display a picture from one of these folders.
You may be wondering the use for this. One good example is if the domme wants to build you up slow and starts by showing you images that you think are normal or ok, but then starts showing images that you have marked as liked and eventually images that you absolutely love. Within each of these folders, every image can also have tags associated to it. This part I built directly into TAJ itself though so you don't need this util file for tagging of pictures alone.
StrokingMethodUtils:
StrokingMethodUtils is a utility that provides the functionality for different methods of stroking other than just "stroking." If you choose to not include this file, Mischevious or any other personality that has PersonalityUtils will work as it did in the original TeaseAI with stroking cycles. However, StrokingMethodUtils will allow more diversity.
This utility will work as is. However, it is still a work in progress and there are many more features I will be adding to this utility.
PersonalityUtils:
PersonalityUtils is the largest of all of the Utilities in TAJUtils. This utility provides all of the functionality needed for a personality such as:
- A built in stroking and edging system with taunts that uses complex formulas to make sessions diverse
- A complex mood system that uses the domme's mood and apathy level to determine stroking/edging length and speed, orgasm chance, and (in the case of Mischevious) many other domme decisions
Important Details
When calling these utility files for the first time with run(), make sure to use the utility's corresponding setup method as well ex:
Code: Select all
run(chatutils.js);
setUpChat();
Here I will show how to use the utility methods in ChatUtils method by method.
(def) stands for a default parameter. These parameters do not need to be passed for the utility method to work.
Method Name: DMessage
Description: Sends a debug message that will appear if debug mode is enabled. Useful for debugging and finding errors.
Parameters: message: the debug message, (def)delay: the amount of time in seconds to wait after the message
Example(s):
Code: Select all
DMessage("Module start", 1);
Dmessage("Module End");
Description: Sends a custom message from the domme.
Parameters: message: the custom message, (def)delay: the amount of time in seconds to wait after the message, showTyping:whether or not the typing alert will appear
Example(s):
Code: Select all
CMessage("Hello %subname%");
CMessage("<c=lightgreen b fs=16>Hello sub"); -> sends a light green, bolded message with font size 16
Code: Select all
<x1 x2 x3>
Code: Select all
<>
Code: Select all
<c=lightgreen b fs=16>Hello<> sub
- Strikethrough: s
- Underline: u
- Italic: i
- Bold: b
- Font Size: fs = (font size)
- Font: f = (font name)
- Color: c = (color name)
Method Name: SMessage
Description: Sends a system message that will appear with no author or the specified author. Useful for sending system messages such as "%domname% has connected" or "%domname% is afk" or for sending messages as a glitter contact.
Parameters: message: the message, (def)delay: the amount of time in seconds to wait after the message, (def) sender: the person who will send the message 1= domme 2 = contact 1, 3 = contact 2, 4 = contact 3
Example(s):
Code: Select all
SMessage("%domname% is now afk", 1);
Smessage("Nice to meet you %subname%", 0 , 2); -> will be sent from contact 1
Description: Sends a waning message that will appear in the logs but won't appear in the chat unless debug is enabled.
Parameters: message: the message, (def)delay: the amount of time in seconds to wait after the message
Example(s):
Code: Select all
WMessage("This picture folder is empty. Trying another folder");
Description: Sends an error message that will show up in chat even if debug is disabled. Use this for fatal errors that will crash the personality.
Parameters: message: the message, (def)delay: the amount of time in seconds to wait after the message
Example(s):
Code: Select all
EMessage("Cannot find module to run. Aborting!");
Description: Works exactly the same as sendInput except, you can use custom messages with this method, and it sets the personality variable responsesDisabled to true. You can then use this in responses that you don't want to get triggered during an answer to question.
Parameters: message: the message, (def)delay: the amount of time in seconds to wait after the message
Example(s):
Code: Select all
var answer = getInput("<c=green>Do you like lemons?"); -> if there was a response that triggered on the word "yes",
and that response checked for the responsesDisabled flag,
then that response would not be triggered here if the user responded with "yes".