TAIPEJ - an IDE for TeaseAI v1.3.0

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI

Post by N3R0 »

markus wrote: Mon Mar 28, 2022 7:08 pm
N3R0 wrote: Sun Mar 27, 2022 3:16 pm
You are right, that the chances of the current image being exactly what the scripter wants, are very low. But if @ImageTag() or @DommeTag() can't find any matches for that tag, the original behaviour of @Tag... means the scripter can still respond to the current image (if that has been tagged with anything). With the new behaviour, scripters are forced to use general responses in that case.
If you follow the Awakening announcement thread you'll see that I am very open minded for suggestions, ideas and wishes from scripters (also from users of course), ... I'll try to do my best to support any scripter and their feature- or functionality- wishes.
In the existing personalities I only found very rare occations where this was used, IIRC only one file with a few lines (correct me if I'm wrong!).
My personality collection is pretty outdated (I still have House of Tease 3.1.2, current version is 8.X :lol: ), so don't know how often people use this. I can only imagine that most scripters put this close to the bottom of their to-do lists, because (from what I've seen so far) most users are either too lazy or don't know how to properly tag their images.
markus wrote: Mon Mar 28, 2022 7:08 pm That was when I thought that most probably the combination of that such a tagged pic is on the screen AND such a filter-line is (randomly!) drawn from such a file goes close to zero.
At this point of development I try to focus on what is really needed to get this thing working for existing personalities and not on theoretical possibilities which maybe never be used.
So my question is:
Do you actually plan to use these filters for your personality?
Actually, the probability is 100%. Because they are filters!
(Note to all readers: the tags used in the following code are made-up, they don't [necessarily] exist for real ! They are supposed to represent domme tags.)

If the scripter wants to tell a "story", where it is important to show a particular kind of image, they use @DommeTag(...) to show the image and make a comment about it.

But if the scripter only wants to make things more immersive (which is my plan for my personality) they would use @Tag...

If you have the following line somewhere, e.g. in a module:

Code: Select all

I can see you staring at me #PetName @FollowUp(#CommentImage)
The #CommentImage.txt could look like this:

Example 1:

Code: Select all

Do you like what you see? #Grin
Do you like the color of my toe nails?
Do you prefer shaven or hairy armpits?
Example 2:

Code: Select all

Do you like what you see? #Grin
@TagToes Do you like the color of my toe nails?
@TagArmpit Do you prefer shaven or hairy armpits?
In example 1, you are right. It is very unlikely that you can actually see her toes, if that line is randomly selected. Especially if there are a lot of lines in that keyword file.

But in example 2, the chance of the image matching the text is 100%, because every line that refers to a tag that is missing from the current image, will be filtered out.
If the image has no tags at all or if none of the tags of the current image is listed in #CommentImage, then the general response (the first line, in this example) will be used. Using @Tag this way is the whole idea of why 1885 added @Tags to TAI in the first place!
markus wrote: Mon Mar 28, 2022 7:08 pm It wouldn't be that much of a problem to implement, filters for videos are already working (@VideoHardcore and so on) ... these make much more sense IMHO.
If you (or any other scripter) want to have this implemented, it will become a point on my ToDo-list, but, ... and that's for sure, with different names, so that the filters and commands don't have the same name anymore (this is also something on my ToDo-List, to give alternatives for such cases in which a command and a filter have the same name so future scripts could be written and readed a bit more understandable).
This does make sense for things like @BadMood vs @BadMood(), but I don't think it is a good idea to rename the @Tags.
All those commands, filters etc. are already confusing enough for new scripters. The more differences there are between the different editions of TAI, the more confusing it becomes, IMO.

I hope this helps to understand my POV.
Have a nice day.

And to anyone who reads this today: don't let people fool you tomorrow! ;-)
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.0.0

Post by N3R0 »

Hello scripters,

for the (probably) last time I just updated the manual attached to the first post.
From now on the attached manual will only be updated, if anything changes about the way you install or launch TAIPEJ. Because for everything else, you should refer to the built-in version of the manual. (the version I just uploaded is identical to the one built into version 1.0 of the program)

Here's what I changed:
Spoiler: show
  • small design changes to improve readability
  • added 2 new sections: "The example generator" and "Search results"
  • added the sub-section "External changes to a personality" to the "General information" section
  • replaced the vague statement about RAM in the "System requirements" with "2 GB or more"
  • added more content and some foot notes to the comparison table in "Which option should I use?"
  • made the installation instructions a little more elaborate and easier to read
  • added the sub-section "Splash screen" to the "Launching TAIPEJ" section
  • added content to the "Troubleshooting" sub-section
  • added information about the context menu and navigation via keyboard to the "The file trees" section
  • added a table to the "The file trees" section, that shows what the default colors mean
  • added information to the "The code area" section, about hovering over commands, the "Quick Fixes" and the reasons why you might not see any syntax highlighting
  • added note to the "The table of problems" section, that you can double click its entries to open the corresponding file
  • updated the list of CSS classes in the "Modifying the look of TAIPEJ" section
  • added some system shortcuts, that I forgot to list before
  • added F6 and Shift + F6 shortcuts
  • added lots of "shortcuts specific to TeaseAI scripts"
  • added a TLDR to the long "known issue"
  • I had to add a new "known issue" :(


Announcement

Because I probably won't be able to work on this project for the next couple of weeks, I decided to upload the first release now, instead of letting you wait.
It's still missing the command guide (but you can always use the one built into TeaseAI, which is better than nothing) and it can't detect as many script problems as I would like. (right now it can detect 49 different types of problems)

But everything else, that was planned to be part of the first release (and more) is implemented. You can find the download links and additional information in the updated first post.

Happy scripting!
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 795
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: TAIPEJ - an IDE for TeaseAI v1.0.0

Post by GodDragon »

That is a great tool! I once wrote the TAI syntax checker, but this is far superior. I always wanted to write an addition/addon for notepad++, but this works as well.
theredreaper
Explorer
Explorer
Posts: 43
Joined: Wed Jul 27, 2011 11:53 pm
Gender: Male
Sexual Orientation: Open to new ideas!
I am a: Submissive
Dom/me(s): I am currently owned.
Location: You wouldn't believe me if I told you.

Re: TAIPEJ - an IDE for TeaseAI v1.0.0

Post by theredreaper »

Very excited for this release! I had been considering starting a similar project myself.

One thing I've noticed so far, I can't seem to make use of the search and replace function? The "replace with" box just stays greyed out and unavailable to type into, unless I've missed something?

Edit: Just had a crash.
Spoiler: show
BUG REPORT
version 1.0.0
Using your custom JRE
I was looking at an existing personality, just going through it and fixing all the errors found by TAIPEJ. One line it brought my attention to had a "useless @NullRespsonse" error. The line was:
@NullResponse #EdgeMultipleRandom1_3Hold
I chose to simply delete the @NullResponse from the line, as that fix makes the most sense here. Upon backspacing the last character, the program crashed with an error message relating to "empty argument" and citing something along the lines of Style Span length cannot be negative. I'm sorry for not copy/pasting the actual error message. I tried, but as soon as I clicked on the background terminal window containing the full stack trace, it crashed too. :/
Another crash:
Spoiler: show
BUG REPORT
version 1.0.0
Using your custom JRE
Right-clicking on some highlighted text and selecting "Replace all in all scripts with: <i>somestring</i>" results in a crash and list index out of range error. This one has proven to be repeatable so far.
Stack trace:
empty argument: ARGUMENT: []
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at com.cs.general.base.model.Array.last(Array.java:41)
at net.taipej.problems.quickFix.QuickFix.replaceAll(QuickFix.java:104)
at net.taipej.problems.quickFix.DeprecatedAll.execute(DeprecatedAll.java:23)
at net.taipej.view.CodeArea.lambda$1(CodeArea.java:71)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.controls/javafx.scene.control.MenuItem.fire(MenuItem.java:465)
at javafx.controls/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1380)
at javafx.controls/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(ContextMenuContent.java:1333)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Another crash:
Spoiler: show
BUG REPORT
version 1.0.0
Using your custom JRE
Not sure what happened with this one. Double clicked an error message from the list in the bottom pane referring to an "unknown user keyword". As soon as I clicked on the text editor pane, the program crashed.
Stack Trace:

java.lang.IndexOutOfBoundsException: 33 is no valid offset in [FUNCTIONAL_BRACKET: [, ARGUMENT: [SYSTEM_KEYWORD: #DateDifference[FUNCTIONAL_BRACKET: (, ARGUMENT: [USER_KEYWORD: #LastOrgasm[]], FUNCTIONAL_COMMA, ARGUMENT: [DommeText: days], FUNCTIONAL_BRACKET: )]], FUNCTIONAL_BRACKET: ]]
at net.taipej.controller.FilesUtility.getTokenForChar(FilesUtility.java:302)
at net.taipej.controller.FilesUtility.getTokenForChar(FilesUtility.java:298)
at net.taipej.controller.FilesUtility.getTokenForPosition(FilesUtility.java:308)
at net.taipej.view.CodeTabPane.lambda$2(CodeTabPane.java:346)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at org.fxmisc.richtext.GenericStyledArea.lambda$new$16(GenericStyledArea.java:774)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.MappedStream.lambda$observeInputs$0(MappedStream.java:25)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.EventStream$1.lambda$observeInputs$0(EventStream.java:423)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.reactfx.FlatMapOptStream.lambda$observeInputs$0(FlatMapStream.java:49)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.reactfx.FlatMapOptStream.lambda$observeInputs$0(FlatMapStream.java:49)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.DistinctStream.lambda$observeInputs$0(DistinctStream.java:23)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.EventStream$1.lambda$observeInputs$0(EventStream.java:423)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.MappedStream.lambda$observeInputs$0(MappedStream.java:25)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.FilterStream.lambda$observeInputs$0(FilterStream.java:20)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.SuccessionReducingStream.handleTimeout(SuccessionReducingStream.java:73)
at org.reactfx.util.FxTimer.lambda$restart$0(FxTimer.java:89)
at javafx.graphics/com.sun.scenario.animation.shared.TimelineClipCore.visitKeyFrame(TimelineClipCore.java:239)
at javafx.graphics/com.sun.scenario.animation.shared.TimelineClipCore.playTo(TimelineClipCore.java:180)
at javafx.graphics/javafx.animation.Timeline.doPlayTo(Timeline.java:177)
at javafx.graphics/javafx.animation.AnimationAccessorImpl.playTo(AnimationAccessorImpl.java:39)
at javafx.graphics/com.sun.scenario.animation.shared.SingleLoopClipEnvelope.timePulse(SingleLoopClipEnvelope.java:99)
at javafx.graphics/javafx.animation.Animation.doTimePulse(Animation.java:1101)
at javafx.graphics/javafx.animation.Animation$1.lambda$timePulse$0(Animation.java:186)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/javafx.animation.Animation$1.timePulse(Animation.java:185)
at javafx.graphics/com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:344)
at javafx.graphics/com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:515)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Tried to call Alert.showAndWait() during layout processing. Falling back to Swing dialogs...
Upon re-opening the program I noted that I had lost all of the changes made in my previous session. Maybe this is just a result of me being used to VSCode and its auto-save feature that saves every file you touch any time you make a change, but I found this surprising, as I had already touched and updated probably 30+ files before this crash. If it were me, (and it's obviously not, and I'm sure you have your own priorities with this project) I would consider the implementation of an auto-save feature high priority.




I will continue adding to this post if/when I come across any other issues. Overall, I'm very impressed. The UI is intuitive and super clean, and I'm very excited to see this project develop. If you're looking for any assistance with bugfixes/feature implementation, send me a PM, I can probably spare some time to contribute.
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.0.0

Post by N3R0 »

Hello theredreaper,

thank you for taking the time to write these bug reports and the other feedback. I hope, TAIPEJ proved to be useful to you, despite the crashes. I've already encountered the second and the third crash myself (under different circumstances) and I thought I had fixed them for good, but apparently there are still scenarios where they can occur. I'm sorry! :-/
theredreaper wrote: Tue Apr 26, 2022 4:49 am One thing I've noticed so far, I can't seem to make use of the search and replace function? The "replace with" box just stays greyed out and unavailable to type into, unless I've missed something?
Oops, I think I forgot to mention that in the manual. "Search and replace" is not yet available, if "case sensitive" and "use regular expression" are both off at the same time. If you enable one (or both) of them, it should work. Sorry.

Edit: Actually, the above statement applies to "search this file", which incorrectly just said "functionality not implemented". The search form can now be used. The reason "replace with" is greyed out in the "search in all files" form is, that this feature has not yet been implemented. Sorry for the confusion.

theredreaper wrote: Tue Apr 26, 2022 4:49 am Edit: Just had a crash.
Spoiler: show
BUG REPORT
version 1.0.0
Using your custom JRE
I was looking at an existing personality, just going through it and fixing all the errors found by TAIPEJ. One line it brought my attention to had a "useless @NullRespsonse" error. The line was:
@NullResponse #EdgeMultipleRandom1_3Hold
I chose to simply delete the @NullResponse from the line, as that fix makes the most sense here. Upon backspacing the last character, the program crashed with an error message relating to "empty argument" and citing something along the lines of Style Span length cannot be negative. I'm sorry for not copy/pasting the actual error message. I tried, but as soon as I clicked on the background terminal window containing the full stack trace, it crashed too. :/
Well, that's weird. Did you move the mouse while pressing backspace?
Edit: Never mind. I confused the first and the third bug. This one has nothing to do with the mouse.
The actual bug is still there, but you will be glad to hear, that it no longer crashes, if this bug occurs. Now the script that triggered the bug will be displayed without syntax highlighting to prevent the crash.


theredreaper wrote: Tue Apr 26, 2022 4:49 am Another crash:
Spoiler: show
BUG REPORT
version 1.0.0
Using your custom JRE
Right-clicking on some highlighted text and selecting "Replace all in all scripts with: <i>somestring</i>" results in a crash and list index out of range error. This one has proven to be repeatable so far.
Stack trace:
empty argument: ARGUMENT: []
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at com.cs.general.base.model.Array.last(Array.java:41)
at net.taipej.problems.quickFix.QuickFix.replaceAll(QuickFix.java:104)
at net.taipej.problems.quickFix.DeprecatedAll.execute(DeprecatedAll.java:23)
at net.taipej.view.CodeArea.lambda$1(CodeArea.java:71)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.controls/javafx.scene.control.MenuItem.fire(MenuItem.java:465)
at javafx.controls/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1380)
at javafx.controls/com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$12(ContextMenuContent.java:1333)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Do you remember which command / filter you were trying to replace?
Edit: Never mind. It turned out to be a general problem (i.e. not related to a particular replacement). I fixed it.


On a side note:
theredreaper wrote: Tue Apr 26, 2022 4:49 am Right-clicking on some highlighted text and selecting...
What do you mean by "highlighted"? That TAIPEJ identified a problem or that you marked it? In case of the latter: note that it is not necessary to mark text in order to apply quick fixes.



theredreaper wrote: Tue Apr 26, 2022 4:49 am Another crash:
Spoiler: show
BUG REPORT
version 1.0.0
Using your custom JRE
Not sure what happened with this one. Double clicked an error message from the list in the bottom pane referring to an "unknown user keyword". As soon as I clicked on the text editor pane, the program crashed.
Stack Trace:

java.lang.IndexOutOfBoundsException: 33 is no valid offset in [FUNCTIONAL_BRACKET: [, ARGUMENT: [SYSTEM_KEYWORD: #DateDifference[FUNCTIONAL_BRACKET: (, ARGUMENT: [USER_KEYWORD: #LastOrgasm[]], FUNCTIONAL_COMMA, ARGUMENT: [DommeText: days], FUNCTIONAL_BRACKET: )]], FUNCTIONAL_BRACKET: ]]
at net.taipej.controller.FilesUtility.getTokenForChar(FilesUtility.java:302)
at net.taipej.controller.FilesUtility.getTokenForChar(FilesUtility.java:298)
at net.taipej.controller.FilesUtility.getTokenForPosition(FilesUtility.java:308)
at net.taipej.view.CodeTabPane.lambda$2(CodeTabPane.java:346)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at org.fxmisc.richtext.GenericStyledArea.lambda$new$16(GenericStyledArea.java:774)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.MappedStream.lambda$observeInputs$0(MappedStream.java:25)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.EventStream$1.lambda$observeInputs$0(EventStream.java:423)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.reactfx.FlatMapOptStream.lambda$observeInputs$0(FlatMapStream.java:49)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.reactfx.FlatMapOptStream.lambda$observeInputs$0(FlatMapStream.java:49)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.DistinctStream.lambda$observeInputs$0(DistinctStream.java:23)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.EventStream$1.lambda$observeInputs$0(EventStream.java:423)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.MappedStream.lambda$observeInputs$0(MappedStream.java:25)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.FilterStream.lambda$observeInputs$0(FilterStream.java:20)
at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
at org.reactfx.SuccessionReducingStream.handleTimeout(SuccessionReducingStream.java:73)
at org.reactfx.util.FxTimer.lambda$restart$0(FxTimer.java:89)
at javafx.graphics/com.sun.scenario.animation.shared.TimelineClipCore.visitKeyFrame(TimelineClipCore.java:239)
at javafx.graphics/com.sun.scenario.animation.shared.TimelineClipCore.playTo(TimelineClipCore.java:180)
at javafx.graphics/javafx.animation.Timeline.doPlayTo(Timeline.java:177)
at javafx.graphics/javafx.animation.AnimationAccessorImpl.playTo(AnimationAccessorImpl.java:39)
at javafx.graphics/com.sun.scenario.animation.shared.SingleLoopClipEnvelope.timePulse(SingleLoopClipEnvelope.java:99)
at javafx.graphics/javafx.animation.Animation.doTimePulse(Animation.java:1101)
at javafx.graphics/javafx.animation.Animation$1.lambda$timePulse$0(Animation.java:186)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/javafx.animation.Animation$1.timePulse(Animation.java:185)
at javafx.graphics/com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:344)
at javafx.graphics/com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:267)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:515)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:831)
Tried to call Alert.showAndWait() during layout processing. Falling back to Swing dialogs...
Hmm... the text in the error message looks incomplete (that's my fault, not yours).
Could you post the code where the error occurred? (just that one line is enough)
Edit: I don't need the code. I was able to reproduce the bug with the info I had. The bug is now fixed. And while fixing this one, I found another one (not a crash, just a small bug) that I fixed as well.
theredreaper wrote: Tue Apr 26, 2022 4:49 am Upon re-opening the program I noted that I had lost all of the changes made in my previous session. Maybe this is just a result of me being used to VSCode and its auto-save feature that saves every file you touch any time you make a change, but I found this surprising, as I had already touched and updated probably 30+ files before this crash. If it were me, (and it's obviously not, and I'm sure you have your own priorities with this project) I would consider the implementation of an auto-save feature high priority.
I'm very sorry that you lost all your changes. Yes, there is no auto-save feature at the moment. Mostly, because I personally hate this kind of auto-save. It's fine, if it's done the OpenOffice-way (not sure how VS Code does it, I've only used that for a week a couple years ago), but I can't stand auto-save if it's done the IntelliJ-way.
Unfortunately, the OpenOffice-way requires much more coding than simply triggering a save every now and then.

