Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix ExprSets conflicting #6123

Merged
merged 7 commits into from Dec 1, 2023
Merged

Fix ExprSets conflicting #6123

merged 7 commits into from Dec 1, 2023

Conversation

TheLimeGlass
Copy link
Collaborator

@TheLimeGlass TheLimeGlass commented Oct 15, 2023

Description

Fixes ExprSets conflicting with set {_players::*} to all players
The error mainly is present when parsing syntaxes with %players% not the above example.
The expression ExprSets should be returning false silently without an error to allow Skript to continuously keep checking for other syntaxes. Essentially grabbing Player EntityData instead of ExprSets.
We don't want to error when Skript checks ExprSets as it should be returning all the players on the server, not using the classinfo to collect all the players (which has no supplier causing this error).


Target Minecraft Versions: any
Requirements: none
Related Issues: none

@TheLimeGlass TheLimeGlass added bug An issue that needs to be fixed. Alternatively, a PR fixing an issue. 2.8 Targeting a 2.8.X version release labels Oct 15, 2023
@TheLimeGlass TheLimeGlass added 2.7 Targeting a 2.7.X version release and removed 2.8 Targeting a 2.8.X version release labels Oct 15, 2023
@TheLimeGlass TheLimeGlass changed the base branch from dev/feature to dev/patch October 15, 2023 00:48
@UnderscoreTud
Copy link
Member

UnderscoreTud commented Oct 15, 2023

I'm sorry, how does removing a simple log fix an issue (which doesn't even exist)? Can you show me an example of syntax that didn't work before this PR, and how it works after

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 15, 2023

I'm sorry, how does removing a simple log fix an issue (which doesn't even exist)? Can you show me an example of syntax that doesn't work before this PR, and how it works after

In the parser when it collects the pattern to the syntax to then call the init of it, if it errors at any point in the iteration, it'll stop.
Not causing an error makes it continue in the iteration returning false, and if it doesn't find any other syntaxes, it'll state cannot understand as no pattern matches.

@sovdeeth
Copy link
Member

I'm also not sure what the original bug was, do you have a reproducible example? I don't think I've ever encountered it.

@UnderscoreTud
Copy link
Member

What? That is just not how it works. The parser iterates through all the elements, finding one whose pattern matches the user's input and returns it if its init returns true, otherwise it continues iterating through the rest of the elements repeating the process. Logs are only accumulated after the whole process's done, they do not affect this whatsoever. And you have yet to provide an example of how this changes anything.

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 15, 2023

What? That is just not how it works. The parser iterates through all the elements, finding one whose pattern matches the user's input and returns it if its init returns true, otherwise it continues iterating through the rest of the elements repeating the process. Logs are only accumulated after the whole process's done, they do not affect this whatsoever. And you have yet to provide an example of how this changes anything.

This pull request solved the issue, so that's crazy. Not sure what you're on about. Can you explain how that isn't how it works?

I did provide an example. This error got the error to properly go away.

@Fusezion
Copy link
Contributor

This pull request solved the issue, so that's crazy. Not sure what you're on about. Can you explain how that isn't how it works?

I did provide an example. This error got the error to properly go away.

I'm with Tuddler on this, I haven't had any issues at all with this class, and what error? Screenshot?

@UnderscoreTud
Copy link
Member

Give me the proper Skript code you tested. And run it before and after this PR and show me the results please.

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 15, 2023

Give me the proper Skript code you tested. And run it before and after this PR and show me the results please.

You can literally call a non believe syntax and it'll throw ExprSets

set {_example::*} to some fake syntax where all players

That's a problem.
My Fix

[00:22:54] [Server thread/INFO]: Line 2: (listenUp.sk)
[00:22:54] [Server thread/INFO]:     Can't understand this expression: 'some fake syntax where all players'
[00:22:54] [Server thread/INFO]:     Line: set {_example::*} to some fake syntax where all players

2.7.1

[00:27:14 INFO]: [Skript] Line 2: (listenUp.sk)
[00:27:14 INFO]:     You cannot get all values of type 'player'
[00:27:14 INFO]:     Line: set {_example::*} to some fake syntax where all players

