mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-27 19:47:00 -05:00
Reformat and bump version
This commit is contained in:
190
LICENSE.md
190
LICENSE.md
@@ -4,160 +4,116 @@ GNU Lesser General Public License
|
||||
_Version 3, 29 June 2007_
|
||||
_Copyright © 2007 Free Software Foundation, Inc. <<http://fsf.org/>>_
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU
|
||||
General Public License, supplemented by the additional permissions listed below.
|
||||
|
||||
### 0. Additional Definitions
|
||||
|
||||
As used herein, “this License” refers to version 3 of the GNU Lesser
|
||||
General Public License, and the “GNU GPL” refers to version 3 of the GNU
|
||||
General Public License.
|
||||
As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to
|
||||
version 3 of the GNU General Public License.
|
||||
|
||||
“The Library” refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined
|
||||
below.
|
||||
|
||||
An “Application” is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on
|
||||
the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by
|
||||
the Library.
|
||||
|
||||
A “Combined Work” is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the “Linked
|
||||
Version”.
|
||||
A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of
|
||||
the Library with which the Combined Work was made is also called the “Linked Version”.
|
||||
|
||||
The “Minimal Corresponding Source” for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding
|
||||
any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not
|
||||
on the Linked Version.
|
||||
|
||||
The “Corresponding Application Code” for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application,
|
||||
including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the
|
||||
System Libraries of the Combined Work.
|
||||
|
||||
### 1. Exception to Section 3 of the GNU GPL
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
|
||||
|
||||
### 2. Conveying Modified Versions
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied
|
||||
by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may
|
||||
convey a copy of the modified version:
|
||||
|
||||
* **a)** under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
* **a)** under this License, provided that you make a good faith effort to ensure that, in the event an Application does
|
||||
not supply the function or data, the facility still operates, and performs whatever part of its purpose remains
|
||||
meaningful, or
|
||||
|
||||
* **b)** under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
* **b)** under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
|
||||
|
||||
### 3. Object Code Incorporating Material from Library Header Files
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
The object code form of an Application may incorporate material from a header file that is part of the Library. You may
|
||||
convey such object code under terms of your choice, provided that, if the incorporated material is not limited to
|
||||
numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
* **a)** Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
* **b)** Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
* **a)** Give prominent notice with each copy of the object code that the Library is used in it and that the Library and
|
||||
its use are covered by this License.
|
||||
* **b)** Accompany the object code with a copy of the GNU GPL and this license document.
|
||||
|
||||
### 4. Combined Works
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification
|
||||
of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications,
|
||||
if you also do each of the following:
|
||||
|
||||
* **a)** Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
* **a)** Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library
|
||||
and its use are covered by this License.
|
||||
|
||||
* **b)** Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
* **b)** Accompany the Combined Work with a copy of the GNU GPL and this license document.
|
||||
|
||||
* **c)** For a Combined Work that displays copyright notices during execution, include the copyright notice for the
|
||||
Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
* **c)** For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
* **d)** Do one of the following:
|
||||
- **0)** Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
- **1)** Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that **(a)** uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and **(b)** will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
- **0)** Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application
|
||||
Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a
|
||||
modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6
|
||||
of the GNU GPL for conveying Corresponding Source.
|
||||
- **1)** Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that **(
|
||||
a)** uses at run time a copy of the Library already present on the user's computer system, and **(b)** will
|
||||
operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
|
||||
|
||||
* **e)** Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option **4d0**, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option **4d1**, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
* **e)** Provide Installation Information, but only if you would otherwise be required to provide such information under
|
||||
section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified
|
||||
version of the Combined Work produced by recombining or relinking the Application with a modified version of the
|
||||
Linked Version. (If you use option **4d0**, the Installation Information must accompany the Minimal Corresponding
|
||||
Source and Corresponding Application Code. If you use option **4d1**, you must provide the Installation Information in
|
||||
the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)
|
||||
|
||||
### 5. Combined Libraries
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
You may place library facilities that are a work based on the Library side by side in a single library together with
|
||||
other library facilities that are not Applications and are not covered by this License, and convey such a combined
|
||||
library under terms of your choice, if you do both of the following:
|
||||
|
||||
* **a)** Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
* **b)** Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
* **a)** Accompany the combined library with a copy of the same work based on the Library, uncombined with any other
|
||||
library facilities, conveyed under the terms of this License.
|
||||
* **b)** Give prominent notice with the combined library that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
### 6. Revised Versions of the GNU Lesser General Public License
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time
|
||||
to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new
|
||||
problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License “or any later version”
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
Each version is given a distinguishing version number. If the Library as you received it specifies that a certain
|
||||
numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of
|
||||
following the terms and conditions either of that published version or of any later version published by the Free
|
||||
Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General
|
||||
Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General
|
||||
Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for
|
||||
you to choose that version for the Library.
|
||||
22
README.md
22
README.md
@@ -1,26 +1,38 @@
|
||||
# Architectury API
|
||||
|
||||
Talk to us on [Discord](https://discord.gg/C2RdJDpRBP)!
|
||||
|
||||
An intermediary api aimed to ease developing multiplatform mods.
|
||||
|
||||
### What is Architectury API
|
||||
Architectury API is an api to abstract calls to fabric api and forge api as both loader has different implementations of what can be perceived as the same thing.
|
||||
|
||||
Architectury API updates regularly, with new hooks and features. Currently contains over **90** events hooks, networking abstraction, loader calls abstraction, game registry abstraction and an easy to use @ExpectPlatform annotation (Only works on static methods).
|
||||
Architectury API is an api to abstract calls to fabric api and forge api as both loader has different implementations of
|
||||
what can be perceived as the same thing.
|
||||
|
||||
Architectury API updates regularly, with new hooks and features. Currently contains over **90** events hooks, networking
|
||||
abstraction, loader calls abstraction, game registry abstraction and an easy to use @ExpectPlatform annotation (Only
|
||||
works on static methods).
|
||||
|
||||
### Do I really need this API?
|
||||
Architectury API is only one part of the architectury ecosystem, **Architectury Plugin** is the gradle plugin enabling all this multiplatform actions.
|
||||
|
||||
Architectury API is optional for projects built on architectury, you may create your architectury project with just Architectury Plugin.
|
||||
Architectury API is only one part of the architectury ecosystem, **Architectury Plugin** is the gradle plugin enabling
|
||||
all this multiplatform actions.
|
||||
|
||||
Architectury API is optional for projects built on architectury, you may create your architectury project with just
|
||||
Architectury Plugin.
|
||||
|
||||
### Advantages of Architectury
|
||||
|
||||
- Open sourced
|
||||
- Less boilerplate for your multiplatform mod
|
||||
|
||||
### Getting started with making multiplatform mods
|
||||
|
||||
Gradle Plugin: https://github.com/architectury/architectury-plugin
|
||||
|
||||
Example Mod: https://github.com/architectury/architectury-example-mod
|
||||
|
||||
### Credits
|
||||
This library bundles typetools, which you can find its license [here](https://github.com/jhalterman/typetools/blob/master/LICENSE.txt "")
|
||||
|
||||
This library bundles typetools, which you can find its
|
||||
license [here](https://github.com/jhalterman/typetools/blob/master/LICENSE.txt "")
|
||||
|
||||
@@ -39,7 +39,8 @@ import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
public final class EventFactory {
|
||||
private EventFactory() {}
|
||||
private EventFactory() {
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@ApiStatus.ScheduledForRemoval
|
||||
|
||||
@@ -29,7 +29,8 @@ import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
public final class EventHandler {
|
||||
private EventHandler() {}
|
||||
private EventHandler() {
|
||||
}
|
||||
|
||||
private static boolean initialized = false;
|
||||
|
||||
|
||||
@@ -63,11 +63,13 @@ public interface LifecycleEvent {
|
||||
void stateChanged(T instance);
|
||||
}
|
||||
|
||||
interface ServerState extends InstanceState<MinecraftServer> {}
|
||||
interface ServerState extends InstanceState<MinecraftServer> {
|
||||
}
|
||||
|
||||
interface WorldState<T extends Level> {
|
||||
void act(T world);
|
||||
}
|
||||
|
||||
interface ServerWorldState extends WorldState<ServerLevel> {}
|
||||
interface ServerWorldState extends WorldState<ServerLevel> {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,11 +35,15 @@ public interface TickEvent<T> {
|
||||
|
||||
void tick(T instance);
|
||||
|
||||
interface Server extends TickEvent<MinecraftServer> {}
|
||||
|
||||
interface WorldTick<T extends Level> extends TickEvent<T> {}
|
||||
|
||||
interface ServerWorld extends WorldTick<ServerLevel> {}
|
||||
|
||||
interface Player extends TickEvent<net.minecraft.world.entity.player.Player> {}
|
||||
interface Server extends TickEvent<MinecraftServer> {
|
||||
}
|
||||
|
||||
interface WorldTick<T extends Level> extends TickEvent<T> {
|
||||
}
|
||||
|
||||
interface ServerWorld extends WorldTick<ServerLevel> {
|
||||
}
|
||||
|
||||
interface Player extends TickEvent<net.minecraft.world.entity.player.Player> {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,11 +32,13 @@ public interface ClientLifecycleEvent {
|
||||
/**
|
||||
* Invoked when client has been initialised, not available in forge.
|
||||
*/
|
||||
@Deprecated Event<ClientState> CLIENT_STARTED = EventFactory.createLoop();
|
||||
@Deprecated
|
||||
Event<ClientState> CLIENT_STARTED = EventFactory.createLoop();
|
||||
/**
|
||||
* Invoked when client is stopping, not available in forge.
|
||||
*/
|
||||
@Deprecated Event<ClientState> CLIENT_STOPPING = EventFactory.createLoop();
|
||||
@Deprecated
|
||||
Event<ClientState> CLIENT_STOPPING = EventFactory.createLoop();
|
||||
/**
|
||||
* Invoked after a world is loaded only on client, equivalent to forge's {@code WorldEvent.Load}.
|
||||
*/
|
||||
@@ -44,8 +46,10 @@ public interface ClientLifecycleEvent {
|
||||
Event<ClientState> CLIENT_SETUP = EventFactory.createLoop();
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
interface ClientState extends LifecycleEvent.InstanceState<Minecraft> {}
|
||||
interface ClientState extends LifecycleEvent.InstanceState<Minecraft> {
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
interface ClientWorldState extends LifecycleEvent.WorldState<ClientLevel> {}
|
||||
interface ClientWorldState extends LifecycleEvent.WorldState<ClientLevel> {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,8 +36,10 @@ public interface ClientTickEvent<T> {
|
||||
void tick(T instance);
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
interface Client extends ClientTickEvent<Minecraft> {}
|
||||
interface Client extends ClientTickEvent<Minecraft> {
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
interface ClientWorld extends ClientTickEvent<ClientLevel> {}
|
||||
interface ClientWorld extends ClientTickEvent<ClientLevel> {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,8 @@ import me.shedaniel.architectury.ExpectPlatform;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
|
||||
public class BlockEntityHooks {
|
||||
private BlockEntityHooks() {}
|
||||
private BlockEntityHooks() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sync data to the clients.
|
||||
|
||||
@@ -23,7 +23,8 @@ import me.shedaniel.architectury.annotations.ExpectPlatform;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
|
||||
public class DyeColorHooks {
|
||||
private DyeColorHooks() {}
|
||||
private DyeColorHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static int getColorValue(DyeColor color) {
|
||||
|
||||
@@ -25,7 +25,8 @@ import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public final class EntityHooks {
|
||||
private EntityHooks() {}
|
||||
private EntityHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static String getEncodeId(Entity entity) {
|
||||
|
||||
@@ -26,7 +26,8 @@ import net.minecraft.world.phys.Vec3;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public final class ExplosionHooks {
|
||||
private ExplosionHooks() {}
|
||||
private ExplosionHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static Vec3 getPosition(Explosion explosion) {
|
||||
|
||||
@@ -35,7 +35,8 @@ import net.minecraft.world.level.material.FluidState;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class FluidStackHooks {
|
||||
private FluidStackHooks() {}
|
||||
private FluidStackHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static Component getName(FluidStack stack) {
|
||||
|
||||
@@ -24,7 +24,8 @@ import me.shedaniel.architectury.utils.IntValue;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
|
||||
public final class ItemEntityHooks {
|
||||
private ItemEntityHooks() {}
|
||||
private ItemEntityHooks() {
|
||||
}
|
||||
|
||||
/**
|
||||
* The lifespan of an {@link ItemEntity}.
|
||||
|
||||
@@ -26,7 +26,8 @@ import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
public final class ItemStackHooks {
|
||||
private ItemStackHooks() {}
|
||||
private ItemStackHooks() {
|
||||
}
|
||||
|
||||
public static ItemStack copyWithCount(ItemStack stack, int count) {
|
||||
ItemStack copy = stack.copy();
|
||||
|
||||
@@ -22,7 +22,8 @@ package me.shedaniel.architectury.hooks;
|
||||
import net.minecraft.world.level.storage.LevelResource;
|
||||
|
||||
public class LevelResourceHooks {
|
||||
private LevelResourceHooks() {}
|
||||
private LevelResourceHooks() {
|
||||
}
|
||||
|
||||
public static LevelResource create(String id) {
|
||||
return new LevelResource(id);
|
||||
|
||||
@@ -24,7 +24,8 @@ import net.minecraft.server.packs.repository.PackRepository;
|
||||
import net.minecraft.server.packs.repository.RepositorySource;
|
||||
|
||||
public class PackRepositoryHooks {
|
||||
private PackRepositoryHooks() {}
|
||||
private PackRepositoryHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static void addSource(PackRepository repository, RepositorySource source) {
|
||||
|
||||
@@ -23,7 +23,8 @@ import me.shedaniel.architectury.annotations.ExpectPlatform;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
||||
public final class PlayerHooks {
|
||||
private PlayerHooks() {}
|
||||
private PlayerHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static boolean isFake(Player player) {
|
||||
|
||||
@@ -30,7 +30,8 @@ import java.util.List;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public final class ScreenHooks {
|
||||
private ScreenHooks() {}
|
||||
private ScreenHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static List<AbstractWidget> getButtons(Screen screen) {
|
||||
|
||||
@@ -31,7 +31,8 @@ import net.minecraft.world.level.material.Fluid;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class TagHooks {
|
||||
private TagHooks() {}
|
||||
private TagHooks() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static <T> Tag.Named<T> getOptional(ResourceLocation id, Supplier<TagCollection<T>> collection) {
|
||||
|
||||
@@ -31,7 +31,6 @@ import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
|
||||
import net.minecraft.world.level.levelgen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -21,7 +21,6 @@ package me.shedaniel.architectury.hooks.biome;
|
||||
|
||||
import net.minecraft.world.level.biome.Biome.Precipitation;
|
||||
import net.minecraft.world.level.biome.Biome.TemperatureModifier;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface ClimateProperties {
|
||||
Precipitation getPrecipitation();
|
||||
|
||||
@@ -32,7 +32,8 @@ import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
|
||||
public final class Platform {
|
||||
private Platform() {}
|
||||
private Platform() {
|
||||
}
|
||||
|
||||
private static int simpleLoaderCache = -1;
|
||||
|
||||
|
||||
@@ -31,7 +31,8 @@ import java.util.function.Function;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public final class BlockEntityRenderers {
|
||||
private BlockEntityRenderers() {}
|
||||
private BlockEntityRenderers() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static <T extends BlockEntity> void registerRenderer(BlockEntityType<T> type, Function<BlockEntityRenderDispatcher, BlockEntityRenderer<? super T>> provider) {
|
||||
|
||||
@@ -32,7 +32,8 @@ import java.util.function.Supplier;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public final class ColorHandlers {
|
||||
private ColorHandlers() {}
|
||||
private ColorHandlers() {
|
||||
}
|
||||
|
||||
public static void registerItemColors(ItemColor color, ItemLike... items) {
|
||||
Supplier<ItemLike>[] array = new Supplier[items.length];
|
||||
|
||||
@@ -27,7 +27,8 @@ import net.minecraft.world.item.ItemStack;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class CreativeTabs {
|
||||
private CreativeTabs() {}
|
||||
private CreativeTabs() {
|
||||
}
|
||||
|
||||
// I am sorry, fabric wants a resource location instead of the translation key for whatever reason
|
||||
@ExpectPlatform
|
||||
|
||||
@@ -23,7 +23,8 @@ import me.shedaniel.architectury.annotations.ExpectPlatform;
|
||||
import net.minecraft.advancements.CriterionTrigger;
|
||||
|
||||
public final class CriteriaTriggersRegistry {
|
||||
private CriteriaTriggersRegistry() {}
|
||||
private CriteriaTriggersRegistry() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Invokes {@link net.minecraft.advancements.CriteriaTriggers#register(CriterionTrigger)}.
|
||||
|
||||
@@ -29,7 +29,8 @@ import java.util.function.BiConsumer;
|
||||
* A utility class for creating game rule types.
|
||||
*/
|
||||
public final class GameRuleFactory {
|
||||
private GameRuleFactory() {}
|
||||
private GameRuleFactory() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a boolean rule type.
|
||||
|
||||
@@ -26,7 +26,8 @@ import net.minecraft.world.level.GameRules;
|
||||
* A registry for registering game rules.
|
||||
*/
|
||||
public final class GameRuleRegistry {
|
||||
private GameRuleRegistry() {}
|
||||
private GameRuleRegistry() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a game rule.
|
||||
|
||||
@@ -26,7 +26,8 @@ import net.minecraft.client.KeyMapping;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public final class KeyBindings {
|
||||
private KeyBindings() {}
|
||||
private KeyBindings() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static void registerKeyBinding(KeyMapping binding) {
|
||||
|
||||
@@ -41,7 +41,8 @@ import java.util.function.Consumer;
|
||||
* A utility class to register {@link MenuType}s and {@link Screen}s for containers
|
||||
*/
|
||||
public final class MenuRegistry {
|
||||
private MenuRegistry() {}
|
||||
private MenuRegistry() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the menu.
|
||||
|
||||
@@ -24,7 +24,8 @@ import net.minecraft.server.packs.PackType;
|
||||
import net.minecraft.server.packs.resources.PreparableReloadListener;
|
||||
|
||||
public final class ReloadListeners {
|
||||
private ReloadListeners() {}
|
||||
private ReloadListeners() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static void registerReloadListener(PackType type, PreparableReloadListener listener) {
|
||||
|
||||
@@ -28,7 +28,8 @@ import net.minecraft.world.level.material.Fluid;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public final class RenderTypes {
|
||||
private RenderTypes() {}
|
||||
private RenderTypes() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static void register(RenderType type, Block... blocks) {
|
||||
|
||||
@@ -27,7 +27,8 @@ import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class EntityAttributes {
|
||||
private EntityAttributes() {}
|
||||
private EntityAttributes() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers default attributes to entities.
|
||||
|
||||
@@ -31,7 +31,8 @@ import java.util.function.Function;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public final class EntityRenderers {
|
||||
private EntityRenderers() {}
|
||||
private EntityRenderers() {
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static <T extends Entity> void register(EntityType<T> type, Function<EntityRenderDispatcher, EntityRenderer<T>> factory) {
|
||||
|
||||
@@ -24,7 +24,8 @@ import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
|
||||
public final class FuelRegistry {
|
||||
private FuelRegistry() {}
|
||||
private FuelRegistry() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a burn time for items.
|
||||
|
||||
@@ -24,7 +24,8 @@ import net.minecraft.world.entity.npc.VillagerProfession;
|
||||
import net.minecraft.world.entity.npc.VillagerTrades;
|
||||
|
||||
public class TradeRegistry {
|
||||
private TradeRegistry() {}
|
||||
private TradeRegistry() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a trade ({@link VillagerTrades.ItemListing}) for a villager by its profession and level.
|
||||
|
||||
@@ -56,5 +56,6 @@ public final class EnvExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
private EnvExecutor() {}
|
||||
private EnvExecutor() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,5 +40,6 @@ public final class NbtType {
|
||||
*/
|
||||
public static final int NUMBER = 99;
|
||||
|
||||
private NbtType() {}
|
||||
private NbtType() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,4 +22,5 @@ package me.shedaniel.architectury.utils;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public interface Value<T> extends Supplier<T>, Consumer<T> {}
|
||||
public interface Value<T> extends Supplier<T>, Consumer<T> {
|
||||
}
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
"minVersion": "0.7.11",
|
||||
"client": [
|
||||
],
|
||||
"mixins": ["BlockLandingInvoker", "FluidTagsAccessor", "MixinLightningBolt"],
|
||||
"mixins": [
|
||||
"BlockLandingInvoker",
|
||||
"FluidTagsAccessor",
|
||||
"MixinLightningBolt"
|
||||
],
|
||||
"injectors": {
|
||||
"maxShiftBy": 5,
|
||||
"defaultRequire": 1
|
||||
|
||||
@@ -22,8 +22,8 @@ package me.shedaniel.architectury.compat.fabric;
|
||||
import com.google.common.collect.Maps;
|
||||
import io.github.prospector.modmenu.api.ConfigScreenFactory;
|
||||
import io.github.prospector.modmenu.api.ModMenuApi;
|
||||
import me.shedaniel.architectury.platform.fabric.PlatformImpl;
|
||||
import me.shedaniel.architectury.platform.Mod;
|
||||
import me.shedaniel.architectury.platform.fabric.PlatformImpl;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
package me.shedaniel.architectury.hooks.fabric;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import net.fabricmc.fabric.api.block.entity.BlockEntityClientSerializable;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
@@ -38,13 +38,28 @@ import java.util.Set;
|
||||
|
||||
@Mixin(Explosion.class)
|
||||
public class MixinExplosion implements ExplosionHooksImpl.ExplosionExtensions {
|
||||
@Shadow @Final private Level level;
|
||||
@Shadow @Final private double x;
|
||||
@Shadow @Final private double y;
|
||||
@Shadow @Final private double z;
|
||||
@Shadow @Final @Nullable private Entity source;
|
||||
@Shadow @Final @Mutable private float radius;
|
||||
@Unique Vec3 position;
|
||||
@Shadow
|
||||
@Final
|
||||
private Level level;
|
||||
@Shadow
|
||||
@Final
|
||||
private double x;
|
||||
@Shadow
|
||||
@Final
|
||||
private double y;
|
||||
@Shadow
|
||||
@Final
|
||||
private double z;
|
||||
@Shadow
|
||||
@Final
|
||||
@Nullable
|
||||
private Entity source;
|
||||
@Shadow
|
||||
@Final
|
||||
@Mutable
|
||||
private float radius;
|
||||
@Unique
|
||||
Vec3 position;
|
||||
|
||||
@Inject(method = "explode", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/phys/Vec3;<init>(DDD)V", ordinal = 0),
|
||||
locals = LocalCapture.CAPTURE_FAILHARD)
|
||||
|
||||
@@ -21,19 +21,15 @@ package me.shedaniel.architectury.mixin.fabric;
|
||||
|
||||
import me.shedaniel.architectury.event.events.InteractionEvent;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.util.Tuple;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.FarmBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(FarmBlock.class)
|
||||
|
||||
@@ -32,7 +32,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(FurnaceResultSlot.class)
|
||||
public class MixinFurnaceResultSlot {
|
||||
@Shadow @Final private Player player;
|
||||
@Shadow
|
||||
@Final
|
||||
private Player player;
|
||||
|
||||
@Inject(method = "checkTakeAchievements", at = @At("RETURN"))
|
||||
private void checkTakeAchievements(ItemStack itemStack, CallbackInfo ci) {
|
||||
|
||||
@@ -33,7 +33,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(LevelChunk.class)
|
||||
public class MixinLevelChunk {
|
||||
@Shadow @Final private ChunkPos chunkPos;
|
||||
@Shadow
|
||||
@Final
|
||||
private ChunkPos chunkPos;
|
||||
|
||||
@Inject(
|
||||
method = "addEntity",
|
||||
|
||||
@@ -22,7 +22,8 @@ package me.shedaniel.architectury.mixin.fabric;
|
||||
import me.shedaniel.architectury.event.EventResult;
|
||||
import me.shedaniel.architectury.event.events.EntityEvent;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.*;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.MobSpawnType;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.NaturalSpawner;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
||||
@@ -31,7 +31,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(PlayerAdvancements.class)
|
||||
public class MixinPlayerAdvancements {
|
||||
@Shadow private ServerPlayer player;
|
||||
@Shadow
|
||||
private ServerPlayer player;
|
||||
|
||||
@Inject(method = "award",
|
||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/advancements/AdvancementRewards;grant(Lnet/minecraft/server/level/ServerPlayer;)V",
|
||||
|
||||
@@ -33,9 +33,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(ResultSlot.class)
|
||||
public class MixinResultSlot {
|
||||
@Shadow @Final private Player player;
|
||||
@Shadow
|
||||
@Final
|
||||
private Player player;
|
||||
|
||||
@Shadow @Final private CraftingContainer craftSlots;
|
||||
@Shadow
|
||||
@Final
|
||||
private CraftingContainer craftSlots;
|
||||
|
||||
@Inject(method = "checkTakeAchievements", at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/world/item/ItemStack;onCraftedBy(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;I)V",
|
||||
|
||||
@@ -23,13 +23,11 @@ import me.shedaniel.architectury.event.events.ChatEvent;
|
||||
import net.minecraft.network.chat.ChatType;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.network.protocol.game.ServerboundChatPacket;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.network.ServerGamePacketListenerImpl;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
@@ -39,11 +37,15 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(ServerGamePacketListenerImpl.class)
|
||||
public abstract class MixinServerGamePacketListenerImpl {
|
||||
@Shadow public ServerPlayer player;
|
||||
@Shadow
|
||||
public ServerPlayer player;
|
||||
|
||||
@Shadow @Final private MinecraftServer server;
|
||||
@Shadow
|
||||
@Final
|
||||
private MinecraftServer server;
|
||||
|
||||
@Shadow private int chatSpamTickCount;
|
||||
@Shadow
|
||||
private int chatSpamTickCount;
|
||||
|
||||
@Shadow
|
||||
public abstract void disconnect(Component component);
|
||||
|
||||
@@ -35,9 +35,11 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
@Mixin(ServerPlayerGameMode.class)
|
||||
public class MixinServerPlayerGameMode {
|
||||
@Shadow public ServerLevel level;
|
||||
@Shadow
|
||||
public ServerLevel level;
|
||||
|
||||
@Shadow public ServerPlayer player;
|
||||
@Shadow
|
||||
public ServerPlayer player;
|
||||
|
||||
@Inject(method = "destroyBlock", at = @At(value = "INVOKE",
|
||||
target = "Lnet/minecraft/world/level/block/state/BlockState;getBlock()Lnet/minecraft/world/level/block/Block;",
|
||||
|
||||
@@ -43,9 +43,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(ClientPacketListener.class)
|
||||
public class MixinClientPacketListener {
|
||||
@Shadow private Minecraft minecraft;
|
||||
@Shadow @Final private RecipeManager recipeManager;
|
||||
@Unique private LocalPlayer tmpPlayer;
|
||||
@Shadow
|
||||
private Minecraft minecraft;
|
||||
@Shadow
|
||||
@Final
|
||||
private RecipeManager recipeManager;
|
||||
@Unique
|
||||
private LocalPlayer tmpPlayer;
|
||||
|
||||
@Inject(method = "handleLogin", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Options;broadcastOptions()V"))
|
||||
private void handleLogin(ClientboundLoginPacket packet, CallbackInfo ci) {
|
||||
|
||||
@@ -34,7 +34,9 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
|
||||
@Mixin(GameRenderer.class)
|
||||
public abstract class MixinGameRenderer {
|
||||
@Shadow @Final private Minecraft minecraft;
|
||||
@Shadow
|
||||
@Final
|
||||
private Minecraft minecraft;
|
||||
|
||||
@Inject(method = "render(FJZ)V",
|
||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;render(Lcom/mojang/blaze3d/vertex/PoseStack;IIF)V",
|
||||
|
||||
@@ -43,9 +43,13 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
@Unique
|
||||
@Mixin(Minecraft.class)
|
||||
public abstract class MixinMinecraft {
|
||||
@Shadow @Nullable public LocalPlayer player;
|
||||
@Shadow
|
||||
@Nullable
|
||||
public LocalPlayer player;
|
||||
|
||||
@Shadow @Nullable public HitResult hitResult;
|
||||
@Shadow
|
||||
@Nullable
|
||||
public HitResult hitResult;
|
||||
|
||||
@Shadow
|
||||
public abstract void setScreen(@Nullable Screen screen);
|
||||
|
||||
@@ -44,9 +44,13 @@ import java.util.List;
|
||||
|
||||
@Mixin(Screen.class)
|
||||
public abstract class MixinScreen implements ScreenInputDelegate {
|
||||
@Shadow @Final public List<AbstractWidget> buttons;
|
||||
@Unique private static ThreadLocal<TooltipEventPositionContextImpl> tooltipPositionContext = ThreadLocal.withInitial(TooltipEventPositionContextImpl::new);
|
||||
@Unique private static ThreadLocal<TooltipEventColorContextImpl> tooltipColorContext = ThreadLocal.withInitial(TooltipEventColorContextImpl::new);
|
||||
@Shadow
|
||||
@Final
|
||||
public List<AbstractWidget> buttons;
|
||||
@Unique
|
||||
private static ThreadLocal<TooltipEventPositionContextImpl> tooltipPositionContext = ThreadLocal.withInitial(TooltipEventPositionContextImpl::new);
|
||||
@Unique
|
||||
private static ThreadLocal<TooltipEventColorContextImpl> tooltipColorContext = ThreadLocal.withInitial(TooltipEventColorContextImpl::new);
|
||||
|
||||
@Shadow
|
||||
public abstract List<? extends GuiEventListener> children();
|
||||
|
||||
@@ -23,7 +23,8 @@ import me.shedaniel.architectury.fluid.FluidStack;
|
||||
import me.shedaniel.architectury.utils.Fraction;
|
||||
|
||||
public final class FluidStackHooksForge {
|
||||
private FluidStackHooksForge() {}
|
||||
private FluidStackHooksForge() {
|
||||
}
|
||||
|
||||
public static FluidStack fromForge(net.minecraftforge.fluids.FluidStack stack) {
|
||||
return FluidStack.create(stack.getFluid().delegate, Fraction.ofWhole(stack.getAmount()), stack.getTag());
|
||||
|
||||
@@ -33,7 +33,6 @@ import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
|
||||
@@ -25,7 +25,8 @@ import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class EventBuses {
|
||||
private EventBuses() {}
|
||||
private EventBuses() {
|
||||
}
|
||||
|
||||
private static final Map<String, IEventBus> EVENT_BUS_MAP = new HashMap<>();
|
||||
private static final Map<String, List<Consumer<IEventBus>>> ON_REGISTERED = new HashMap<>();
|
||||
|
||||
@@ -27,7 +27,6 @@ import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@@ -157,7 +157,9 @@ public class BiomeModificationsImpl {
|
||||
private static class GenerationSettingsBuilderWrapped implements GenerationProperties {
|
||||
protected final BiomeGenerationSettingsBuilder generation;
|
||||
|
||||
public GenerationSettingsBuilderWrapped(BiomeGenerationSettingsBuilder generation) {this.generation = generation;}
|
||||
public GenerationSettingsBuilderWrapped(BiomeGenerationSettingsBuilder generation) {
|
||||
this.generation = generation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Optional<Supplier<ConfiguredSurfaceBuilder<?>>> getSurfaceBuilder() {
|
||||
@@ -184,7 +186,9 @@ public class BiomeModificationsImpl {
|
||||
private static class SpawnSettingsBuilderWrapped implements SpawnProperties {
|
||||
protected final MobSpawnInfoBuilder builder;
|
||||
|
||||
public SpawnSettingsBuilderWrapped(MobSpawnInfoBuilder builder) {this.builder = builder;}
|
||||
public SpawnSettingsBuilderWrapped(MobSpawnInfoBuilder builder) {
|
||||
this.builder = builder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getCreatureProbability() {
|
||||
|
||||
@@ -26,7 +26,8 @@ import net.minecraft.world.level.GameRules;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class GameRuleFactoryImpl {
|
||||
private GameRuleFactoryImpl() {}
|
||||
private GameRuleFactoryImpl() {
|
||||
}
|
||||
|
||||
public static GameRules.Type<GameRules.BooleanValue> createBooleanRule(boolean defaultValue) {
|
||||
return GameRulesAccessor.BooleanValueSimple.invokeCreateArchitectury(defaultValue);
|
||||
|
||||
@@ -7,9 +7,17 @@
|
||||
"client": [
|
||||
],
|
||||
"mixins": [
|
||||
"BiomeGenerationSettingsBuilderAccessor", "GameRulesAccessor", "GameRulesAccessor$BooleanValue", "GameRulesAccessor$BooleanValueSimple",
|
||||
"GameRulesAccessor$IntegerValue", "GameRulesAccessor$IntegerValueSimple", "MixinBlockEntity", "MixinBlockEntityExtension", "MixinItemExtension",
|
||||
"MixinRegistryEntry", "MobSpawnSettingsBuilderAccessor"
|
||||
"BiomeGenerationSettingsBuilderAccessor",
|
||||
"GameRulesAccessor",
|
||||
"GameRulesAccessor$BooleanValue",
|
||||
"GameRulesAccessor$BooleanValueSimple",
|
||||
"GameRulesAccessor$IntegerValue",
|
||||
"GameRulesAccessor$IntegerValueSimple",
|
||||
"MixinBlockEntity",
|
||||
"MixinBlockEntityExtension",
|
||||
"MixinItemExtension",
|
||||
"MixinRegistryEntry",
|
||||
"MobSpawnSettingsBuilderAccessor"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
||||
@@ -6,7 +6,7 @@ supported_version=1.16.4/5
|
||||
|
||||
archives_base_name=architectury
|
||||
archives_base_name_snapshot=architectury-snapshot
|
||||
base_version=1.13
|
||||
base_version=1.14
|
||||
maven_group=me.shedaniel
|
||||
|
||||
fabric_loader_version=0.11.1
|
||||
|
||||
@@ -29,7 +29,6 @@ import me.shedaniel.architectury.platform.Platform;
|
||||
import me.shedaniel.architectury.utils.Env;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.gui.screens.ChatScreen;
|
||||
import net.minecraft.client.gui.screens.inventory.AnvilScreen;
|
||||
import net.minecraft.core.Position;
|
||||
import net.minecraft.core.Vec3i;
|
||||
|
||||
@@ -34,5 +34,6 @@ public class TestGameRules {
|
||||
public static final GameRules.Key<GameRules.BooleanValue> CALLBACK_BOOL = register("callbackBool", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true, (server, value) -> LOGGER.info("changed to {}", value.get())));
|
||||
public static final GameRules.Key<GameRules.IntegerValue> CALLBACK_INT = register("callbackInt", GameRules.Category.MISC, GameRuleFactory.createIntRule(10, (server, value) -> LOGGER.info("changed to {}", value.get())));
|
||||
|
||||
public static void init() {}
|
||||
public static void init() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
package me.shedaniel.architectury.test.trade;
|
||||
|
||||
import me.shedaniel.architectury.registry.trade.TradeRegistry;
|
||||
import me.shedaniel.architectury.registry.trade.SimpleTrade;
|
||||
import me.shedaniel.architectury.registry.trade.TradeRegistry;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.entity.npc.VillagerProfession;
|
||||
import net.minecraft.world.entity.npc.VillagerTrades;
|
||||
|
||||
Reference in New Issue
Block a user