I might add that in a future release, but if I do, it will either be the OpenOffice way or it will be turned off by default.

theredreaper wrote: Tue Apr 26, 2022 4:49 am I will continue adding to this post if/when I come across any other issues.
Thanks.
theredreaper wrote: Tue Apr 26, 2022 4:49 am Overall, I'm very impressed. The UI is intuitive and super clean, and I'm very excited to see this project develop.
Thank you very much!
theredreaper wrote: Tue Apr 26, 2022 4:49 am If you're looking for any assistance with bugfixes/feature implementation, send me a PM, I can probably spare some time to contribute.
Thanks for the offer. Does that mean you already have Java experience?


I should be able to spare some time for fixing those bugs this weekend. Hopefully I will be able to actually fix all 3 of them (provided I hear back from you about number 3).

Have a nice day.
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
theredreaper
Explorer
Explorer
Posts: 43
Joined: Wed Jul 27, 2011 11:53 pm
Gender: Male
Sexual Orientation: Open to new ideas!
I am a: Submissive
Dom/me(s): I am currently owned.
Location: You wouldn't believe me if I told you.

Re: TAIPEJ - an IDE for TeaseAI v1.1.0

Post by theredreaper »

Sorry I didn't get back to you sooner on this, I'm glad you were able to tackle all of these problems without any further input from me, though.