@sovdeeth
Copy link
Member

I cannot replicate on 2.7.1:
image

image

@TheLimeGlass
Copy link
Collaborator Author

I cannot replicate on 2.7.1: image

image

Updated my past post with evidence

@sovdeeth
Copy link
Member

Updated my past post with evidence

Can you provide your /sk info please?

@TheLimeGlass
Copy link
Collaborator Author

Updated my past post with evidence

Can you provide your /sk info please?

This is a bug fix not an issue report.

@sovdeeth
Copy link
Member

Updated my past post with evidence

Can you provide your /sk info please?

This is a bug fix not an issue report.

I understand, but I want to be able to replicate the issue so I can, you know, test if it's fixed.

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 15, 2023

Updated my past post with evidence

Can you provide your /sk info please?

This is a bug fix not an issue report.

I understand, but I want to be able to replicate the issue so I can, you know, test if it's fixed.

[01:07:08 INFO]: [Skript] Skript's aliases can be found here: https://github.com/SkriptLang/skript-aliases
[01:07:08 INFO]: [Skript] Skript's documentation can be found here: https://docs.skriptlang.org/
[01:07:08 INFO]: [Skript] Skript's tutorials can be found here: https://docs.skriptlang.org/tutorials
[01:07:08 INFO]: [Skript] Server Version: git-Paper-171 (MC: 1.20.1)
[01:07:08 INFO]: [Skript] Skript Version: 2.7.1 (skriptlang-github)
[01:07:08 INFO]: [Skript] Installed Skript Addons: None
[01:07:08 INFO]: [Skript] Installed dependencies: None
on load:
    set {_example::*} to some fake syntax where all players
[00:27:14 INFO]: [Skript] Line 2: (listenUp.sk)
[00:27:14 INFO]:     You cannot get all values of type 'player'
[00:27:14 INFO]:     Line: set {_example::*} to some fake syntax where all players

@Moderocky
Copy link
Member

I don't seem to be able to reproduce this issue on the current master release.
image

Or at the head fbf2e4 of patch branch.
image

Or with 2.8.0-dev on feature branch.
image

Do you think the error might be coming from a different place?

@sovdeeth
Copy link
Member

Likewise, I'm not sure how you're having it occur, Lime.
image

@TheLimeGlass
Copy link
Collaborator Author

Ok mark my word when a user reports it.

@sovdeeth
Copy link
Member

Ok mark my word when a user reports it.

I would love to know why it's showing up for you but not for us, because that indicates a rather insidious issue. Maybe if you sent your server environment as a zip?

@sovdeeth
Copy link
Member

@Fusezion helped out and found that using of all players is a key requirement to replicating this, and with that info I can replicate on 2.7.1. That said, I don't think simply removing the error is the correct response to this issue. Tud is currently investigating further.

image

@sovdeeth
Copy link
Member

Using the nightly from this PR, I don't think anything changed for the user behavior. I think it should be MATCHES_EVERYTHING just on principle, but I don't think it fixed the issue.
image

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 15, 2023

Using the nightly from this PR, I don't think anything changed for the user behavior. I think it should be MATCHES_EVERYTHING just on principle, but I don't think it fixed the issue. image

It is pattern matches everything. Please build the branch yourself.

@sovdeeth
Copy link
Member

sovdeeth commented Oct 15, 2023

It is pattern matches everything. Please build the branch yourself.

I know, I'm agreeing with that change. I just didn't have it solve the issue for me. I'll try a self-build anyway, though.

edit: Yup, same thing:
image

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 15, 2023

It is pattern matches everything. Please build the branch yourself.

I know, I'm agreeing with that change. I just didn't have it solve the issue for me. I'll try a self-build anyway, though.

edit: Yup, same thing: image

It solved the issue for me. Tud was saying an error should be printed, but I can reset this pull request back to the original commit, the original issue I had already solved. I can't take this seriously when you stated the issue never existed to begin with. Please do a clean reset test. Just changing the expression type solved the issue for me.

@UnderscoreTud
Copy link
Member

The issue is not really with ExprSets or its priority, but rather with how patterns are matched.

