Skript

Skript

743k Downloads

A problem with the letters "İ" in Turkish and "i" in English.

Mehmetturker50 opened this issue · 3 comments

commented

Skript/Server Version

> skript info
[21:52:34 INFO]: [Skript] Skript's aliases can be found here: https://github.com/SkriptLang/skript-aliases
[21:52:34 INFO]: [Skript] Skript's documentation can be found here: https://docs.skriptlang.org/
[21:52:34 INFO]: [Skript] Skript's tutorials can be found here: https://docs.skriptlang.org/tutorials
[21:52:34 INFO]: [Skript] Server Version: git-Paper-785 (MC: 1.16.5)
[21:52:34 INFO]: [Skript] Skript Version: 2.8.2 (skriptlang-github)
[21:52:34 INFO]: [Skript] Installed Skript Addons:
[21:52:34 INFO]: [Skript]  - SkImage v1.8
[21:52:34 INFO]: [Skript]  - Skellett v1.9.11 (https://forums.skunity.com/resources/skellett.24/)
[21:52:34 INFO]: [Skript]  - SkWaze v3.0.9
[21:52:34 INFO]: [Skript]  - skript-yaml v1.5
[21:52:34 INFO]: [Skript]  - MongoSK v2.3.0 (https://github.com/Romitou/MongoSK)
[21:52:34 INFO]: [Skript]  - MorkazSk v1.3
[21:52:34 INFO]: [Skript]  - skript-reflect v2.4 (https://github.com/SkriptLang/skript-reflect)
[21:52:34 INFO]: [Skript]  - skript-db v1.3.6
[21:52:34 INFO]: [Skript]  - SkQuery v4.1.10
[21:52:34 INFO]: [Skript]  - SkBee v1.15.3 (https://github.com/ShaneBeee/SkBee)
[21:52:34 INFO]: [Skript]  - SkJade v1.4.2 (https://www.github.com/Ankoki-Dev/SkJade)
[21:52:34 INFO]: [Skript]  - SkriptJSON v1.0.0
[21:52:34 INFO]: [Skript] Installed dependencies: None

Bug Description

If the Turkish letter "İ" is used twice in the same line, the script gives a "can't understand" error.

Expected Behavior

There shouldn't have been any errors.

Steps to Reproduce

this will giving error:
send "İİ" to player
this will not giving error:
send "İi" to player
and this will not giving error too:
send "ii" to player

Errors or Screenshots

image

Other

No response

Agreement

  • I have read the guidelines above and affirm I am following them with this report.
commented

This problem occurs in some places in the parser where toLowerCase() is used. These places falsely assume that string.length() == string.toLowerCase(Locale.ENGLISH).length() which is not guaranteed (notably for the character this issue mentions).

commented

I think I recognise this, I'm pretty sure we had a similar (if not identical) issue in the past and it had something to do with the encoding and the escaping/closing of the string.

commented

We fixed this before by using Locale.ENGLISH but not sure how this is still occuring.