Yes, I do already have Java experience, and incidentally, I am freelancer in the industry. I have carved out a bit of a niche for myself as a "refactoring engineer" maybe you would call it. I often get called in to do code reviews and large scope "first pass" refactoring on various projects where teams find themselves either out of their depth, lacking senior leadership or just bogged down in inefficient code that has had too many people working on it. So I spend just about all of every day of my life looking at other people's code, trying to get in their head to figure out precisely what they were trying to accomplish, and in many cases, producing more efficient, more concise or more performant code that accomplishes the same goal. Most of the time it feels a lot like doing open heart surgery on someone's baby while they watch, judging by the reactions I usually encounter whenever I'm introduced to a new team, lol. But 21 years in the business and no one has fired me yet. Java is not necessarily my specialty, but I feel I'm proficient enough to be of use.

My availability is not quite what it was when I made this post, as in the meantime I have been taken up on an offer to help with an open-source project that interests me, but some assistance is *usually* better than no assistance. Send me a pm if there's anything I can do. I will definitely be grabbing your latest release and doing more testing. Doing a personality for good old TeaseAI is something I've always wanted to do, and with an actual IDE available, I just might be able to carve out the time to do it.
I'm very sorry that you lost all your changes. Yes, there is no auto-save feature at the moment. Mostly, because I personally hate this kind of auto-save. It's fine, if it's done the OpenOffice-way (not sure how VS Code does it, I've only used that for a week a couple years ago), but I can't stand auto-save if it's done the IntelliJ-way.
Unfortunately, the OpenOffice-way requires much more coding than simply triggering a save every now and then.
Recent versions of VS Code actually maintain a file history, I'm not sure if it's a cache of a specific size or if it's just tracking x number of revisions in the past, but to date, I have always found that if I change my mind about some changes I have made, I always have plenty of revisions in the history that I can roll back more than far enough to revert whatever stupid thing I just wasted a bunch of time producing. I think they're just stored in memory while the program is open, with the most recent revision being written to disk. I can see why you might not be too keen on an auto-save, but I think VS Code's implementation avoids most of the potential pitfalls. It's good practice to be using a version control system like git anyway, so reverting to the most recent commit should always be an option. But the feature suggestion is just one opinion coming from one user. You could just as easily flip the argument on me and say that touching that many files without saving the state of the project into something like a git commit was a bad idea anyway, lol.
theredreaper
Explorer
Explorer
Posts: 43
Joined: Wed Jul 27, 2011 11:53 pm
Gender: Male
Sexual Orientation: Open to new ideas!
I am a: Submissive
Dom/me(s): I am currently owned.
Location: You wouldn't believe me if I told you.

