Merge branch 'archi-snapshot' into architectury

# Conflicts:
#	common/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java
#	common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayNetworkHandler.java
#	common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayerEntity.java
#	common/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java
This commit is contained in:
NikitaCartes 2021-06-24 00:22:28 +03:00
commit 1c15f9ea98
No known key found for this signature in database
GPG Key ID: 3A5BAB26D767AA69
11 changed files with 38 additions and 42 deletions

View File

@ -10,8 +10,8 @@ buildscript {
plugins {
id "architectury-plugin" version "3.0.94"
id "forgified-fabric-loom" version "0.6.72" apply false
id "architectury-plugin" version "3.1-SNAPSHOT"
id "dev.architectury.loom" version "0.8.0-SNAPSHOT" apply false
}
@ -20,7 +20,7 @@ architectury {
}
subprojects {
apply plugin: "forgified-fabric-loom"
apply plugin: "dev.architectury.loom"
dependencies {
minecraft "com.mojang:minecraft:${rootProject.minecraft_version}"
mappings("net.fabricmc:yarn:${rootProject.yarn_mappings}:v2")
@ -36,16 +36,15 @@ allprojects {
version = rootProject.mod_version
group = rootProject.maven_group
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
tasks.withType(JavaCompile).configureEach {
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
// If Javadoc is generated, this must be specified in that task too.
it.options.encoding = "UTF-8"
// The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too
// JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used.
// We'll use that if it's available, but otherwise we'll use the older option.
def targetVersion = 8
if (JavaVersion.current().isJava9Compatible()) {
options.release = targetVersion
}
// Minecraft 1.17 (21w19a) upwards uses Java 16.
it.options.release = 8
}
java {

View File

@ -29,7 +29,7 @@ public class SimpleAuth {
/**
* HashMap of players that have joined the server.
* It's cleared on server stop in order to save some interactions with database during runtime.
* Stores their data as {@link org.samo_lego.simpleauth.storage.PlayerCache PlayerCache} object.
* Stores their data as {@link PlayerCache PlayerCache} object.
*/
public static final HashMap<String, PlayerCache> playerCacheMap = new HashMap<>();

View File

@ -49,8 +49,8 @@ public class AuthCommand {
ctx.getSource().getEntityOrThrow().getX(),
ctx.getSource().getEntityOrThrow().getY(),
ctx.getSource().getEntityOrThrow().getZ(),
ctx.getSource().getEntityOrThrow().yaw,
ctx.getSource().getEntityOrThrow().pitch
ctx.getSource().getEntityOrThrow().getYaw(),
ctx.getSource().getEntityOrThrow().getPitch()
))
.then(argument("dimension", DimensionArgumentType.dimension())
.then(argument("position", BlockPosArgumentType.blockPos())
@ -145,7 +145,7 @@ public class AuthCommand {
}
/**
* Sets {@link org.samo_lego.simpleauth.storage.AuthConfig.MainConfig.WorldSpawn global spawn}.
* Sets {@link AuthConfig.MainConfig.WorldSpawn global spawn}.
*
* @param source executioner of the command
* @param world world id of global spawn

View File

@ -94,8 +94,7 @@ public class AuthEventHandler {
// Tries to rescue player from nether portal
//if(config.main.tryPortalRescue && player.getBlockState().getBlock().equals(Blocks.NETHER_PORTAL)) {
if(config.main.tryPortalRescue && player.getServerWorld().getBlockState(player.getBlockPos()).getBlock().equals(Blocks.NETHER_PORTAL)) {
if(config.main.tryPortalRescue && player.getBlockStateAtPos().getBlock().equals(Blocks.NETHER_PORTAL)) {
BlockPos pos = player.getBlockPos();
// Teleporting player to the middle of the block
@ -118,8 +117,8 @@ public class AuthEventHandler {
if(playerCache.isAuthenticated) {
playerCache.lastIp = player.getIp();
//playerCache.wasInPortal = player.getBlockState().getBlock().equals(Blocks.NETHER_PORTAL);
playerCache.wasInPortal = player.getServerWorld().getBlockState(player.getBlockPos()).getBlock().equals(Blocks.NETHER_PORTAL);
playerCache.wasInPortal = player.getBlockStateAtPos().getBlock().equals(Blocks.NETHER_PORTAL);
// Setting the session expire time
if(config.main.sessionTimeoutTime != -1)
playerCache.validUntil = System.currentTimeMillis() + config.main.sessionTimeoutTime * 1000L;

View File

@ -22,7 +22,7 @@ public abstract class MixinServerPlayNetworkHandler {
public ServerPlayerEntity player;
@Inject(
method = "method_31286(Lnet/minecraft/server/filter/TextStream$Message;)V",
method = "handleMessage(Lnet/minecraft/server/filter/TextStream$Message;)V",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/server/network/ServerPlayerEntity;updateLastActionTime()V",
@ -68,7 +68,7 @@ public abstract class MixinServerPlayNetworkHandler {
ActionResult result = AuthEventHandler.onPlayerMove(player);
if (result == ActionResult.FAIL) {
// A bit ugly, I know. (we need to update player position)
player.networkHandler.requestTeleport(player.getX(), player.getY(), player.getZ(), player.getYaw(0), player.getPitch(0));
player.networkHandler.requestTeleport(player.getX(), player.getY(), player.getZ(), player.getYaw(), player.getPitch());
ci.cancel();
}
}

View File

@ -52,12 +52,12 @@ public class MixinServerPlayerEntity implements PlayerAuth {
// Saving position
cache.lastLocation.dimension = player.getServerWorld();
cache.lastLocation.position = player.getPos();
cache.lastLocation.yaw = player.getYaw(0);
cache.lastLocation.pitch = player.getPitch(0);
cache.lastLocation.yaw = player.getYaw();
cache.lastLocation.pitch = player.getPitch();
// Teleports player to spawn
player.teleport(
server.getWorld(RegistryKey.of(Registry.DIMENSION, new Identifier(config.worldSpawn.dimension))),
server.getWorld(RegistryKey.of(Registry.WORLD_KEY, new Identifier(config.worldSpawn.dimension))),
config.worldSpawn.x,
config.worldSpawn.y,
config.worldSpawn.z,

View File

@ -1,7 +1,7 @@
package org.samo_lego.simpleauth.mixin;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtIo;
import net.minecraft.world.WorldSaveHandler;
import org.apache.logging.log4j.Logger;
@ -46,14 +46,14 @@ public class MixinWorldSaveHandler {
* @param file
*/
@Inject(
method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/CompoundTag;",
method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/NbtCompound;",
at = @At(
value = "INVOKE",
target = "Ljava/io/File;exists()Z"
),
locals = LocalCapture.CAPTURE_FAILHARD
)
private void fileExists(PlayerEntity playerEntity, CallbackInfoReturnable<CompoundTag> cir, CompoundTag compoundTag, File file) {
private void fileExists(PlayerEntity playerEntity, CallbackInfoReturnable<NbtCompound> cir, NbtCompound compoundTag, File file) {
// @ModifyVariable cannot capture locals
this.fileExists = file.exists();
}
@ -66,13 +66,13 @@ public class MixinWorldSaveHandler {
* @return compoundTag containing migrated data.
*/
@ModifyVariable(
method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/CompoundTag;",
method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/NbtCompound;",
at = @At(
value = "INVOKE",
target = "Ljava/io/File;exists()Z"
)
)
private CompoundTag migratePlayerData(CompoundTag compoundTag, PlayerEntity player) {
private NbtCompound migratePlayerData(NbtCompound compoundTag, PlayerEntity player) {
// Checking for offline player data only if online doesn't exist yet
String playername = player.getGameProfile().getName().toLowerCase();
if(config.main.premiumAutologin && mojangAccountNamesCache.contains(playername) && !this.fileExists) {

View File

@ -64,7 +64,7 @@ public class PlayerCache {
public float pitch;
}
public final PlayerCache.LastLocation lastLocation = new PlayerCache.LastLocation();
public final LastLocation lastLocation = new LastLocation();
private static final Gson gson = new GsonBuilder()
@ -94,11 +94,10 @@ public class PlayerCache {
// Setting position cache
playerCache.lastLocation.dimension = player.getServerWorld();
playerCache.lastLocation.position = player.getPos();
playerCache.lastLocation.yaw = player.getYaw(0);
playerCache.lastLocation.pitch = player.getPitch(0);
playerCache.lastLocation.yaw = player.getYaw();
playerCache.lastLocation.pitch = player.getPitch();
playerCache.wasInPortal = player.getServerWorld().getBlockState(player.getBlockPos()).getBlock().equals(Blocks.NETHER_PORTAL);
//playerCache.wasInPortal = player.getBlockState().getBlock().equals(Blocks.NETHER_PORTAL);
playerCache.wasInPortal = player.getBlockStateAtPos().getBlock().equals(Blocks.NETHER_PORTAL);
}
return playerCache;

View File

@ -1,7 +1,7 @@
{
"required": true,
"package": "org.samo_lego.simpleauth.mixin",
"compatibilityLevel": "JAVA_8",
"compatibilityLevel": "JAVA_16",
"mixins": [
"MixinPlayerAdvancementTracker",
"MixinPlayerEntity",

View File

@ -1,4 +1,3 @@
accessWidener v1 named
accessible class net/minecraft/server/network/ServerLoginNetworkHandler$State
accessible field net/minecraft/entity/Entity yaw F

View File

@ -2,12 +2,12 @@
org.gradle.jvmargs=-Xmx1G
# Fabric properties
minecraft_version=21w10a
yarn_mappings=21w10a+build.1
loader_version=0.11.2
minecraft_version=1.17
yarn_mappings=1.17+build.13
loader_version=0.11.6
#Fabric api
fabric_version=0.28.5+1.15
fabric_version=0.36.0+1.17
# Forge
forge_version=36.0.4