[Tease Program] Tease-AI Java (1.4)

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

User avatar
MrSawyerr
Explorer
Explorer
Posts: 18
Joined: Tue Oct 27, 2020 10:16 am
Gender: Male
Sexual Orientation: Straight

Re: [Tease Program] Tease-AI Java (1.3)

Post by MrSawyerr »

Does anyone know if @RapidCodeOn is working correctly?
It feels like it is skipping lines now and then but I'm not sure of it.
Last edited by MrSawyerr on Thu Jan 21, 2021 6:55 pm, edited 2 times in total.
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

Create a pull request to support images and animations in chat messages:
https://github.com/GodDragoner/TeaseAIJava/pull/25

Note that this is a massive change to reduce the complexity of the existing code. Adding the <img> tag support was trivial after that. I think I caught all of the nuances of StringUtils.processString().

This is (an extreme) example of the added functionality with the animated banana:
Spoiler: show

Code: Select all

sendMessage("Mary <gif=Images/Spicy/Emotes/heart.gif> her little lamb");
sendMessage("Mary <img=Images/Spicy/Emotes/banana.gif> her little lamb");
sendMessage("Mary <img=Images/Spicy/Toys/spiderGag.jpg> her little lamb");
Screenshot from 2021-01-21 22-17-15.png
Screenshot from 2021-01-21 22-17-15.png (43.32 KiB) Viewed 8767 times
This is the script that I used to verify that I didn't break the existing functionality:
Spoiler: show

Code: Select all

function testCategory(categoryName, message) {
    sendMessage("[* TEST CATEGORY: " + categoryName + " *]", 0, false);
}
function test(testName, message) {
    sendMessage("TEST: " + testName, 0, false);
    sendMessage(message, 0, false);
}
lockImages();

testCategory("General");

test("Unformatted", "Mary had a little lamb");
test("Weight1 (w)", "<w=EXTRA_LIGHT>Extra light</w> Normal <w=EXTRA_BOLD>Extra bold</w>");
test("Weight2 (weight)", "<weight=EXTRA_LIGHT>Extra light</weight> Normal <weight=EXTRA_BOLD>Extra bold</weight>");
test("Weight3 (fontweight)", "<fontweight=EXTRA_LIGHT>Extra light</fontweight> Normal <fontweight=EXTRA_BOLD>Extra bold</fontweight>");
test("Font1 (f)", "<f=FreeMono>Free Mono</f> <f=FreeSerif>Free Serif</f> Normal");
test("Font2 (font)", "<font=FreeMono>Free Mono</font> <font=FreeSerif>Free Serif</font> Normal");
test("Size1 (fs)", "<fs=20>Massive</fs> Normal <fs=8>Tiny</fs>");
test("Size2 (fontsize)", "<fontsize=20>Massive</fontsize> Normal <fontsize=8>Tiny</fontsize>");
test("Underline1 (u)", "<u>Underlined</u>");
test("Underline2 (under)", "<under>Underlined</under> Normal");
test("Underline3 (underline)", "<underline>Underlined</underline> Normal");
test("Strikethrough (s)", "<s>Strikethrough</s> Normal");
test("Strikethrough (strike)", "<strike>Strikethrough</strike> Normal");
test("Strikethrough (strikethrough)", "<strikethrough>Strikethrough</strikethrough> Normal");
test("Color1 (c=name)", "<c=RED>Red</c> Normal <c=BLUE>Blue</c> <c=GREEN>Green</c>");
test("Color2 (col=name)", "<col=RED>Red</col> Normal <col=BLUE>Blue</col> <col=GREEN>Green</col>");
test("Color3 (color=name)", "<color=RED>Red</color> Normal <color=BLUE>Blue</color> <color=GREEN>Green</color>");
test("Color4 (c=0xnnnnnnnn)", "<c=0x800000ff>Red</color> Normal <c=0x000080ff>Blue</c> <c=0x008000ff>Green</c>");
test("Color5 (c=#nnnnnn)", "<c=#800000>Red</color> Normal <c=#000080>Blue</c> <c=#008000>Green</c>");
test("Color6 (c=rgb(n,n,n))", "<c=rgb(128,0,0)>Red</color> Normal <c=rgb(0,0,128)>Blue</c> <c=rgb(0,128,0)>Green</c>");
test("Color7 (c=rgb(n%,n%,n%))", "<c=rgb(50%,0,0)>Red</color> Normal <c=rgb(0,0,50%)>Blue</c> <c=rgb(0,50%,0)>Green</c>");
test("Italics1", "Hello <i>italics</i> Normal");
test("Italics2", "Hello <italics>italics</italics> Normal");
test("Bold1", "<b>Bold</b> Normal");
test("Bold2", "<bold>Bold</bold> Normal");
test("Image1 (img)", "Mary <img=Images/Spicy/Emotes/heart.gif> her little lamb");
test("Image2 (image)", "Mary <image=Images/Spicy/Emotes/heart.gif> her little lamb");
test("Image3 (picture)", "Mary <picture=Images/Spicy/Emotes/heart.gif> her little lamb");
test("Image4 (gif)", "Mary <gif=Images/Spicy/Emotes/heart.gif> her little lamb");
test("Image5 (img=animation)", "Mary <img=Images/Spicy/Emotes/banana.gif> her little lamb");
test("Image6 (img=jpg)", "Mary <img=Images/Spicy/Toys/spiderGag.jpg> her little lamb");