Re: TAIPEJ - an IDE for TeaseAI v1.1.0

Post by theredreaper »

Second of all, I thought "TAIPEJ" would fulfill that purpose, as it is pronounced exactly (and spelled almost) like a more-or-less well-known real life city ...
When I read it, I tend to pronounce it something like "Type-Edge" in my head, which makes perfect sense to me, because Typing is what you're doing a lot of when you're producing a script, and Edging is what you're doing a lot of when you're "consuming" a script! :lol:

I don't know if that was intentional but it seemed fairly well-suited to me!

Feature Suggestion:
Add the capability to update the location of the TeaseAI directory to the interface somewhere. I actually have two different versions installed, at different patch levels because it seems to me that a fork was effectively created when the community patch and the fury patch were both introduced. At least, some scripts I have work in one version and not the other, and trying to combine them via any number of methods seems to always break more than it fixes, so I gave up on trying a long time ago. Unless I've overlooked it somewhere, I'm not seeing an option in the menu structure anywhere to update the directory that the IDE looks for TeaseAI in, so I assume I'll be looking for some sort of config file to work around the problem in the meantime.
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.1.0

Post by N3R0 »

Hey theredreaper,

glad you're back.

About the auto-save thing: Whether or not anyone uses Git or a similar system is up to them. But since there already are well-working systems of that kind, I won't implement anything similar (to VS Code) in TAIPEJ. No need to "re-invent the squared wheel". ;-)
theredreaper wrote: Sat Jun 18, 2022 8:04 pm
Second of all, I thought "TAIPEJ" would fulfill that purpose, as it is pronounced exactly (and spelled almost) like a more-or-less well-known real life city ...
When I read it, I tend to pronounce it something like "Type-Edge" in my head, which makes perfect sense to me, because Typing is what you're doing a lot of when you're producing a script, and Edging is what you're doing a lot of when you're "consuming" a script! :lol:
I don't know if that was intentional but it seemed fairly well-suited to me!
:lol: No, that was not intentional. This pronounciation hasn't even crossed my mind. That's an interesting interpretation. :-D

