Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9caa9f8dd7 | ||
|
|
68f2b97f97 | ||
|
|
75584fa3c2 | ||
|
|
324b01a6dc | ||
|
|
79e7212336 | ||
|
|
9db76f31c9 | ||
|
|
36c07ad2b5 | ||
|
|
75935c7df0 | ||
|
|
bb49775203 | ||
|
|
0d81abefb4 | ||
|
|
f6a32e1ddd |
No files matched your search
@@ -11,9 +11,17 @@ jobs:
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 17
|
||||
- name: Change wrapper permissions
|
||||
run: chmod +x ./gradlew
|
||||
- name: Upload to Discord
|
||||
run: ./gradlew discord --stacktrace
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.pull_request.title, '[ci skip]')
|
||||
env:
|
||||
discord_webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
discord_webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
action_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||
- name: Capture build artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Artifacts
|
||||
path: build/libs/
|
||||
@@ -0,0 +1,36 @@
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
previousVersion:
|
||||
description: 'Previous Version (Do not include v prefix, must be same as the last version tag! Example: 1.4.1)'
|
||||
required: true
|
||||
version:
|
||||
description: 'Version (Do not include v prefix! Example: 1.4.2)'
|
||||
required: true
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
- name: Fetch tags
|
||||
run: git fetch --tags
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 17
|
||||
- name: Change wrapper permissions
|
||||
run: chmod +x ./gradlew
|
||||
- name: Upload to websites
|
||||
run: ./gradlew publishThirdParty --stacktrace -PlastTag="v${{ github.event.inputs.previousVersion }}" -PcurrentTag="v${{ github.event.inputs.version }}"
|
||||
if: |
|
||||
!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.pull_request.title, '[ci skip]')
|
||||
env:
|
||||
modrinth_token: ${{ secrets.MODRINTH_TOKEN }}
|
||||
curseforge_token: ${{ secrets.CURSEFORGE_TOKEN }}
|
||||
github_token: ${{ secrets.GH_API_KEY }}
|
||||
discord_release_webhook: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
|
||||
- name: Capture build artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Artifacts
|
||||
path: build/libs/
|
||||
+373
@@ -0,0 +1,373 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
||||
+4
-68
@@ -1,13 +1,11 @@
|
||||
import javax.net.ssl.HttpsURLConnection
|
||||
import java.nio.file.Files
|
||||
|
||||
plugins {
|
||||
id 'fabric-loom' version '0.12-SNAPSHOT'
|
||||
id 'fabric-loom' version '1.0-SNAPSHOT'
|
||||
id 'maven-publish'
|
||||
id "io.freefair.lombok" version "6.0.0-m2"
|
||||
id "com.diffplug.spotless" version "5.17.1"
|
||||
}
|
||||
|
||||
apply from: 'https://raw.githubusercontent.com/DarkKronicle/GradleScripts/main/gradle/publish.gradle'
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
|
||||
@@ -31,7 +29,7 @@ dependencies {
|
||||
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
|
||||
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
||||
modImplementation "fi.dy.masa.malilib:malilib-fabric-1.19.0:${project.malilib_version}"
|
||||
modImplementation "fi.dy.masa.malilib:malilib-fabric-1.19.4:${project.malilib_version}"
|
||||
modImplementation "com.github.DarkKronicle:AdvancedChatCore:${project.advancedchat_version}"
|
||||
}
|
||||
|
||||
@@ -60,19 +58,6 @@ jar {
|
||||
from "LICENSE.txt"
|
||||
}
|
||||
|
||||
spotless {
|
||||
ratchetFrom 'origin/main'
|
||||
format 'misc', {
|
||||
// define the files to apply `misc` to
|
||||
target '*.gradle', '*.md', '.gitignore'
|
||||
|
||||
// define the steps to apply to those files
|
||||
trimTrailingWhitespace()
|
||||
indentWithTabs() // or spaces. Takes an integer argument if you don't like 4
|
||||
endWithNewline()
|
||||
}
|
||||
}
|
||||
|
||||
// configure the maven publication
|
||||
publishing {
|
||||
publications {
|
||||
@@ -93,52 +78,3 @@ publishing {
|
||||
// mavenLocal()
|
||||
}
|
||||
}
|
||||
|
||||
task discord {
|
||||
dependsOn build
|
||||
|
||||
doLast {
|
||||
String webhook
|
||||
if (additionalProperties["discord_webhook"] != null) {
|
||||
webhook = additionalProperties["discord_webhook"]
|
||||
} else if (System.getenv("discord_webhook") != null) {
|
||||
webhook = System.getenv("discord_webhook")
|
||||
} else {
|
||||
System.out.println("No webhook found...")
|
||||
return
|
||||
}
|
||||
|
||||
File file = remapJar.archiveFile.get().asFile
|
||||
String commitHash = 'git rev-parse --verify --short HEAD'.execute().text.trim()
|
||||
String fileName = "$project.archives_base_name}-${project.mod_version}-${commitHash}.jar"
|
||||
String text = "<:Kronos:799707832399691867> **${project.archives_base_name} v${project.mod_version}-${commitHash} for ${project.minecraft_version}**"
|
||||
URL url = new URL(webhook)
|
||||
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection()
|
||||
|
||||
def cmdLine = "git log --format=%B -n 1"
|
||||
def procCommit = cmdLine.execute()
|
||||
String changeLog = procCommit.in.getText()
|
||||
text = text + "\n" + changeLog
|
||||
|
||||
String boundary = UUID.randomUUID().toString()
|
||||
connection.setRequestMethod("POST")
|
||||
connection.setDoOutput(true)
|
||||
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary)
|
||||
DataOutputStream stream = new DataOutputStream(connection.getOutputStream());
|
||||
|
||||
stream.writeBytes("--" + boundary + "\r\n")
|
||||
stream.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + fileName + "\"\r\n\r\n")
|
||||
stream.write(Files.readAllBytes(file.toPath()))
|
||||
stream.writeBytes("\r\n")
|
||||
stream.writeBytes("--" + boundary + "\r\n");
|
||||
stream.writeBytes('Content-Disposition: form-data; name="content"\r\n\r\n' + text + '\r\n')
|
||||
stream.writeBytes("--" + boundary + "--\r\n")
|
||||
|
||||
stream.flush()
|
||||
stream.close()
|
||||
|
||||
connection.getInputStream().close()
|
||||
connection.disconnect()
|
||||
}
|
||||
|
||||
}
|
||||
+24
-8
@@ -1,13 +1,29 @@
|
||||
minecraft_version=1.19
|
||||
yarn_mappings=1.19+build.4
|
||||
loader_version=0.14.8
|
||||
fabric_api_version=0.57.0+1.19
|
||||
minecraft_version=1.19.4
|
||||
yarn_mappings=1.19.4+build.1
|
||||
loader_version=0.14.11
|
||||
fabric_api_version=0.76.0+1.19.4
|
||||
|
||||
mod_version=1.3.3
|
||||
mod_version=1.3.8
|
||||
maven_group=io.github.darkkronicle
|
||||
archives_base_name=AdvancedChatHUD
|
||||
|
||||
malilib_version = 0.13.0
|
||||
startParameter.excludedTaskNames=spotlessCheck
|
||||
malilib_version = 0.15.2
|
||||
org.gradle.jvmargs=-Xmx1G
|
||||
advancedchat_version=1.5.3-build1
|
||||
advancedchat_version=v1.5.10
|
||||
|
||||
# Uploading data
|
||||
curseforge_slug=advancedchathud
|
||||
curseforge_id=541708
|
||||
|
||||
modrinth_slug=advancedchathud
|
||||
modrinth_id=lBFvglCF
|
||||
|
||||
# default_release_type can be stable, beta, or alpha
|
||||
default_release_type=stable
|
||||
project_name=AdvancedChatHUD
|
||||
project_url=https://modrinth.com/mod/advancedchathud
|
||||
project_logo=https://raw.githubusercontent.com/Prospector/images/master/modmenu-logo.png
|
||||
project_color=0x134bff
|
||||
changelog_hide_unimportant_commits=true
|
||||
changelog_max_commit_search=200
|
||||
discord_webhook_changelog_line_limit=10
|
||||
@@ -49,13 +49,14 @@ public class SharingScreen extends GuiBase {
|
||||
text.setMaxLength(12800);
|
||||
if (starting != null) {
|
||||
text.setText(starting);
|
||||
text.setTextFieldFocused(true);
|
||||
text.setFocused(true);
|
||||
}
|
||||
|
||||
text.changeFocus(true);
|
||||
text.setFocused(true);
|
||||
text.setDrawsBackground(true);
|
||||
text.setEditable(true);
|
||||
text.changeFocus(true);
|
||||
text.setFocused(true);
|
||||
|
||||
this.addTextField(text, null);
|
||||
|
||||
this.addButton(
|
||||
|
||||
@@ -128,6 +128,7 @@ public class ChatWindow {
|
||||
for (int i = messages.size() - 1; i >= 0; i--) {
|
||||
addMessage(messages.get(i), false, false);
|
||||
}
|
||||
WindowManager.getInstance().setSelected(this);
|
||||
}
|
||||
|
||||
public void addMessage(HudChatMessage message) {
|
||||
@@ -430,7 +431,7 @@ public class ChatWindow {
|
||||
labelWidth,
|
||||
scaledBar,
|
||||
tab.getBorderColor().color());
|
||||
DrawableHelper.drawCenteredText(
|
||||
DrawableHelper.drawCenteredTextWithShadow(
|
||||
matrixStack,
|
||||
MinecraftClient.getInstance().textRenderer,
|
||||
tab.getAbbreviation(),
|
||||
@@ -524,7 +525,7 @@ public class ChatWindow {
|
||||
double mouseX = client.mouse.getX() / 2;
|
||||
double mouseY = client.mouse.getY() / 2;
|
||||
if (isMouseOverVisibility(mouseX, mouseY)) {
|
||||
DrawableHelper.drawStringWithShadow(
|
||||
DrawableHelper.drawCenteredTextWithShadow(
|
||||
matrixStack,
|
||||
client.textRenderer,
|
||||
visibility.getDisplayName(),
|
||||
|
||||
@@ -24,7 +24,11 @@ import io.github.darkkronicle.advancedchathud.itf.IChatHud;
|
||||
import io.github.darkkronicle.advancedchathud.tabs.AbstractChatTab;
|
||||
import io.github.darkkronicle.advancedchathud.tabs.CustomChatTab;
|
||||
import io.github.darkkronicle.advancedchathud.tabs.MainChatTab;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
@@ -38,7 +42,7 @@ public class WindowManager implements IRenderer, ResolutionEventHandler {
|
||||
|
||||
private static final WindowManager INSTANCE = new WindowManager();
|
||||
private final MinecraftClient client;
|
||||
private LinkedList<ChatWindow> windows = new LinkedList<>();
|
||||
private final List<ChatWindow> windows = new ArrayList<>(8);
|
||||
private int dragX = 0;
|
||||
private int dragY = 0;
|
||||
private ChatWindow drag = null;
|
||||
@@ -56,13 +60,19 @@ public class WindowManager implements IRenderer, ResolutionEventHandler {
|
||||
windows.clear();
|
||||
}
|
||||
|
||||
private void addWindow(ChatWindow window) {
|
||||
// Remove duplicates being spawned from somewhere
|
||||
windows.removeIf(w -> w == window);
|
||||
windows.add(window);
|
||||
}
|
||||
|
||||
public void loadFromJson(JsonArray array) {
|
||||
reset();
|
||||
if (!HudConfigStorage.General.VANILLA_HUD.config.getBooleanValue()) {
|
||||
if (array == null || array.size() == 0) {
|
||||
ChatWindow base = new ChatWindow(AdvancedChatHud.MAIN_CHAT_TAB);
|
||||
base.setSelected(true);
|
||||
windows.add(base);
|
||||
addWindow(base);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
@@ -85,7 +95,7 @@ public class WindowManager implements IRenderer, ResolutionEventHandler {
|
||||
AdvancedChatHud.LOGGER.error("Error while loading in ChatWindow ", err);
|
||||
continue;
|
||||
}
|
||||
windows.add(w);
|
||||
addWindow(w);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,8 +184,8 @@ public class WindowManager implements IRenderer, ResolutionEventHandler {
|
||||
for (ChatWindow w : windows) {
|
||||
w.setSelected(window.equals(w));
|
||||
}
|
||||
windows.remove(window);
|
||||
windows.addFirst(window);
|
||||
windows.removeIf(w -> w == window);
|
||||
windows.add(0, window);
|
||||
|
||||
if (!HudConfigStorage.General.CHANGE_START_MESSAGE.config.getBooleanValue() || !(client.currentScreen instanceof AdvancedChatScreen screen)) {
|
||||
return;
|
||||
@@ -297,7 +307,7 @@ public class WindowManager implements IRenderer, ResolutionEventHandler {
|
||||
sel = window;
|
||||
}
|
||||
window.setPosition(sel.getConvertedX() + 15, sel.getConvertedY() + 15);
|
||||
windows.add(window);
|
||||
// windows.add(window);
|
||||
setSelected(window);
|
||||
}
|
||||
|
||||
@@ -353,7 +363,6 @@ public class WindowManager implements IRenderer, ResolutionEventHandler {
|
||||
window.setRelativeDimensions(hovered.getWidthPercent(), hovered.getHeightPercent());
|
||||
window.setVisibility(hovered.getVisibility());
|
||||
window.setPosition(x, y);
|
||||
windows.add(window);
|
||||
setSelected(window);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,8 +40,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
public abstract class MixinChatHud implements IChatHud {
|
||||
|
||||
@Shadow @Final private MinecraftClient client;
|
||||
@Shadow @Final private List<ChatHudLine<Text>> messages;
|
||||
@Shadow @Final private List<ChatHudLine<OrderedText>> visibleMessages;
|
||||
@Shadow @Final private List<ChatHudLine> messages;
|
||||
@Shadow @Final private List<ChatHudLine.Visible> visibleMessages;
|
||||
|
||||
@Shadow private int scrolledLines;
|
||||
@Shadow private boolean hasUnreadNewMessages;
|
||||
@@ -72,7 +72,7 @@ public abstract class MixinChatHud implements IChatHud {
|
||||
}
|
||||
|
||||
@Inject(at = @At("HEAD"), method = "render", cancellable = true)
|
||||
private void render(MatrixStack stack, int delta, CallbackInfo ci) {
|
||||
private void render(MatrixStack stack, int delta, int mouseX, int mouseY, CallbackInfo ci) {
|
||||
// Ignore rendering vanilla chat if disabled
|
||||
if (!HudConfigStorage.General.VANILLA_HUD.config.getBooleanValue()) {
|
||||
ci.cancel();
|
||||
@@ -136,8 +136,7 @@ public abstract class MixinChatHud implements IChatHud {
|
||||
OrderedText orderedText;
|
||||
for (Iterator<OrderedText> text = list.iterator();
|
||||
text.hasNext();
|
||||
this.visibleMessages.add(
|
||||
0, new ChatHudLine<>(msg.getCreationTick(), orderedText, msg.getId()))) {
|
||||
this.visibleMessages.add(0, new ChatHudLine.Visible(msg.getCreationTick(), orderedText, msg.getIndicator(), !text.hasNext()))) {
|
||||
orderedText = text.next();
|
||||
if (this.isChatFocused() && this.scrolledLines > 0) {
|
||||
this.hasUnreadNewMessages = true;
|
||||
@@ -150,8 +149,7 @@ public abstract class MixinChatHud implements IChatHud {
|
||||
this.visibleMessages.remove(this.visibleMessages.size() - 1);
|
||||
}
|
||||
|
||||
this.messages.add(
|
||||
0, new ChatHudLine<>(msg.getCreationTick(), msg.getDisplayText(), msg.getId()));
|
||||
this.messages.add(0, new ChatHudLine(msg.getCreationTick(), msg.getDisplayText(), msg.getSignature(), msg.getIndicator()));
|
||||
while (this.messages.size()
|
||||
> HudConfigStorage.General.STORED_LINES.config.getIntegerValue()) {
|
||||
this.messages.remove(this.messages.size() - 1);
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"advancedchat.config.yes": "正确!",
|
||||
|
||||
"advancedchathud.gui.button.addtab": "新建聊天选项卡",
|
||||
"advancedchathud.gui.button.reload": "重新加载构造标签栏",
|
||||
"advancedchathud.tab.advancedchathud": "§9HUD§r",
|
||||
"advancedchathud.tab.general": "§7聊天HUD§r",
|
||||
"advancedchathud.tab.tabs": "§b聊天选项卡§r",
|
||||
|
||||
"advancedchathud.config.general.timeformat": "时间格式",
|
||||
"advancedchathud.config.general.info.timeformat": "如果同时为§9聊天 HUD§r和§a聊天日志§r启用了显示时间,则§6显示时间§r。\n有关格式请参阅§6简单日期格式§r类。",
|
||||
"advancedchathud.config.general.chatheads": "显示聊天头像",
|
||||
"advancedchathud.config.general.info.chatheads": "信息发送人的§6头像§r是否显示在其信息旁边",
|
||||
"advancedchathud.gui.button.matches": "§6匹配§r",
|
||||
"advancedchathud.gui.button.back": "返回",
|
||||
"advancedchathud.gui.button.export": "导出",
|
||||
"advancedchathud.gui.button.addmatch": "§a添加匹配项§r",
|
||||
"advancedchathud.config.match.remove": "§c删除§r",
|
||||
"advancedchathud.config.match.screen.name": "匹配",
|
||||
|
||||
"advancedchathud.config.general.vanillahud": "移除原版聊天HUD",
|
||||
"advancedchathud.config.general.info.vanillahud": "启用§6原版聊天HUD§r,其作用主要类似于§9聊天窗口§r.\n§6原版聊天HUD§r可以使用§9聊天选项卡§r 如果您单击它然后更改选项卡",
|
||||
"advancedchathud.config.general.width": "默认聊天宽度",
|
||||
"advancedchathud.config.general.info.width": "§9聊天HUD§r的§6宽度§r\n覆盖原版聊天宽度!",
|
||||
"advancedchathud.config.general.height": "默认聊天高度",
|
||||
"advancedchathud.config.general.info.height": "§9聊天HUD§r的§6高度§r\n覆盖原版聊天高度!",
|
||||
"advancedchathud.config.general.showtabs": "显示聊天标签页",
|
||||
"advancedchathud.config.general.info.showtabs": "§b聊天选项卡§r是否在§9聊天HUD§r中的§6边框§r上可见",
|
||||
"advancedchathud.config.general.leftpad": "左侧聊天框间距",
|
||||
"advancedchathud.config.general.info.leftpad": "聊天框的§6左侧§r与§6文本开始§r的位置之间的间距",
|
||||
"advancedchathud.config.general.rightpad": "右侧聊天框间距",
|
||||
"advancedchathud.config.general.info.rightpad": "聊天框的§6右侧§r与§6文本结束§r的位置之间的间距",
|
||||
"advancedchathud.config.general.bottompad": "下侧聊天框间距",
|
||||
"advancedchathud.config.general.info.bottompad": "聊天框的§6底侧§r与§6最新消息§r之间的间距",
|
||||
"advancedchathud.config.general.toppad": "上侧聊天框间距",
|
||||
"advancedchathud.config.general.info.toppad": "聊天框的§6顶侧与§6旧消息§r之间的间距量",
|
||||
"advancedchathud.config.general.tabsidechars": "最大缩写长度",
|
||||
"advancedchathud.config.general.info.tabsidechars": "用于§b聊天选项卡§r中的§6缩写§r的最多字符数\n影响聊天选项卡的外观§6边框§r和§9聊天HUD§r",
|
||||
"advancedchathud.config.general.visibility": "聊天可见性",
|
||||
"advancedchathud.config.general.info.visibility": "§9聊天HUD§r的显示模式\n§6原版§r-§9聊天HUD§r渲染就像§6原版\n§a总是§r-渲染§9聊天HUD§6在任何时候\n§c仅对焦§r-渲染§9聊天HUD§r当§6聊天框§r被打开",
|
||||
"advancedchathud.config.visibility.vanilla": "§6原版§r",
|
||||
"advancedchathud.config.visibility.always": "§a总是§r",
|
||||
"advancedchathud.config.visibility.focus_only": "§c仅对焦§r",
|
||||
"advancedchathud.config.general.linespace": "行距",
|
||||
"advancedchathud.config.general.info.linespace": "聊天栏的§6行距§r(以像素为单位)",
|
||||
"advancedchathud.config.general.x": "默认聊天 X",
|
||||
"advancedchathud.config.general.info.x": "聊天框的§6X坐标§r,从屏幕§6左下角开始§r",
|
||||
"advancedchathud.config.general.y": "默认聊天 Y",
|
||||
"advancedchathud.config.general.info.y": "聊天框的§6Y坐标§r,从屏幕§6左下角开始§r",
|
||||
"advancedchathud.config.general.messagespace": "在消息之间的间距",
|
||||
"advancedchathud.config.general.info.messagespace": "§6单个消息§r之间间距",
|
||||
"advancedchathud.config.general.chatscale": "聊天扩展",
|
||||
"advancedchathud.config.general.info.chatscale": "聊天框的文本§6内部§r的§6大小§r。不影响§9聊天 HUD§r的大小!",
|
||||
"advancedchathud.config.general.fadetime": "淡入淡出速度",
|
||||
"advancedchathud.config.general.info.fadetime": "消息§6淡出§r的速度",
|
||||
"advancedchathud.config.general.fadestart": "淡进淡出的时间",
|
||||
"advancedchathud.config.general.info.fadestart": "在新收到的消息开始消失之前的§6刻数§r",
|
||||
"advancedchathud.config.general.fadetype": "淡入淡出样式",
|
||||
"advancedchathud.config.general.info.fadetype": "用于淡入淡出动画的§6缓动函数§r\n原版使用§6线性§r缓动",
|
||||
"advancedchat.config.easing.linear": "§c线性缓动§r",
|
||||
"advancedchat.config.easing.sine": "§6正弦缓动§r",
|
||||
"advancedchat.config.easing.quad": "§e二次缓动§r",
|
||||
"advancedchat.config.easing.quart": "§a四次缓动§r",
|
||||
"advancedchat.config.easing.circ": "§b曲线缓动§r",
|
||||
"advancedchathud.config.general.hudbackgroundcolor": "HUD背景颜色",
|
||||
"advancedchathud.config.general.info.hudbackgroundcolor": "§9聊天HUD§r的§6背景颜色§r",
|
||||
"advancedchathud.config.general.emptytextcolor": "空文本颜色",
|
||||
"advancedchathud.config.general.info.emptytextcolor": "没有格式的文本的颜色(例如使用 §6§r格式化的文本)",
|
||||
"advancedchathud.config.general.hudlinetype": "背景行样式",
|
||||
"advancedchathud.config.general.info.hudlinetype": "§6未聚焦§r的§9聊天HUD§r的§6背景§r如何适应消息\n§6完整§r-使背景适合§9聊天HUD§r的§6宽度§r\n§b紧凑§r-使背景适合每§6行§r的长度",
|
||||
"advancedchathud.config.hudlinetype.full": "§6完整§r",
|
||||
"advancedchathud.config.hudlinetype.compact": "§b紧凑§r",
|
||||
"advancedchathud.config.general.alternatelines": "条纹化消息",
|
||||
"advancedchathud.config.general.info.alternatelines": "是否对其他§6每条消息§r的背景进行不同的颜色以创建§6条纹§r效果\n§7有助于区分消息§r",
|
||||
"advancedchathud.config.general.showtime": "显示时间",
|
||||
"advancedchathud.config.general.info.showtime": "§6时间§r是否显示在§9聊天HUD§r中\n格式可以在§7常规§r中配置",
|
||||
"advancedchathud.config.general.storedlines": "存储行",
|
||||
"advancedchathud.config.general.info.storedlines": "§9聊天HUD§r中存储的§6最大§r行数\n§7值过大可能会导致内存不足错误!§r",
|
||||
"advancedchathud.config.general.righttabbuttons": "右标签按钮",
|
||||
"advancedchathud.config.general.info.righttabbuttons": "§6选项卡按钮§r是否显示在右侧",
|
||||
"advancedchathud.config.general.renderinother": "在其他GUI中呈现聊天",
|
||||
"advancedchathud.config.general.info.renderinother": "§6选项卡按钮§r是否显示在右侧",
|
||||
"advancedchathud.config.general.scrolltime": "滚动时间",
|
||||
"advancedchathud.config.general.info.scrolltime": "完成滚动动画所需的时间(以毫秒为单位)",
|
||||
"advancedchathud.config.general.scrolltype": "滚动类型",
|
||||
"advancedchathud.config.general.info.scrolltype": "滚动动画的类型",
|
||||
"advancedchathud.config.general.persistenttext": "保留文本",
|
||||
"advancedchathud.config.general.info.persistenttext": "关闭§9聊天框§r后是否保留§6已输入但未发送§r的消息",
|
||||
"advancedchathud.config.general.moretext": "扩展文本限制",
|
||||
"advancedchathud.config.general.info.moretext": "超过§6256个字符§r限制的消息分为多个聊天消息",
|
||||
"advancedchathud.config.general.sendtocurrenttab": "始终将消息发送到焦点选项卡",
|
||||
"advancedchathud.config.general.info.sendtocurrenttab": "§6您发送的消息§r是否显示在当前焦点选项卡中,§6无论聊天过滤器是什么§r",
|
||||
"advancedchathud.config.general.changeStartMessage": "更改开始消息",
|
||||
"advancedchathud.config.general.info.changeStartMessage": "切换聊天窗口时是否更改开始消息",
|
||||
|
||||
"advancedchathud.config.tabmenu.configure": "§b配置§r",
|
||||
"advancedchathud.config.tabmenu.remove": "§c删除§r",
|
||||
"advancedchathud.config.tabdescription": "§7名称§r: <name> \n§a查找字符串§r: <find>\n§e查找类型§r: <findtype>",
|
||||
|
||||
"advancedchathud.gui.button.import": "导入选项卡",
|
||||
"advancedchathud.config.tab.name": "选项卡名称",
|
||||
"advancedchathud.config.tab.info.name": "选项卡在§6配置§r中的显示方式\n§7§o有意义地命名选项卡是一种很好的做法!§r",
|
||||
"advancedchathud.config.tab.order": "顺序",
|
||||
"advancedchathud.config.tab.info.order": "对选项卡进行排序的数字,如果此数字较低,则列表中将较高。",
|
||||
"advancedchathud.config.tab.startingmessage": "起始消息",
|
||||
"advancedchathud.config.tab.info.startingmessage": "§6选项卡聚焦时§r显示哪些文本",
|
||||
"advancedchathud.config.tab.abbreviation": "选项卡 HUD 缩写",
|
||||
"advancedchathud.config.tab.info.abbreviation": "如果在§9聊天HUD§r设置下启用了§6显示聊天选项卡§r,选项卡在§9聊天HUD§6一侧§r显示的内容",
|
||||
"advancedchathud.config.tab.forward": "将消息转发到主消息",
|
||||
"advancedchathud.config.tab.info.forward": "发送到此聊天选项卡的消息是否也显示在§6主聊天选项卡§r中",
|
||||
"advancedchathud.config.tab.forwardtoggle": "%s",
|
||||
"advancedchathud.config.tab.findstring": "查找字符串",
|
||||
"advancedchathud.config.tab.info.findstring": "将被§6剪切§r并§6转移到此选项卡§r的字符串",
|
||||
"advancedchathud.config.tab.findtype": "查找类型",
|
||||
"advancedchathud.config.tab.info.findtype": "如何找到匹配项\n§6文字§r-§6完全匹配§r字符串\n§e比较§r-像§6字符, §r但不§6区分大小写\n§b正则§r-将字符串解析为§6正则表达式\n§d所有§r-将§6所有§r文本传递到选项卡,无论要查找的字符串是什么",
|
||||
"advancedchathud.config.tab.maincolor": "主题色",
|
||||
"advancedchathud.config.tab.info.maincolor": "§b聊天选项卡§r的§6主题色§r",
|
||||
"advancedchathud.config.tab.bordercolor": "边框颜色",
|
||||
"advancedchathud.config.tab.info.bordercolor": "§b聊天选项卡§6边框§r的颜色",
|
||||
"advancedchathud.config.tab.innercolor": "背景颜色",
|
||||
"advancedchathud.config.tab.info.innercolor": "§b聊天选项卡§6背景§r的颜色",
|
||||
"advancedchathud.config.tab.showunread": "显示未读信息",
|
||||
"advancedchathud.config.tab.info.showunread": "是否为§b聊天选项卡§r显示§6未读消息数§r",
|
||||
|
||||
"advancedchathud.windowconfig.x": "窗口 X",
|
||||
"advancedchathud.windowconfig.info.x": "窗口的 X 值",
|
||||
"advancedchathud.windowconfig.y": "窗口 Y",
|
||||
"advancedchathud.windowconfig.info.y": "窗口的 Y 值",
|
||||
"advancedchathud.windowconfig.width": "窗口宽度",
|
||||
"advancedchathud.windowconfig.info.width": "窗口的宽度值",
|
||||
"advancedchathud.windowconfig.height": "窗口高度",
|
||||
"advancedchathud.windowconfig.info.height": "窗口的高度值",
|
||||
"advancedchathud.windowconfig.renderright": "右对齐",
|
||||
"advancedchathud.windowconfig.info.renderright": "文本应呈现与右侧对齐",
|
||||
"advancedchathud.windowconfig.rendertopfirst": "渲染顶部首先",
|
||||
"advancedchathud.windowconfig.info.rendertopfirst": "自上而下呈现消息",
|
||||
"advancedchathud.windowconfig.minimalist": "极简模式",
|
||||
"advancedchathud.windowconfig.info.minimalist": "启用不那么杂乱的窗口设计。当主动移动是不可能的。\n右键单击context menu可以切换此选项。",
|
||||
|
||||
|
||||
"advancedchat.config.findtype.literal": "§6文字§r",
|
||||
"advancedchat.config.findtype.upperlower": "§e比较§r",
|
||||
"advancedchat.config.findtype.regex": "§b正则§r",
|
||||
"advancedchat.config.findtype.all": "§d所有§r",
|
||||
|
||||
"advancedchathud.context.copied": "§a复制§r",
|
||||
|
||||
"advancedchathud.context.copy": "复制",
|
||||
"advancedchathud.context.delete": "删除",
|
||||
"advancedchathud.context.minimalist": "切换极简模式",
|
||||
"advancedchathud.context.removeallwindows": "删除所有窗口",
|
||||
"advancedchathud.context.clearallmessages": "清除所有信息",
|
||||
"advancedchathud.context.duplicatewindow": "复制窗口",
|
||||
"advancedchathud.context.configurewindow": "配置窗口",
|
||||
"advancedchathud.context.messageowner": "回复"
|
||||
}
|
||||
@@ -24,11 +24,11 @@
|
||||
"advancedchathud.mixins.json"
|
||||
],
|
||||
"depends": {
|
||||
"fabricloader": ">=0.8.9+build.204",
|
||||
"fabricloader": ">=0.14.18",
|
||||
"fabric": "*",
|
||||
"minecraft": ">=1.19",
|
||||
"malilib": ">=0.13.0",
|
||||
"advancedchatcore": ">=1.5.2-1.19"
|
||||
"minecraft": ">=1.19.4",
|
||||
"malilib": ">=0.15.2",
|
||||
"advancedchatcore": ">=1.5.10-1.19"
|
||||
},
|
||||
"custom": {
|
||||
"acmodule": true,
|
||||
|
||||
Reference in new issue
Block a user