First we have to see how a %type% pattern element is matched. Let's consider the pattern %itemtype% with sauce and the input string dirt with sauce. The pattern, internally, looks like %itemtype%-> with sauce. The way Skript matches a type element is by first matching everything after it, then trying to find an expression suitable for that type. Basically, it first and foremost makes sure with sauce is there, then it considers whether dirt is a valid itemtype.

Back to the issue at hand now, Skript just happens to have the pattern [(all [[of] the]|the)] %*entitydatas% [(in|of) ([world[s]] %-worlds%|1¦%-chunks%)] in ExprEntities. Do keep in mind that there's nothing inherently wrong with it.

Now consider those two elements' patterns, with the input some fake syntax of all players. Remember how Skript does it:

  • it first tries the optional group, but doesn't match so it moves forward in the pattern, then comes a space literal but it's irrelevant here;
  • now comes %entitydatas%, but Skript proceeds to check for the stuff after it; this means, after a few tries, it will have split up the input into some fake syntax and of all players; the latter is matched against [(in|of) ([world[s]] %-worlds%|1¦%-chunks%)] and this is where it fails, because all players cannot be collected using a Supplier and is not a world either, leading to the error;
  • assuming Skript wouldn't have failed on the previous step, it would've only now attempted to parse some fake syntax as entitydata.

TL;DR It's not ExprSets, or any other expression for that matter, but rather the way type pattern elements are matched against the input strings.

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 16, 2023

The issue is not really with ExprSets or its priority, but rather with how patterns are matched.

First we have to see how a %type% pattern element is matched. Let's consider the pattern %itemtype% with sauce and the input string dirt with sauce. The pattern, internally, looks like %itemtype%-> with sauce. The way Skript matches a type element is by first matching everything after it, then trying to find an expression suitable for that type. Basically, it first and foremost makes sure with sauce is there, then it considers whether dirt is a valid itemtype.

Back to the issue at hand now, Skript just happens to have the pattern [(all [[of] the]|the)] %*entitydatas% [(in|of) ([world[s]] %-worlds%|1¦%-chunks%)] in ExprEntities. Do keep in mind that there's nothing inherently wrong with it.

Now consider those two elements' patterns, with the input some fake syntax of all players. Remember how Skript does it:

* it first tries the optional group, but doesn't match so it moves forward in the pattern, then comes a space literal but it's irrelevant here;

* now comes `%entitydatas%`, but Skript proceeds to check for the stuff _after_ it; this means, after a few tries, it will have split up the input into `some fake syntax` and `of all players`; the latter is matched against `[(in|of) ([world[s]] %-worlds%|1¦%-chunks%)]` and this is where it fails, because `all players` cannot be collected using a Supplier and is not a world either, leading to the error;

* assuming Skript wouldn't have failed on the previous step, it would've only now attempted to parse `some fake syntax` as entitydata.

TL;DR It's not ExprSets, or any other expression for that matter, but rather the way type pattern elements are matched against the input strings.

Yes.
ExprSets having a very transient pattern doesn't help Skript out in figuring this out, so we have to adjust how it works.
In my case just changing the parsing order fixes it. So Skript grabs ExprEntities before ExprSets. @Fusezion can you test that this is the case for you aswell since you found this issue too?
The other way is to have it not error as I originally had, so that Skript can keep looking for the correct input in the pattern.
I do agree that more context could be provided to find the best result.

@UnderscoreTud
Copy link
Member

Are we now supposed to change all expressions to accommodate this?

P.S. You mentioned the wrong person.

@TheLimeGlass
Copy link
Collaborator Author

Are we now supposed to change all expressions to accommodate this?

P.S. You mentioned the wrong person.

No, Skript is capable of finding the correct pattern in most cases. We have to do small adjustments like this pull request.

@Pikachu920
Copy link
Member

regardless of the rest of the discussion I am a little cautious about using PATTERN_MATCHES_EVERYTHING when the pattern doesn't match everything. if that's part of the desired fix, maybe we need a more specific ExpressionType

@sovdeeth
Copy link
Member

sovdeeth commented Oct 17, 2023

