mirror of
https://github.com/unmojang/authlib-injector.git
synced 2025-10-02 15:51:31 -04:00
Refactor packages & classes structure
This commit is contained in:
parent
2ac95074a6
commit
d3fa2a77eb
@ -56,10 +56,10 @@ import moe.yushi.authlibinjector.httpd.QueryUUIDsFilter;
|
|||||||
import moe.yushi.authlibinjector.httpd.URLFilter;
|
import moe.yushi.authlibinjector.httpd.URLFilter;
|
||||||
import moe.yushi.authlibinjector.httpd.URLProcessor;
|
import moe.yushi.authlibinjector.httpd.URLProcessor;
|
||||||
import moe.yushi.authlibinjector.transform.ClassTransformer;
|
import moe.yushi.authlibinjector.transform.ClassTransformer;
|
||||||
import moe.yushi.authlibinjector.transform.ConstantURLTransformUnit;
|
|
||||||
import moe.yushi.authlibinjector.transform.DumpClassListener;
|
import moe.yushi.authlibinjector.transform.DumpClassListener;
|
||||||
import moe.yushi.authlibinjector.transform.support.AuthlibLogInterceptor;
|
import moe.yushi.authlibinjector.transform.support.AuthlibLogInterceptor;
|
||||||
import moe.yushi.authlibinjector.transform.support.CitizensTransformer;
|
import moe.yushi.authlibinjector.transform.support.CitizensTransformer;
|
||||||
|
import moe.yushi.authlibinjector.transform.support.ConstantURLTransformUnit;
|
||||||
import moe.yushi.authlibinjector.transform.support.LaunchwrapperExclusionTransformer;
|
import moe.yushi.authlibinjector.transform.support.LaunchwrapperExclusionTransformer;
|
||||||
import moe.yushi.authlibinjector.transform.support.MC52974Workaround;
|
import moe.yushi.authlibinjector.transform.support.MC52974Workaround;
|
||||||
import moe.yushi.authlibinjector.transform.support.MC52974_1710Workaround;
|
import moe.yushi.authlibinjector.transform.support.MC52974_1710Workaround;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -25,8 +25,6 @@ import org.objectweb.asm.Handle;
|
|||||||
import org.objectweb.asm.MethodVisitor;
|
import org.objectweb.asm.MethodVisitor;
|
||||||
import org.objectweb.asm.Type;
|
import org.objectweb.asm.Type;
|
||||||
|
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit.TransformContext;
|
|
||||||
|
|
||||||
public final class CallbackSupport {
|
public final class CallbackSupport {
|
||||||
private CallbackSupport() {
|
private CallbackSupport() {
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -17,8 +17,6 @@
|
|||||||
package moe.yushi.authlibinjector.transform;
|
package moe.yushi.authlibinjector.transform;
|
||||||
|
|
||||||
import static java.util.Collections.emptyList;
|
import static java.util.Collections.emptyList;
|
||||||
import static org.objectweb.asm.Opcodes.ASM7;
|
|
||||||
|
|
||||||
import java.lang.instrument.ClassFileTransformer;
|
import java.lang.instrument.ClassFileTransformer;
|
||||||
import java.lang.instrument.IllegalClassFormatException;
|
import java.lang.instrument.IllegalClassFormatException;
|
||||||
import java.security.ProtectionDomain;
|
import java.security.ProtectionDomain;
|
||||||
@ -33,9 +31,7 @@ import java.util.logging.Level;
|
|||||||
import org.objectweb.asm.ClassReader;
|
import org.objectweb.asm.ClassReader;
|
||||||
import org.objectweb.asm.ClassVisitor;
|
import org.objectweb.asm.ClassVisitor;
|
||||||
import org.objectweb.asm.ClassWriter;
|
import org.objectweb.asm.ClassWriter;
|
||||||
|
|
||||||
import moe.yushi.authlibinjector.AuthlibInjector;
|
import moe.yushi.authlibinjector.AuthlibInjector;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit.TransformContext;
|
|
||||||
import moe.yushi.authlibinjector.util.Logging;
|
import moe.yushi.authlibinjector.util.Logging;
|
||||||
|
|
||||||
public class ClassTransformer implements ClassFileTransformer {
|
public class ClassTransformer implements ClassFileTransformer {
|
||||||
@ -46,71 +42,39 @@ public class ClassTransformer implements ClassFileTransformer {
|
|||||||
public final List<ClassLoadingListener> listeners = new CopyOnWriteArrayList<>();
|
public final List<ClassLoadingListener> listeners = new CopyOnWriteArrayList<>();
|
||||||
public final Set<String> ignores = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
public final Set<String> ignores = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
||||||
|
|
||||||
|
private static class TransformContextImpl implements TransformContext {
|
||||||
|
|
||||||
|
public boolean modifiedMark;
|
||||||
|
public int minVersionMark = -1;
|
||||||
|
public int upgradedVersionMark = -1;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void markModified() {
|
||||||
|
modifiedMark = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void requireMinimumClassVersion(int version) {
|
||||||
|
if (this.minVersionMark < version) {
|
||||||
|
this.minVersionMark = version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void upgradeClassVersion(int version) {
|
||||||
|
if (this.upgradedVersionMark < version) {
|
||||||
|
this.upgradedVersionMark = version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static class TransformHandle {
|
private static class TransformHandle {
|
||||||
|
|
||||||
private static class TransformContextImpl implements TransformContext {
|
private final String className;
|
||||||
public boolean modifiedMark;
|
private final ClassLoader classLoader;
|
||||||
public int minVersionMark = -1;
|
private byte[] classBuffer;
|
||||||
public int upgradedVersionMark = -1;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void markModified() {
|
|
||||||
modifiedMark = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void requireMinimumClassVersion(int version) {
|
|
||||||
if (this.minVersionMark < version) {
|
|
||||||
this.minVersionMark = version;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void upgradeClassVersion(int version) {
|
|
||||||
if (this.upgradedVersionMark < version) {
|
|
||||||
this.upgradedVersionMark = version;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class ClassVersionException extends RuntimeException {
|
|
||||||
public ClassVersionException(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class ClassVersionTransformUnit implements TransformUnit {
|
|
||||||
@Override
|
|
||||||
public Optional<ClassVisitor> transform(ClassLoader classLoader, String className, ClassVisitor writer, TransformContext context) {
|
|
||||||
return Optional.of(new ClassVisitor(ASM7, writer) {
|
|
||||||
@Override
|
|
||||||
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
|
|
||||||
int major = version & 0xffff;
|
|
||||||
|
|
||||||
if (minVersion != -1 && major < minVersion) {
|
|
||||||
throw new ClassVersionException("class version (" + major + ") is lower than required(" + minVersion + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (upgradedVersion != -1 && major < upgradedVersion) {
|
|
||||||
Logging.TRANSFORM.fine("Upgrading class version from " + major + " to " + upgradedVersion);
|
|
||||||
version = upgradedVersion;
|
|
||||||
context.markModified();
|
|
||||||
}
|
|
||||||
super.visit(version, access, name, signature, superName, interfaces);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Class File Version Transformer";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<TransformUnit> appliedTransformers;
|
private List<TransformUnit> appliedTransformers;
|
||||||
private String className;
|
|
||||||
private byte[] classBuffer;
|
|
||||||
private ClassLoader classLoader;
|
|
||||||
private int minVersion = -1;
|
private int minVersion = -1;
|
||||||
private int upgradedVersion = -1;
|
private int upgradedVersion = -1;
|
||||||
|
|
||||||
@ -153,7 +117,7 @@ public class ClassTransformer implements ClassFileTransformer {
|
|||||||
return Optional.of(classBuffer);
|
return Optional.of(classBuffer);
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
accept(new ClassVersionTransformUnit());
|
accept(new ClassVersionTransformUnit(minVersion, upgradedVersion));
|
||||||
return Optional.of(classBuffer);
|
return Optional.of(classBuffer);
|
||||||
} catch (ClassVersionException e) {
|
} catch (ClassVersionException e) {
|
||||||
Logging.TRANSFORM.warning("Skipping [" + className + "], " + e.getMessage());
|
Logging.TRANSFORM.warning("Skipping [" + className + "], " + e.getMessage());
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package moe.yushi.authlibinjector.transform;
|
||||||
|
|
||||||
|
class ClassVersionException extends RuntimeException {
|
||||||
|
public ClassVersionException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package moe.yushi.authlibinjector.transform;
|
||||||
|
|
||||||
|
import static org.objectweb.asm.Opcodes.ASM7;
|
||||||
|
import java.util.Optional;
|
||||||
|
import org.objectweb.asm.ClassVisitor;
|
||||||
|
import moe.yushi.authlibinjector.util.Logging;
|
||||||
|
|
||||||
|
class ClassVersionTransformUnit implements TransformUnit {
|
||||||
|
|
||||||
|
private final int minVersion;
|
||||||
|
private final int upgradedVersion;
|
||||||
|
|
||||||
|
public ClassVersionTransformUnit(int minVersion, int upgradedVersion) {
|
||||||
|
this.minVersion = minVersion;
|
||||||
|
this.upgradedVersion = upgradedVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<ClassVisitor> transform(ClassLoader classLoader, String className, ClassVisitor writer, TransformContext context) {
|
||||||
|
return Optional.of(new ClassVisitor(ASM7, writer) {
|
||||||
|
@Override
|
||||||
|
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
|
||||||
|
int major = version & 0xffff;
|
||||||
|
|
||||||
|
if (minVersion != -1 && major < minVersion) {
|
||||||
|
throw new ClassVersionException("class version (" + major + ") is lower than required(" + minVersion + ")");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (upgradedVersion != -1 && major < upgradedVersion) {
|
||||||
|
Logging.TRANSFORM.fine("Upgrading class version from " + major + " to " + upgradedVersion);
|
||||||
|
version = upgradedVersion;
|
||||||
|
context.markModified();
|
||||||
|
}
|
||||||
|
super.visit(version, access, name, signature, superName, interfaces);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Class File Version Transformer";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package moe.yushi.authlibinjector.transform;
|
||||||
|
|
||||||
|
public interface TransformContext {
|
||||||
|
|
||||||
|
void markModified();
|
||||||
|
|
||||||
|
void requireMinimumClassVersion(int version);
|
||||||
|
|
||||||
|
void upgradeClassVersion(int version);
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -21,16 +21,6 @@ import org.objectweb.asm.ClassVisitor;
|
|||||||
|
|
||||||
public interface TransformUnit {
|
public interface TransformUnit {
|
||||||
|
|
||||||
public interface TransformContext {
|
|
||||||
|
|
||||||
void markModified();
|
|
||||||
|
|
||||||
void requireMinimumClassVersion(int version);
|
|
||||||
|
|
||||||
void upgradeClassVersion(int version);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Optional<ClassVisitor> transform(ClassLoader classLoader, String className, ClassVisitor writer, TransformContext context);
|
Optional<ClassVisitor> transform(ClassLoader classLoader, String className, ClassVisitor writer, TransformContext context);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -39,6 +39,7 @@ import org.objectweb.asm.Type;
|
|||||||
|
|
||||||
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
||||||
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
import moe.yushi.authlibinjector.util.Logging;
|
import moe.yushi.authlibinjector.util.Logging;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -30,6 +30,7 @@ import org.objectweb.asm.ClassVisitor;
|
|||||||
import org.objectweb.asm.Label;
|
import org.objectweb.asm.Label;
|
||||||
import org.objectweb.asm.MethodVisitor;
|
import org.objectweb.asm.MethodVisitor;
|
||||||
|
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -14,11 +14,12 @@
|
|||||||
* You should have received a copy of the GNU Affero General Public License
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package moe.yushi.authlibinjector.transform;
|
package moe.yushi.authlibinjector.transform.support;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import moe.yushi.authlibinjector.httpd.URLProcessor;
|
import moe.yushi.authlibinjector.httpd.URLProcessor;
|
||||||
|
import moe.yushi.authlibinjector.transform.LdcTransformUnit;
|
||||||
|
|
||||||
public class ConstantURLTransformUnit extends LdcTransformUnit {
|
public class ConstantURLTransformUnit extends LdcTransformUnit {
|
||||||
|
|
@ -22,6 +22,8 @@ import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import org.objectweb.asm.ClassVisitor;
|
import org.objectweb.asm.ClassVisitor;
|
||||||
import org.objectweb.asm.MethodVisitor;
|
import org.objectweb.asm.MethodVisitor;
|
||||||
|
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
|
|
||||||
public class LaunchwrapperExclusionTransformer implements TransformUnit {
|
public class LaunchwrapperExclusionTransformer implements TransformUnit {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -29,6 +29,7 @@ import org.objectweb.asm.ClassVisitor;
|
|||||||
import org.objectweb.asm.MethodVisitor;
|
import org.objectweb.asm.MethodVisitor;
|
||||||
|
|
||||||
import moe.yushi.authlibinjector.AuthlibInjector;
|
import moe.yushi.authlibinjector.AuthlibInjector;
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
import moe.yushi.authlibinjector.util.Logging;
|
import moe.yushi.authlibinjector.util.Logging;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -35,6 +35,7 @@ import org.objectweb.asm.MethodVisitor;
|
|||||||
import moe.yushi.authlibinjector.AuthlibInjector;
|
import moe.yushi.authlibinjector.AuthlibInjector;
|
||||||
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
||||||
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
import moe.yushi.authlibinjector.util.Logging;
|
import moe.yushi.authlibinjector.util.Logging;
|
||||||
import moe.yushi.authlibinjector.util.WeakIdentityHashMap;
|
import moe.yushi.authlibinjector.util.WeakIdentityHashMap;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -33,6 +33,7 @@ import org.objectweb.asm.MethodVisitor;
|
|||||||
|
|
||||||
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
||||||
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
import moe.yushi.authlibinjector.util.Logging;
|
import moe.yushi.authlibinjector.util.Logging;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -31,6 +31,7 @@ import org.objectweb.asm.MethodVisitor;
|
|||||||
|
|
||||||
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
||||||
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
|
|
||||||
public class SkinWhitelistTransformUnit implements TransformUnit {
|
public class SkinWhitelistTransformUnit implements TransformUnit {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 Haowei Wen <yushijinhun@gmail.com> and contributors
|
* Copyright (C) 2020 Haowei Wen <yushijinhun@gmail.com> and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -46,6 +46,7 @@ import org.objectweb.asm.MethodVisitor;
|
|||||||
|
|
||||||
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
import moe.yushi.authlibinjector.transform.CallbackMethod;
|
||||||
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
import moe.yushi.authlibinjector.transform.CallbackSupport;
|
||||||
|
import moe.yushi.authlibinjector.transform.TransformContext;
|
||||||
import moe.yushi.authlibinjector.transform.TransformUnit;
|
import moe.yushi.authlibinjector.transform.TransformUnit;
|
||||||
|
|
||||||
public class YggdrasilKeyTransformUnit implements TransformUnit {
|
public class YggdrasilKeyTransformUnit implements TransformUnit {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user