testCategory("Overlapping");

test("Bold/Italics", "<b>Bold <i>Italic and bold </b>Italic </i>Normal");
test("Bold/Underline", "<b>Bold <u>Underlined and bold </b>Underlined </u>Normal");

testCategory("Stacked");

test("Italics", "<i><i>Italic</i> Still italic </i>Normal");
test("Bold", "<b><b>Bold</b> Still bold </b>Normal");
test("Color", "Normal <c=BLUE>Blue <c=GREEN>Green <c=RED>Red </c>Green </c>Blue </c>Normal");

testCategory("Parsing");

test("Escaped tags", "Sad :‑\\< and angry \\>:[");
test("Closing only", "Did you know that 5 > 4?");
test("Uncapped", "<color=BLUE");
test("Unmatchable", "<@color=BLUE>");

testCategory("Unknown");

test("Unrecognised", "Some <mango> fruit </apple>");

testCategory("Missing args");

test("Weight", "<w>Extra light</w> Normal");
test("Font", "<f>Free Mono</f> Normal");
test("Size", "<fs>Massive</fs> Normal");
test("Color", "<c>Red</c> Normal");
test("Image", "Mary <img> her little lamb");

testCategory("Redundant args");

test("Underline", "<u=foo>Underlined</u>");
test("Italics", "Hello<i=bar>italics</i> Normal");
test("Bold", "<b=zip>Bold</b> Normal");

testCategory("Missing images");

test("Image1 (img=gif)", "<img=Images/does-not-exist.gif>");
test("Image2 (img=jpg)", "<img=Images/does-not-exist.jpg>");

sleep(300);
I appreciate that it's going to take some time to review! Feel free to ping me if I can help.
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

illit wrote: Thu Jan 21, 2021 8:42 am Hello, I have a small request. Would be great to have some brief instructions on how to build TAJ from source (for non-Java developers), or maybe a build script. I would like to have the latest changes, even if there is no new release yet, but I don't want to learn how to work with Java compiler.
I understand what you mean, but that could be very tricky. There was some effort put into producing a consistent build script, but these things are always complicated, even for experienced developers, particularly when intending to provide it to third parties (i.e. general users) when there is a great difference between each individual's setup of their PC. For example, I've hammered together my own gradle build script, but the rest of my environment is based on Linux Mint with JavaFX 15. I've got the advantage of having 25 years of software development experience though, so when things don't quite go to plan, I can normally whack it enough times to get it back in to shape.

Some projects run build servers; these compile the latest version of the software when the code changes. That's still not trivial to set up, and then the question might be about the delivery mechanism. If the pre-releases consisted only of a new TeaseAI.jar, then perhaps it could be made available to user to drop in place of the old one, but that would have to come with the caveat that if it breaks, it's not going to be supported at all. Sometimes it's better to let the changes be thoroughly vetted before releasing any update to users; we don't want to annoy them after all!

It's worth noting that there aren't that many behavioural changes to the current source for TAJ compared to release version 1.3, at least nothing that I'd expect to affect Windows users anyway (assuming you are a Windows user).

Listen to me, rambling on like an old man :blush:
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

operwt wrote: Thu Jan 21, 2021 5:39 pm A domme images are shown randomly, could you please make it by file name?
When you say by file name, do you mean that it gradually steps through the Domme images in order alphabetically with each chat message, like TAI does?

My Domme images are normally sorted to be become more scantily glad as it goes further down the list. In TAI, when it reached the end of the list, I think it just switched to a different image set, starting at the top again. TAJ, as you say, sticks with the same image set and shows images randomly.

I suppose it depends on the features of the Personality as to whether the experience would still be as desired by the author. Perhaps it could work, but I'm not sure. Are you running the Spicy personality?

I could look into it, but I'll be honest, it won't be a high priority for me to do it at the moment as I'm trying to help debug and fortify the existing functionality. If the feature does get added, I think it'll have to be a configuration option to choose between random or sequenced images. If GodDragon would be happy for me to take a look at that sort of change, I will do.
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

MrSawyerr wrote: Thu Jan 21, 2021 9:48 am Does anyone know if @RapidCodeOn is working correctly?
It feels like it is skipping lines now and then but I'm not sure of it.
Is that a TAJ or TAI thing? I can't find any reference to it in TAJ unless I'm looking in the wrong place? :-/ Can you provide a short script example of how it's used?
User avatar
MrSawyerr
Explorer
Explorer
Posts: 18
Joined: Tue Oct 27, 2020 10:16 am
Gender: Male
Sexual Orientation: Straight

Re: [Tease Program] Tease-AI Java (1.3)

Post by MrSawyerr »

FrozenWolf wrote: Thu Jan 21, 2021 11:10 pm
MrSawyerr wrote: Thu Jan 21, 2021 9:48 am Does anyone know if @RapidCodeOn is working correctly?
It feels like it is skipping lines now and then but I'm not sure of it.
Is that a TAJ or TAI thing? I can't find any reference to it in TAJ unless I'm looking in the wrong place? :-/ Can you provide a short script example of how it's used?
Woops my bad. That's a TAI thing. And I finally found out how it works.
Thanks for asking though!
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

Created small pull request for protection against potentially missing media:
https://github.com/GodDragoner/TeaseAIJava/pull/26
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: [Tease Program] Tease-AI Java (1.3)

Post by GodDragon »

FrozenWolf wrote: Sat Jan 23, 2021 10:02 pm Created small pull request for protection against potentially missing media:
https://github.com/GodDragoner/TeaseAIJava/pull/26
All pull requests look good to me. I'll take a closer look though.
Generally the reflection is a great idea I haven't thought of actually. I didn't think of using reflection since like the function already had everything I wanted but that's definitely a bit cleaner and more readable.

The html chat tag function is also great! Appreciate the work you put into it. Since ski implemented this and I only added the image tag back then (but for some reason he changed it back and then it was apparently left in this state) I never found the time (since it "worked" and I focused on spicy) to do a proper OOP rewriting of this.
FrozenWolf wrote: Thu Jan 21, 2021 10:53 pm
illit wrote: Thu Jan 21, 2021 8:42 am Hello, I have a small request. Would be great to have some brief instructions on how to build TAJ from source (for non-Java developers), or maybe a build script. I would like to have the latest changes, even if there is no new release yet, but I don't want to learn how to work with Java compiler.
I understand what you mean, but that could be very tricky. There was some effort put into producing a consistent build script, but these things are always complicated, even for experienced developers, particularly when intending to provide it to third parties (i.e. general users) when there is a great difference between each individual's setup of their PC. For example, I've hammered together my own gradle build script, but the rest of my environment is based on Linux Mint with JavaFX 15. I've got the advantage of having 25 years of software development experience though, so when things don't quite go to plan, I can normally whack it enough times to get it back in to shape.