theredreaper wrote: Sat Jun 18, 2022 8:04 pm Feature Suggestion:
Add the capability to update the location of the TeaseAI directory to the interface somewhere. I actually have two different versions installed, at different patch levels because it seems to me that a fork was effectively created when the community patch and the fury patch were both introduced. At least, some scripts I have work in one version and not the other, and trying to combine them via any number of methods seems to always break more than it fixes, so I gave up on trying a long time ago. Unless I've overlooked it somewhere, I'm not seeing an option in the menu structure anywhere to update the directory that the IDE looks for TeaseAI in, so I assume I'll be looking for some sort of config file to work around the problem in the meantime.
No need to mess with config files.
  1. close TAIPEJ, if it's running
  2. rename the currently selected TAI installation folder.
  3. (re-)start TAIPEJ -> it will ask you for a TAI folder again
  4. select the other TAI installation
  5. undo the rename from step 2 (important, since starting TAI with a changed path will make you lose some of your settings, because of how TAI handles its own preferences)

I already have this feature on my to-do list. But given how few personalities there are, I wasn't expecting, that there's anyone who actively develops personalities for more than one TAI edition.
I'll increase the priority of this feature.

I don't know when the next version will be available, though, because I'm currently taking CPD lessons and I have 6 more weeks to go. My current dev build already has a working command guide (it's just an interactive list at this point, not a real guide).
Hopefully it won't take too long until the next version is ready for release.

Have fun with version 1.1.0 'til then!
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.2.0

Post by N3R0 »

Hello Milovana!

I'm very sorry for the long wait, but real life wasn't easy since my last post in this forum.

In case anyone's interested, here are the sad details:
Spoiler: show
A good friend of mine suddenly passed away. :wavecry:
A few months later I was forced to quit my job, but couldn't find a new one.
Shortly after that life decided to through me 2 more curve balls, which would take too long to explain.
Some time later my favourite grandma lost the battle against dementia :rip:
And within a year her brother and her husband (my only grandpa) followed her to heaven (both at the proud age of 90 :\'-().

And to top it all off another friend of mine died, because of the constantly growing list of illnesses he suffered from, just 2 weeks before Xmas last year.
However, the grief is over and I managed to find a new job (which most of the time I enjoy more than the old one). I also dealt with the other 2 issues ... more or less.

Version 1.2.0 is here!
So I finally managed to muster the brain power to squash a nasty bug in one of TAIPEJ's new features. And after some polishing I now finally uploaded a new version! I''l start working on the next update on saturday. Hopefully the next release will be ready this November.

Until then, I could use a little help: The Sweet Patch mentions that it is based on version 56.0 of TAI, but there is no reference to that anywhere else. Does anyone know where I can find a changelog for that? Because without that the support for Sweet Patch will be incomplete (once I actually manage to tackle that challenge, that is).

I updated the download link in the first post and also posted the changelog there.


I hope you like the new features. Sorry again for my long abscence.
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 863
Joined: Tue Nov 18, 2008 11:09 pm

Re: TAIPEJ - an IDE for TeaseAI v1.2.0

Post by markus »

Life's a bitch, in all it's meanings, that said, nice to see you're back.


Once I get back to scripting, I have the feeling this will come in handy very much, will give it a deeper dive then.
But for now, one problem, 2 suggestions.

First, I must mention I am very careful when it comes to downloads, some maybe would say too careful, but is there such a thing like too careful?
Anyway, I want to try it, suggestions come to my mind:
- Short install notes for the most easy way (custom JRE) in the first post.
- Manual addtionally as textfile, html's maybe could do bad things.

Problem:
As careful as I am I check every bat file before executing in my texteditor, here I get this from the start.bat:

Code: Select all

挦獬਍敀档景൦椊⁦硥獩⁴樢敲戯湩樯癡⹡硥≥⠠਍∉牪⽥楢⽮慪慶•堭㩘楍䡮慥䙰敲剥瑡潩ㄽ‰堭㩘慍䡸慥䙰敲剥瑡潩㌽‰猭汰獡㩨灳慬桳朮晩帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳慪慶硦献散敮琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦献散敮琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦朮潥㵭楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳慪慶硦献散敮琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦献散敮琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦朮潥㵭䱁ⵌ乕䅎䕍⁄൞ⴊ慪⁲䅔偉䩅爮晪਍瀉畡敳਍攉楸⁴䈯〠਍ഩഊ椊⁦┢䅊䅖㘱∥㴠‽┢䅊䅖㘱╞•നऊ捥潨吠敨攠癮物湯敭瑮瘠牡慩汢⁥┥䅊䅖㘱┥椠⁳潮⁴敳⹴䄠潢瑲湩⹧⸮਍瀉畡敳਍攉楸⁴䈯㈠਍ഩ椊⁦┢䙊ㅘ┱•㴽∠䨥塆ㄱ╞•നऊ捥潨吠敨攠癮物湯敭瑮瘠牡慩汢⁥┥䙊ㅘ┱‥獩渠瑯猠瑥‮扁牯楴杮⸮മऊ慰獵൥ऊ硥瑩⼠⁂ള⤊਍晩渠瑯攠楸瑳∠䨥噁ㅁ┶扜湩橜癡⹡硥≥⠠਍攉档桔⁥楦敬∠䨥噁ㅁ┶扜湩橜癡⹡硥≥搠敯⁳潮⁴硥獩⹴䌠敨正琠敨瘠污敵漠⁦┥䅊䅖㘱┥മऊ慰獵൥ऊ硥瑩⼠⁂ഴ⤊਍晩渠瑯攠楸瑳∠䨥塆ㄱ尥楢屮•നऊ捥潨吠敨映汯敤⁲┢䙊ㅘ┱扜湩≜搠敯⁳潮⁴硥獩⹴䌠敨正琠敨瘠污敵漠⁦┥䙊ㅘ┱⸥਍瀉畡敳਍攉楸⁴䈯㔠਍ഩഊ∊䨥噁ㅁ┶扜湩橜癡⹡硥≥ⴠ橄癡⹡楬牢牡⹹慰桴∽倥呁╈┻䙊ㅘ┱扜湩•൞ⴊ塘䴺湩效灡牆敥慒楴㵯〱ⴠ塘䴺硡效灡牆敥慒楴㵯〳ⴠ灳慬桳猺汰獡⹨楧⁦൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣樯癡晡⹸捳湥⹥整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸捳湥⹥整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸敧浯爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣樯癡晡⹸捳湥⹥整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸捳湥⹥整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸敧浯䄽䱌唭乎䵁䑅帠਍樭牡吠䥁䕐⹊橲൦瀊畡敳
No way I would want to execute something like this.
Would it even run?
Did something went wrong?

Please post a batch (the content of it) I can read.

The Sweet Patch mentions that it is based on version 56.0 of TAI, but there is no reference to that anywhere else. Does anyone know where I can find a changelog for that?
I've wrote in my release notes of 55.7.2b:
After I looked up the changelog for 56.0
So, it should be somewhere, no idea where, a quick search on my hdd didn't helped.
My first guess would be github?


Looking forward to give it a try,
greetings,
Markus
Storm123
Explorer
Explorer
Posts: 6
Joined: Sat Sep 12, 2020 11:43 am
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: TAIPEJ - an IDE for TeaseAI v1.2.0

Post by Storm123 »

markus wrote: Fri Oct 17, 2025 9:13 am Life's a bitch, in all it's meanings, that said, nice to see you're back.


Once I get back to scripting, I have the feeling this will come in handy very much, will give it a deeper dive then.
But for now, one problem, 2 suggestions.

First, I must mention I am very careful when it comes to downloads, some maybe would say too careful, but is there such a thing like too careful?
Anyway, I want to try it, suggestions come to my mind:
- Short install notes for the most easy way (custom JRE) in the first post.
- Manual addtionally as textfile, html's maybe could do bad things.

Problem:
As careful as I am I check every bat file before executing in my texteditor, here I get this from the start.bat:

Code: Select all

挦獬਍敀档景൦椊⁦硥獩⁴樢敲戯湩樯癡⹡硥≥⠠਍∉牪⽥楢⽮慪慶•堭㩘楍䡮慥䙰敲剥瑡潩ㄽ‰堭㩘慍䡸慥䙰敲剥瑡潩㌽‰猭汰獡㩨灳慬桳朮晩帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳慪慶硦献散敮琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦献散敮琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦朮潥㵭楲档整瑸硦昮瑡帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳慪慶硦献散敮琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦献散敮琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦朮潥㵭䱁ⵌ乕䅎䕍⁄൞ⴊ慪⁲䅔偉䩅爮晪਍瀉畡敳਍攉楸⁴䈯〠਍ഩഊ椊⁦┢䅊䅖㘱∥㴠‽┢䅊䅖㘱╞•നऊ捥潨吠敨攠癮物湯敭瑮瘠牡慩汢⁥┥䅊䅖㘱┥椠⁳潮⁴敳⹴䄠潢瑲湩⹧⸮਍瀉畡敳਍攉楸⁴䈯㈠਍ഩ椊⁦┢䙊ㅘ┱•㴽∠䨥塆ㄱ╞•നऊ捥潨吠敨攠癮物湯敭瑮瘠牡慩汢⁥┥䙊ㅘ┱‥獩渠瑯猠瑥‮扁牯楴杮⸮മऊ慰獵൥ऊ硥瑩⼠⁂ള⤊਍晩渠瑯攠楸瑳∠䨥噁ㅁ┶扜湩橜癡⹡硥≥⠠਍攉档桔⁥楦敬∠䨥噁ㅁ┶扜湩橜癡⹡硥≥搠敯⁳潮⁴硥獩⹴䌠敨正琠敨瘠污敵漠⁦┥䅊䅖㘱┥മऊ慰獵൥ऊ硥瑩⼠⁂ഴ⤊਍晩渠瑯攠楸瑳∠䨥塆ㄱ尥楢屮•നऊ捥潨吠敨映汯敤⁲┢䙊ㅘ┱扜湩≜搠敯⁳潮⁴硥獩⹴䌠敨正琠敨瘠污敵漠⁦┥䙊ㅘ┱⸥਍瀉畡敳਍攉楸⁴䈯㔠਍ഩഊ∊䨥噁ㅁ┶扜湩橜癡⹡硥≥ⴠ橄癡⹡楬牢牡⹹慰桴∽倥呁╈┻䙊ㅘ┱扜湩•൞ⴊ塘䴺湩效灡牆敥慒楴㵯〱ⴠ塘䴺硡效灡牆敥慒楴㵯〳ⴠ灳慬桳猺汰獡⹨楧⁦൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣樯癡晡⹸捳湥⹥整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸捳湥⹥整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸整瑸爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸敧浯爽捩瑨硥晴⹸慦⁴൞ⴊ愭摤漭数獮樠癡晡⹸牧灡楨獣樯癡晡⹸捳湥⹥整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ硥潰瑲⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸捳湥⹥整瑸䄽䱌唭乎䵁䑅帠਍ⴭ摡ⵤ灯湥⁳慪慶硦朮慲桰捩⽳潣⹭畳⹮慪慶硦琮硥㵴䱁ⵌ乕䅎䕍⁄൞ⴊ愭摤攭灸牯獴樠癡晡⹸牧灡楨獣振浯献湵樮癡晡⹸敧浯䄽䱌唭乎䵁䑅帠਍樭牡吠䥁䕐⹊橲൦瀊畡敳
No way I would want to execute something like this.
Would it even run?
Did something went wrong?

Please post a batch (the content of it) I can read.

The Sweet Patch mentions that it is based on version 56.0 of TAI, but there is no reference to that anywhere else. Does anyone know where I can find a changelog for that?
I've wrote in my release notes of 55.7.2b:
After I looked up the changelog for 56.0
So, it should be somewhere, no idea where, a quick search on my hdd didn't helped.
My first guess would be github?


Looking forward to give it a try,
greetings,
Markus



Long time Markus!
I got curious when i saw the code in your comment here, re encoded to utf-8 the "garbled" mess is actually this code:

Code: Select all

��&cls
@echo off
if exist "jre/bin/java.exe" (
	"jre/bin/java" -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=30 -splash:splash.gif ^
--add-opens javafx.graphics/javafx.scene.text=richtextfx.fat ^
--add-exports javafx.graphics/com.sun.javafx.text=richtextfx.fat ^
--add-exports javafx.graphics/com.sun.javafx.scene.text=richtextfx.fat ^
--add-opens javafx.graphics/com.sun.javafx.text=richtextfx.fat ^
--add-exports javafx.graphics/com.sun.javafx.geom=richtextfx.fat ^
--add-opens javafx.graphics/javafx.scene.text=ALL-UNNAMED ^
--add-exports javafx.graphics/com.sun.javafx.text=ALL-UNNAMED ^
--add-exports javafx.graphics/com.sun.javafx.scene.text=ALL-UNNAMED ^
--add-opens javafx.graphics/com.sun.javafx.text=ALL-UNNAMED ^
--add-exports javafx.graphics/com.sun.javafx.geom=ALL-UNNAMED ^
-jar TAIPEJ.rjf
	pause
	exit /B 0
)

if "%JAVA16%" == "%JAVA16^%" (
	echo The environment variable %%JAVA16%% is not set. Aborting...
	pause
	exit /B 2
)
if "%JFX11%" == "%JFX11^%" (
	echo The environment variable %%JFX11%% is not set. Aborting...
	pause
	exit /B 3
)
if not exist "%JAVA16%\bin\java.exe" (
	echo The file "%JAVA16%\bin\java.exe" does not exist. Check the value of %%JAVA16%%.
	pause
	exit /B 4
)
if not exist "%JFX11%\bin\" (
	echo The folder "%JFX11%\bin\" does not exist. Check the value of %%JFX11%%.
	pause
	exit /B 5
)

"%JAVA16%\bin\java.exe" -Djava.library.path="%PATH%;%JFX11%\bin" ^
-XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=30 -splash:splash.gif ^
--add-opens javafx.graphics/javafx.scene.text=richtextfx.fat ^
--add-exports javafx.graphics/com.sun.javafx.text=richtextfx.fat ^
--add-exports javafx.graphics/com.sun.javafx.scene.text=richtextfx.fat ^
--add-opens javafx.graphics/com.sun.javafx.text=richtextfx.fat ^
--add-exports javafx.graphics/com.sun.javafx.geom=richtextfx.fat ^
--add-opens javafx.graphics/javafx.scene.text=ALL-UNNAMED ^
--add-exports javafx.graphics/com.sun.javafx.text=ALL-UNNAMED ^
--add-exports javafx.graphics/com.sun.javafx.scene.text=ALL-UNNAMED ^
--add-opens javafx.graphics/com.sun.javafx.text=ALL-UNNAMED ^
--add-exports javafx.graphics/com.sun.javafx.geom=ALL-UNNAMED ^
-jar TAIPEJ.rjf
pause
For anyone that might see this and wonder why its "garbled" in the original file of op, he seems to have saved the file using "UTF-16 LE" encoding (Tough with wrong byte pairs, but the file start is consistent with UTF-16 LE) this then makes our editors miss read every x bytes as unicode instead of its actual meaning.
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.2.0

Post by N3R0 »

Hi markus,
markus wrote: Fri Oct 17, 2025 9:13 am First, I must mention I am very careful when it comes to downloads, some maybe would say too careful, but is there such a thing like too careful?
Yes, in general "too careful" is a thing sometimes, but let's not get philosophical here ;-) .
However, I also check batch files before running them.
markus wrote: Fri Oct 17, 2025 9:13 am Anyway, I want to try it, suggestions come to my mind:
- Short install notes for the most easy way (custom JRE) in the first post.
- Manual addtionally as textfile, html's maybe could do bad things.
Well, I didn't put them in the actual post, because redundancy can become a problem. I wanted to prevent posting outdated information caused by me eventually losing track of which stuff in posted in how many places, so I only uploaded the manual.
Also, the manual already existed, whereas I would have to format the text here in the editor to make it readable.

My manual certainly cannot do bad things as there is no JS in it. But I agree that install instructions are probably better in the post, than having to download them first.

As I mentioned in the first post, I was only gonna update the attached manual, if anything changes about the installation instructions. So I'm tempted to put the instructions in the post and simply delete the attached manual altogether.
Does that sound like a plan?

markus wrote: Fri Oct 17, 2025 9:13 am Problem:
As careful as I am I check every bat file before executing in my texteditor, here I get this from the start.bat:
...

No way I would want to execute something like this.
Would it even run?
Did something went wrong?

Please post a batch (the content of it) I can read.
Well, I'm careful, too. First of all, I would like to protect my intellectual property. Which is my I also considered turning my *.bat into an *.exe before the first release. But I couldn't be bothered. So I obfuscated it instead.

Second of all, I have read (and experienced) way too many cases all over the internet, where people complain about bugs, which in the end turn out to be caused by something they changed, which they shouldn.t have messed with. So I tried to stop people from messing with the *.bat file at the same time.
...Guess that worked only to some degree... :-/

FYI: I have no idea where the first line in Storm123's "decrypted" version comes from. The real bat actually starts with "@echo off".

markus wrote: Fri Oct 17, 2025 9:13 am
The Sweet Patch mentions that it is based on version 56.0 of TAI, but there is no reference to that anywhere else. Does anyone know where I can find a changelog for that?
I've wrote in my release notes of 55.7.2b:
After I looked up the changelog for 56.0
So, it should be somewhere, no idea where, a quick search on my hdd didn't helped.
My first guess would be github?
Just found it on github. I had already looked there before, but didn't see it. No idea how I managed to miss that... :whistle:



Have a nice weekend everyone.
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 863
Joined: Tue Nov 18, 2008 11:09 pm

Re: TAIPEJ - an IDE for TeaseAI v1.2.0

Post by markus »

Storm123 wrote: Fri Oct 17, 2025 10:26 am re encoded to utf-8 the "garbled" mess is actually this code:
Ah, alright, looks more like it! :-D

N3R0 wrote: Sat Oct 18, 2025 9:50 am As I mentioned in the first post, I was only gonna update the attached manual, if anything changes about the installation instructions. So I'm tempted to put the instructions in the post and simply delete the attached manual altogether.
Does that sound like a plan?
My suggestions are just that, suggestions, things that come to my mind while reading/testing/whatever.
I had something more simple in mind, let's not mix manual and what I mean with install instructions.
- Manual:
As detailed as possible (like it is), as an attachment (cool, in the post it would blow that already large post up, in my opinion too much), just the format is what could scare away, maybe just a simple convert-to-PDF (there should be tools for that), or .doc maybe, options are cool, no need to delete the html one, just additional such a convert, nothing you should invest more than 5 minutes into it.
- Install notes:
As simple (but precise) and short as possible, a quick-install-guide.

See, these suggestions come because I am mostly in such a hurry, and also this might cover "the common user", people see the headline and think "A TAI-Editor, cool, let's click this thread".
Next, "oh, a screenshot, looks great, wanna give it a testrun".
And then, ... "oh, a wall of text, different ways of install, JAVA (omg, JAVA, please oh Lord, not that JAVA again), JRE (wtf?), ... alright, coffee-break is over, too bad, maybe another day."

What I really like to suggest is a quick-start-package, one download, one unzip, one double click on a bat, tool on my screen, ready to go.


FYI: I have no idea where the first line in Storm123's "decrypted" version comes from. The real bat actually starts with "@echo off".
I still didn't get it started, copied Storm123's bat (from the "@echo off"), nothing happens at all.
I've put custom JRE into the TAIPEJ 1.2.0 folder, nothing.
Renamed "custom JRE" to "jre" (based on what I see in the bat), nothing.
That was the point where my coffee-break was over and I moved on to my other stuff.

As a general thought/note, ...
Don't get me wrong here, absolutely no hate involved, but it's something that makes me dislike Java for sooooo many years, whenever someone releases a Java tool, in 99% it always leads to problems like these, install this Java Version, oh, not that one, something between 7.3.x up to 8.1.x not above, not below, or Java 14, but not 15, check your PATH variable, does the firewall let it pass?
Same is nowadays with all those python apps, must be 20 times I've downloaded that cuda.python thing (> 2GB) until I've finally kicked python off of my system completely.

As a user, I want to have it simple, userfriendly.
*** end of ranting***
(Don't take it personal, again, that's more of a general note).


Greetz, :wave:
Markus
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.2.0

Post by N3R0 »

Hey again markus,

I know what you mean with those different Java versions. I've been there myself. Luckily I managed to avoid python completely, as I was never a big fan of that, anyways.

Regarding your one-click download: Too bad there is no English expression for "auf dem Schlauch stehen" :lol:
I was so focused on A) giving people more than one option and B) keeping the download size to a minimum, that I completely forgot to also offer a complete package. By that I mean that this option didn't even occur to me for some reason... :slap:

I'm already working on a new version which I will upload in the next few days, maybe already tomorrow. I'm gonna use that opportunity to simplify things.


About the manual: PDFs aren't exaclty known to be super safe... :-P
I'll think about what I'll do for a bit.

Regards,
N3R0
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
N3R0
Explorer
Explorer
Posts: 51
Joined: Tue Jun 02, 2015 1:28 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Location: Germany

Re: TAIPEJ - an IDE for TeaseAI v1.2.1

Post by N3R0 »

Hello everyone,

I just uploaded yet another update.
As per markus' suggestion, I simplified the installation instructions.
I also updated the manual, which is attached to the first post, to make sure noone gets confused by the old instructions.

Happy scripting!
If you are a creator of a Tease AI personality, check out my personality editor called TAIPEJ!
Post Reply