It solved the issue for me. Tud was saying an error should be printed, but I can reset this pull request back to the original commit, the original issue I had already solved. I can't take this seriously when you stated the issue never existed to begin with. Please do a clean reset test. Just changing the expression type solved the issue for me.

I would love if you could send your exact server environment as a zip because I cannot for the life of me replicate the fix. No matter what I do, build it myself, clean, reinstall, run the nightly, it still shows the same error. If anyone else can replicate the fix, please send me your environment too, because I really would like to know what's wrong with my environment in that case.

nightly:
image

self-built with clean build:
image

@TheLimeGlass
Copy link
Collaborator Author

TheLimeGlass commented Oct 17, 2023

It solved the issue for me. Tud was saying an error should be printed, but I can reset this pull request back to the original commit, the original issue I had already solved. I can't take this seriously when you stated the issue never existed to begin with. Please do a clean reset test. Just changing the expression type solved the issue for me.

I would love if you could send your exact server environment as a zip because I cannot for the life of me replicate the fix. No matter what I do, build it myself, clean, reinstall, run the nightly, it still shows the same error. If anyone else can replicate the fix, please send me your environment too, because I really would like to know what's wrong with my environment in that case.

nightly: image

self-built with clean build: image

I didn't test the fix on 2.7.1. I use a custom 2.8.0-dev version on my server (basically all my pulls in one jar), so I just cherry picked this fix to it, and it solved it. Something on 2.8.0 solves the issue. It's probably my literal reparsing and event value collecting pull requests saving the day.
I bet on 2.7.1 it would require no error like this pull request originally did in order to fix, otherwise if you can replicate that this gets fixed on 2.8 it can be targeted to 2.8.

I personally still thing just removing the error is good, but others had opinions about keeping it, so it would be up for debate.

@sovdeeth
Copy link
Member

I merged this branch into dev/feature and built off of that, and still got the same issue. Can you send your Skript jar at the very least, please?

image

@UnderscoreTud
Copy link
Member

UnderscoreTud commented Oct 17, 2023

@sovdeeth I already explained the issue up above. It has nothing to do with this pull request nor the expression its attempting to "fix". You can't really call it a bug because it is behaving as intended and you can't really do anything about it without majorly hurting the parse time