Some projects run build servers; these compile the latest version of the software when the code changes. That's still not trivial to set up, and then the question might be about the delivery mechanism. If the pre-releases consisted only of a new TeaseAI.jar, then perhaps it could be made available to user to drop in place of the old one, but that would have to come with the caveat that if it breaks, it's not going to be supported at all. Sometimes it's better to let the changes be thoroughly vetted before releasing any update to users; we don't want to annoy them after all!

It's worth noting that there aren't that many behavioural changes to the current source for TAJ compared to release version 1.3, at least nothing that I'd expect to affect Windows users anyway (assuming you are a Windows user).

Listen to me, rambling on like an old man :blush:
I have set up continuous integration before and when it's running it's great but you are right with your concern about making it usable on every system. I can try to provide an automatic (nightly) build at some point but it's not that high on my priority list.
To build TAJ you don't really need anything special. Get yourself some IDE of your choice, mine would be IntelliJ, setup the project and just press run. That'd normally sufficient. Maybe there might be some quircks but usually there shouldn't.
FrozenWolf wrote: Thu Jan 21, 2021 11:08 pm
operwt wrote: Thu Jan 21, 2021 5:39 pm A domme images are shown randomly, could you please make it by file name?
When you say by file name, do you mean that it gradually steps through the Domme images in order alphabetically with each chat message, like TAI does?

My Domme images are normally sorted to be become more scantily glad as it goes further down the list. In TAI, when it reached the end of the list, I think it just switched to a different image set, starting at the top again. TAJ, as you say, sticks with the same image set and shows images randomly.

I suppose it depends on the features of the Personality as to whether the experience would still be as desired by the author. Perhaps it could work, but I'm not sure. Are you running the Spicy personality?

I could look into it, but I'll be honest, it won't be a high priority for me to do it at the moment as I'm trying to help debug and fortify the existing functionality. If the feature does get added, I think it'll have to be a configuration option to choose between random or sequenced images. If GodDragon would be happy for me to take a look at that sort of change, I will do.
TAJ does not show images randomly. It should display them accordingly to the session state:
https://github.com/GodDragoner/TeaseAIJ ... ector.java if that is not working for you, we need to debug it.

In spicy it is also overwritten by a custom implementation:
https://github.com/GodDragoner/Spicy-TA ... elector.js

It could be that you don't have any fully dressed and face images of your domme? But now that you are mentioning it I am actually a bit confused because I don't think the spicy picture selector was supposed to left in this awkward state :whistle:

Sequenced images can be added for sure, but I guess if the current selector is actually functional and not broken it should be superior to sequence anyway.
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

GodDragon wrote: Sun Jan 24, 2021 1:47 am All pull requests look good to me. I'll take a closer look though.
Generally the reflection is a great idea I haven't thought of actually. I didn't think of using reflection since like the function already had everything I wanted but that's definitely a bit cleaner and more readable.
Good stuff. I think when looking back at it, the only thing that might be different is that the new onCall() methods take Integers as duration values whereas you tweaked the original version to accept Numbers to cope with fractional values. I was doing a cross-comparison at the the time with the sendMessage implementation that only deals with Integers as duration values and probably got my wires crossed. Do you think that all of the API functions that accept durations should handle fractions (even if they're rounded to the nearest integer)? The actual media functions could even use the Duration type for stronger internal consistency.
GodDragon wrote: Sun Jan 24, 2021 1:47 am The html chat tag function is also great! Appreciate the work you put into it. Since ski implemented this and I only added the image tag back then (but for some reason he changed it back and then it was apparently left in this state) I never found the time (since it "worked" and I focused on spicy) to do a proper OOP rewriting of this.
I did have a go at modifying the original, and my poor brain couldn't handle it :wacko:. Luckily I've got enough spare time at the moment to be able to tackle bits like this.

Are any other parts of TAJ that you'd like me to look at? I could look into the other API implementations and convert those to use reflection too; it might weed out other some other bugs. Other than that I'll just see if I can find potential issues.
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: [Tease Program] Tease-AI Java (1.3)

Post by GodDragon »

FrozenWolf wrote: Mon Jan 25, 2021 5:34 pm Good stuff. I think when looking back at it, the only thing that might be different is that the new onCall() methods take Integers as duration values whereas you tweaked the original version to accept Numbers to cope with fractional values. I was doing a cross-comparison at the the time with the sendMessage implementation that only deals with Integers as duration values and probably got my wires crossed. Do you think that all of the API functions that accept durations should handle fractions (even if they're rounded to the nearest integer)? The actual media functions could even use the Duration type for stronger internal consistency.
I made it accept fractional values since for some reason the behaviour of Nashorn seemed to change from Java Version to Java Version. Beforehand I provided the JavaScript call with a 1 and it would yield a 1 as an integer, but in a higher Java Version it ended up being translated to a double in java and thus broke it. Additionally there might be cases where in JavaScript these Integers are calculated using float precision and then casting it just to get it to be a valid parameter seems to much for me. I think it should indeed accept fractional values just for the case of safety. I couldn't guarantee Spicy wouldn't break without the support for it.
FrozenWolf wrote: Mon Jan 25, 2021 5:34 pm I did have a go at modifying the original, and my poor brain couldn't handle it :wacko:. Luckily I've got enough spare time at the moment to be able to tackle bits like this.

Are any other parts of TAJ that you'd like me to look at? I could look into the other API implementations and convert those to use reflection too; it might weed out other some other bugs. Other than that I'll just see if I can find potential issues.
Well, yes indeed reworking the other API calls might be worth a shot.
Apart from that the statistic system was made by ski (I don't use it aynway, dunno if any personality would use it rather than use a custom one, but since I never used it it could need a major rework, because from what I've seen the code isn't optimal in my eyes.

Same goes for the Personality Settings, although I think that one looks better and I've made a few minor changes to fix some things back then.

The Lazy Sub Interface could be prettier and alllow for more and custom options possibly.

The Image ripping from reddit (using a library) was implemented by ski too, so no idea how that one compares.

I mean design wise TAJ could be a bit prettier or allow the theme to change more than that if you want to dig into that.

Estim integration was also made by ski, I can't really test it anyway, since I am lacking such a device for now.
SettlersX
Explorer
Explorer
Posts: 8
Joined: Tue Mar 24, 2020 9:11 pm

Re: [Tease Program] Tease-AI Java (1.3)

Post by SettlersX »

The old Tease-AI have the ability to read op text.

Will it be possible to add this the the Java edition?
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: [Tease Program] Tease-AI Java (1.3)

Post by GodDragon »

SettlersX wrote: Tue Jan 26, 2021 11:19 pm The old Tease-AI have the ability to read op text.

Will it be possible to add this the the Java edition?
op text?
There is already an option for text to speech in the settings.
SettlersX
Explorer
Explorer
Posts: 8
Joined: Tue Mar 24, 2020 9:11 pm

Re: [Tease Program] Tease-AI Java (1.3)

Post by SettlersX »

GodDragon wrote: Wed Jan 27, 2021 1:01 am p text?
There is already an option for text t
You are right. I cannot read.... :rolleyes:
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 434
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease Program] Tease-AI Java (1.3)

Post by FrozenWolf »

GodDragon wrote: Mon Jan 25, 2021 7:07 pm
FrozenWolf wrote: Mon Jan 25, 2021 5:34 pm Good stuff. I think when looking back at it, the only thing that might be different is that the new onCall() methods take Integers as duration values whereas you tweaked the original version to accept Numbers to cope with fractional values. I was doing a cross-comparison at the the time with the sendMessage implementation that only deals with Integers as duration values and probably got my wires crossed. Do you think that all of the API functions that accept durations should handle fractions (even if they're rounded to the nearest integer)? The actual media functions could even use the Duration type for stronger internal consistency.
I made it accept fractional values since for some reason the behaviour of Nashorn seemed to change from Java Version to Java Version. Beforehand I provided the JavaScript call with a 1 and it would yield a 1 as an integer, but in a higher Java Version it ended up being translated to a double in java and thus broke it. Additionally there might be cases where in JavaScript these Integers are calculated using float precision and then casting it just to get it to be a valid parameter seems to much for me. I think it should indeed accept fractional values just for the case of safety. I couldn't guarantee Spicy wouldn't break without the support for it.
Ah, I'd heard about that somewhere, that makes sense now.
I've made some changes to the CustomFunctionExtended that now supports more intelligent matching and I've been running with it for over a week now without any issues. For example, the implementation of sendMessage() has the following handlers:

Code: Select all

    void onCall(String message);
    void onCall(String message, Number durationSeconds);
    void onCall(String message, String imagePath);
    void onCall(String message, Number durationSeconds, Boolean showTyping);
which will match against calls to:

Code: Select all

    sendMessage("foo");
    sendMessage("foo", 1);
    sendMessage("foo", 1.5);
    sendMessage("foo", "bar");
    sendMessage("foo", 1, true);
    sendMessage("foo", 1.5, false);
GodDragon wrote: Mon Jan 25, 2021 7:07 pm
FrozenWolf wrote: Mon Jan 25, 2021 5:34 pm I did have a go at modifying the original, and my poor brain couldn't handle it :wacko:. Luckily I've got enough spare time at the moment to be able to tackle bits like this.

Are any other parts of TAJ that you'd like me to look at? I could look into the other API implementations and convert those to use reflection too; it might weed out other some other bugs. Other than that I'll just see if I can find potential issues.
Well, yes indeed reworking the other API calls might be worth a shot.
Great, I've been working through a bunch of the more complex ones. As part of testing them, I found quite a few issues with the audio and video playback, although most of the issues are associated with specifying media with unknown codecs, or missing media. The API part works fine though :-). I've broken up the MediaHandler code to better manage the MediaPlayer objects that seem to be a bit of a wild beast at times. It's still a bit experimental but so far it seems to be very robust, and I no longer experience the error of being unable to create a MediaPlayer that used to happen to me about half-way through every session.

The current API for playVideo and playAudio returns the MediaPlayer object. I couldn't find anywhere where that return value was used, and I think it would be better to return null and encapsulate the MediaPlayer behind the API because of the need to carefully manage it. Do you have any thoughts on that?

The current pull request for the API, https://github.com/GodDragoner/TeaseAIJava/pull/24 is still valid and doesn't include any of the experimental MediaHandler API changes.
GodDragon wrote: Mon Jan 25, 2021 7:07 pm Apart from that the statistic system was made by ski (I don't use it aynway, dunno if any personality would use it rather than use a custom one, but since I never used it it could need a major rework, because from what I've seen the code isn't optimal in my eyes.

Same goes for the Personality Settings, although I think that one looks better and I've made a few minor changes to fix some things back then.

The Lazy Sub Interface could be prettier and alllow for more and custom options possibly.

The Image ripping from reddit (using a library) was implemented by ski too, so no idea how that one compares.

I mean design wise TAJ could be a bit prettier or allow the theme to change more than that if you want to dig into that.

Estim integration was also made by ski, I can't really test it anyway, since I am lacking such a device for now.
That's a great list, thanks. I've tried to track roughly what I'm doing through a wiki page:
https://github.com/FrozenWolf4887/Tease ... activities

I can change the order around to see what would suit us best; feel free to make requests!
ThePurpleSnowglobe
Explorer
Explorer
Posts: 5
Joined: Sun Feb 07, 2021 10:55 pm
I am a: Switch

Re: [Tease Program] Tease-AI Java (1.3)

Post by ThePurpleSnowglobe »

I have a question regarding the Tumblr images issue, mentioned in the pull request #23 by FrozenWolf. In my understandig this fix was included in the version 1.3 of TAJ, so the issue should be resolved, I guess.

The thing is, I still expierence this problem. While playing Spicy I get lots and lots of black screens. After every session the Downloaded Images folder is filled with seemingly corrupted images. By closer inspection I noticed that these files, though having the normal .jpg, .gif extensions in reality containing HTML code of a tumblr page with the actual image embeded.

I am using Windows 10 and started TAJ two weeks ago (after several months of abstinence) when it updated to version 1.3 automatically. Only thereafter I installed and configured Spicy. At first I missed to configure a media folder for tease images and so I thought the black screens were my fault of having something else not configured correctly. Only recently I discorved what was going on in the Downloaded Images folder.
Post Reply