@APickledWalrus APickledWalrus merged commit e5c4d4a into dev/patch Dec 1, 2023
5 checks passed
@APickledWalrus APickledWalrus deleted the fix/expr-sets branch December 1, 2023 19:25
sovdeeth added a commit that referenced this pull request Dec 17, 2023
* Fix ExprRandomNumber using a method from Java 17 (#6022)

* Fix changing remaining time of command cooldown (#6021)

Update ScriptCommand.java

Co-authored-by: Moderocky <admin@moderocky.com>

* Bump version to 2.7.1 (#5993)

Co-authored-by: Moderocky <admin@moderocky.com>

* fix 3 stray INSERT VERSIONs from 2.7.0 (#6027)

correct incorrect values

* Fix Documentation Actions on dev/patch (#6042)

* Tidy up parts of config class. (#6025)

* Add Release Model Document (#6041)

Add release model document

Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>
Co-authored-by: Moderocky <admin@moderocky.com>

* (Cherry Pick) Fix cast throwing if existing variable for command storage exists (#5942) (#6026)

Fix cast throwing if existing variable for command storage exists (#5942)

* Fix cast throwing if existing variable for command storage exists

* Update src/main/java/ch/njol/skript/command/ScriptCommand.java



---------

Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>
Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>

* (Cherry Pick) Fix NPE with invalid attributes and clean up ExprEntityAttribute (#5978) (#6023)

Fix NPE with invalid attributes and clean up ExprEntityAttribute (#5978)

* Avoid NPE and clean up class

* Update ExprEntityAttribute.java

* Update src/main/java/ch/njol/skript/expressions/ExprEntityAttribute.java



* Update src/main/java/ch/njol/skript/expressions/ExprEntityAttribute.java

---------

Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com>
Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>

* Fix multiple aliases sections not working (#6050)

* Fix error when unloading a script with multiple variables sections (#6047)

* Returns the old 2.6.4 duplicate variables section behaviour.

* Add an error but i don't know what it's for

* Add lots of brackets to keep walrus happy :}}}

* Add load tracker to prevent multiple loading.

* Prevent variable data wipe, fix another bug

* Support IDEs from the dark ages that don't know what a star is and think it orbits the earth or something

* add a test

---------

Co-authored-by: APickledWalrus <apickledwalrus@gmail.com>

* Bump actions/checkout from 3 to 4 (#6029)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

* ⚒ Disable Javadocs generation for nightly docs & improvements (#6059)

* Let's see if I am good at GH actions 🤞

* ops!

* Use proper docs template reference when possible

* Disable nightly javadocs generation with an option

Each javadoc is ~50mb, which was causing the big size of the docs! while each docs generation is ~2mb only

* Fix building

* Revert pull changes

They are not what fixed the issue, probably the old PRs aren't syncing for some reason

* Update build.gradle

---------

Co-authored-by: Moderocky <admin@moderocky.com>

* Change the target branch of dependabot (#6063)

Update dependabot.yml

* ⚒ Fix stop all sounds NPE (#6067)

* Bump actions/checkout from 3 to 4 (#6069)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>

* Bump org.gradle.toolchains.foojay-resolver-convention from 0.5.0 to 0.7.0 (#6070)

Bump org.gradle.toolchains.foojay-resolver-convention

Bumps org.gradle.toolchains.foojay-resolver-convention from 0.5.0 to 0.7.0.

---
updated-dependencies:
- dependency-name: org.gradle.toolchains.foojay-resolver-convention
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>

* Bump org.easymock:easymock from 5.1.0 to 5.2.0 (#6071)

Bumps [org.easymock:easymock](https://github.com/easymock/easymock) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/easymock/easymock/releases)
- [Changelog](https://github.com/easymock/easymock/blob/master/ReleaseNotes.md)
- [Commits](easymock/easymock@easymock-5.1.0...easymock-5.2.0)

---
updated-dependencies:
- dependency-name: org.easymock:easymock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>

* Bump io.papermc.paper:paper-api from 1.20.1-R0.1-SNAPSHOT to 1.20.2-R0.1-SNAPSHOT (#6072)

* Bump io.papermc.paper:paper-api

Bumps io.papermc.paper:paper-api from 1.20.1-R0.1-SNAPSHOT to 1.20.2-R0.1-SNAPSHOT.

---
updated-dependencies:
- dependency-name: io.papermc.paper:paper-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply 1.20.2 to the test runner

* Deprecate org.bukkit.util.Consumer usage in EntityData

* Adapt against the Java Consumer instead of Bukkit's

* Resolve existing method deprecation

* Adapt against the Java Consumer instead of Bukkit's

* Update developer note

* Result in reflection for Bukkit Consumer

* Resolve ThrownPotion Consumer

* Result in reflection for Bukkit Consumer

* Pretty else if

* Add common reflective spawn method.

* Use common spawn method in potion class.

* Remove old suppression!

* Whoops I forgot about the consumer

* Don't need reflection import anymore :)

* Thrown potion class

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>
Co-authored-by: TheLimeGlass <seantgrover@gmail.com>
Co-authored-by: Moderocky <admin@moderocky.com>

* Pull request template defaults (#5665)

Update pull_request_template.md

* Fix EvtPlayerChunkEnter Comparison & Cleanup (#5965)

Initial

(cherry picked from commit 389c002)

Co-authored-by: Moderocky <admin@moderocky.com>

* Fixes EffSecSpawn not properly handling local variables created within the section (#6033)

Communicate local variables between consumer calls

thanks pickle

Co-authored-by: Moderocky <admin@moderocky.com>

* Remove PlayerPreprocessCommandEvent listener and clean up Commands (#5966)

* Remove PPCE listener and clean up Commands

* Apply suggestions from code review

Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>

* Update Commands.java

* we hate breaking changes

---------

Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>
Co-authored-by: Moderocky <admin@moderocky.com>

* Clean up vector classes and fix a few bugs.

* More improvements

* Apply suggestions from code review

Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>

* Budget Expansion

* Fix Logging Issues In ExpressionEntryData (#6081)

Fix duplicate logging

* Prepare For Release 2.7.1 (#6082)

* Update Minecraft wiki links to new domain (#6078)

* ⚒ Fix fake player count paper check error (#6090)

* Fix Command Help (#6080)

Fix issues and cleanup CommandHelp class

Co-authored-by: Moderocky <admin@moderocky.com>

* Bump net.kyori:adventure-text-serializer-bungeecord from 4.3.0 to 4.3.1 (#6084)

Bumps [net.kyori:adventure-text-serializer-bungeecord](https://github.com/KyoriPowered/adventure-platform) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/KyoriPowered/adventure-platform/releases)
- [Commits](KyoriPowered/adventure-platform@v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: net.kyori:adventure-text-serializer-bungeecord
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>

* Fix unloading/reloading a directory in the scripts effect (#6106)

* Moved unloading to a common method.

* Accidental double space 😬

* Force UTF-8 encoding for Gradle daemon (#6103)

Co-authored-by: Moderocky <admin@moderocky.com>

* Corrected Javadocs name, title (#6038)

* Javadoc Title,Name

* Update .gitignore

Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>

---------

Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>
Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>
Co-authored-by: Moderocky <admin@moderocky.com>

* Rebase JUnit references fix for dev/patch (#6057)

* Fix options issue in functions (#6121)

* Fix command permission messages (2.7.1 issue) (#6126)

re-add permission handling during PPCE to get around spigot behavior.

* Fix stack overflow when stringifying block inventories. (#6117)

* Fix stack overflow when stringifying block inventories.

* Blanket catch until a better solution is found.

* Fix comparison of cyclical types (specifically comparing times) (#6128)

* Add cyclical type helper.

* Make time cyclical.

* Add special comparison for cyclical types.

* Add some tests.

* Fix floating point rounding error in loop N times (#6132)

Fix floating point error in loop X times.

* Fix Sorted List Expression (#6102)

* Fix ExprSortedList

* Update src/main/java/ch/njol/skript/expressions/ExprSortedList.java

Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>

* Fix test

Co-authored-by: Moderocky <admin@moderocky.com>

---------

Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>
Co-authored-by: Moderocky <admin@moderocky.com>

* Fix colour codes being reset in reload message. (#6150)

Fix colour codes being reset.

* Fix ExprDurability's Changer (#6154)

* Fix ExprDurability's changer

* Change method name.

* Add simple test.

---------

Co-authored-by: Moderocky <admin@moderocky.com>

* Catch the exception when pushing entity by non finite vector (#5765)

* Fix issues with ExprDrops (#6130)

* refactor ExprDrops, fix bugs, add test

fixed setting drops to multiple items/experience values at once
fixed null values being left in drops after removing items
maintained behavior but behavior needs a big update

* small cleanup

* Fix JUnit test location

* import shenanigans

---------

Co-authored-by: Moderocky <admin@moderocky.com>

* Prepare For Release (2.7.2) (#6166)

* Prevent InventoryHolder -> X chaining (#6171)

* Prevent InventoryHolder -> X chaining

* Improve Location Comparison (#6205)

* Allow asynchronous SkriptEvent#check execution (#6201)

* Fix ExprSets conflicting (#6123)

* Prepare for Release (2.7.3) (#6208)

* Further corrections

* Fix NPE issue with drops in 1.20.2

* Update StructFunction.java

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: _tud <mmbakkar06@gmail.com>
Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com>
Co-authored-by: Moderocky <admin@moderocky.com>
Co-authored-by: LimeGlass <16087552+TheLimeGlass@users.noreply.github.com>
Co-authored-by: Ayham Al Ali <20037329+AyhamAl-Ali@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: TheLimeGlass <seantgrover@gmail.com>
Co-authored-by: DelayedGaming <72163224+DelayedGaming@users.noreply.github.com>
Co-authored-by: Spongecade <spongecade.129@gmail.com>
Co-authored-by: MihirKohli <55236890+MihirKohli@users.noreply.github.com>
Co-authored-by: _tud <98935832+UnderscoreTud@users.noreply.github.com>
Co-authored-by: 3meraldK <48335651+3meraldK@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.7 Targeting a 2.7.X version release bug An issue that needs to be fixed. Alternatively, a PR fixing an issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants