First release.

This commit is contained in:
Mathieu 2020-04-14 18:56:16 +02:00
parent 5f26424ed9
commit d609562658
102 changed files with 37481 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
#Tue Apr 14 17:36:20 CEST 2020
gradle.version=4.8.1

Binary file not shown.

View File

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

6
.idea/compiler.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="1.8" />
</component>
</project>

9
.idea/discord.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="true" />
</component>
<component name="ProjectNotificationSettings">
<option name="askShowProject" value="false" />
</component>
</project>

19
.idea/gradle.xml Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
</project>

40
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="deobfDeps" />
<option name="name" value="deobfDeps" />
<option name="url" value="file:/$USER_HOME$/.gradle/caches/minecraft/deobfedDeps/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="minecraft" />
<option name="name" value="minecraft" />
<option name="url" value="https://libraries.minecraft.net/" />
</remote-repository>
<remote-repository>
<option name="id" value="forge" />
<option name="name" value="forge" />
<option name="url" value="https://files.minecraftforge.net/maven" />
</remote-repository>
<remote-repository>
<option name="id" value="sponge" />
<option name="name" value="sponge" />
<option name="url" value="http://repo.spongepowered.org/maven" />
</remote-repository>
</component>
</project>

18
.idea/misc.xml Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="3">
<item index="0" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod" />
<item index="1" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod.EventHandler" />
<item index="2" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.eventhandler.SubscribeEvent" />
</list>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>
</facet>
</component>
<component name="McpModuleSettings">
<option name="srgType" value="SRG" />
</component>
</module>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

127
build.gradle Normal file
View File

@ -0,0 +1,127 @@
buildscript {
repositories {
jcenter()
maven { url = "https://files.minecraftforge.net/maven" }
maven {
name = 'sponge'
url = 'https://repo.spongepowered.org/maven'
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.4'
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'com.github.johnrengelman.shadow'
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
repositories {
maven {
name = "sponge"
url = 'http://repo.spongepowered.org/maven'
}
}
version = "1.0"
group = "ch.m4th1eu.chunkpatcher" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "ChunkPatcher"
sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
compileJava {
compileJava.options.encoding = 'UTF-8'
sourceCompatibility = targetCompatibility = '1.8'
}
minecraft {
version = "1.12.2-14.23.5.2768"
runDir = "run"
// the mappings can be changed at any time, and must be in the following format.
// snapshot_YYYYMMDD snapshot are built nightly.
// stable_# stables are built at the discretion of the MCP team.
// Use non-default mappings at your own risk. they may not always work.
// simply re-run your setup task after changing the mappings to update your workspace.
mappings = "stable_39"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}
dependencies {
compile('org.spongepowered:mixin:0.7.11-SNAPSHOT') {
exclude module: "asm-commons"
exclude module: "asm-tree"
exclude module: "launchwrapper"
exclude module: "guava"
exclude module: "log4j-core"
exclude module: "gson"
exclude module: "commons-io"
}
// you may put jars on which you depend on in ./libs
// or you may define them like so..
//compile "some.group:artifact:version:classifier"
//compile "some.group:artifact:version"
// real examples
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
//compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
// the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
//provided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
// the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided,
// except that these dependencies get remapped to your current MCP mappings
//deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev'
//deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
// for more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version': project.version, 'mcversion': project.minecraft.version
}
// copy everything else except the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
jar {
manifest.attributes(
'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
'MixinConfigs': 'mixins.chunkpatcher.json',
'FMLCorePluginContainsFMLMod': 'true',
)
}
sourceSets {
main {
ext.refMap = "mixins.chunkpatcher.refmap.json"
}
}
reobf { shadowJar { mappingType = "SEARGE" } }
tasks.reobfShadowJar.mustRunAfter shadowJar
artifacts {
archives shadowJar
}

View File

@ -0,0 +1,16 @@
[
{
"modid": "chunkpatcher",
"name": "Chunk Overflow Patcher",
"description": "This mod fix the chunk overflow glitch",
"version": "1.0",
"mcversion": "1.12.2",
"url": "https://mathieubroillet.ch",
"updateUrl": "",
"authorList": ["M4TH1EU_#0001"],
"credits": "Nobody sry...",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]

View File

@ -0,0 +1,13 @@
{
"required": true,
"package": "ch.m4th1eu.chunkpatcher.mixins",
"refmap": "mixins.chunkpatcher.refmap.json",
"target": "@env(DEFAULT)",
"minVersion": "0.7.11",
"compatibilityLevel": "JAVA_8",
"mixins": [
],
"client": [
"MixinChunkPatcher"
]
}

View File

@ -0,0 +1,7 @@
{
"pack": {
"description": "examplemod resources",
"pack_format": 3,
"_comment": "A pack_format of 3 should be used starting with Minecraft 1.11. All resources, including language files, should be lowercase (eg: en_us.lang). A pack_format of 2 will load your mod resources with LegacyV2Adapter, which requires language files to have uppercase letters (eg: en_US.lang)."
}
}

View File

@ -0,0 +1,43 @@
package ch.m4th1eu.chunkpatcher;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
import org.spongepowered.asm.launch.MixinBootstrap;
import org.spongepowered.asm.mixin.Mixins;
import javax.annotation.Nullable;
import java.util.Map;
@IFMLLoadingPlugin.MCVersion("1.12.2")
public class Core implements IFMLLoadingPlugin{
public Core() {
System.out.println("INIT");
MixinBootstrap.init();
Mixins.addConfiguration("mixins.chunkpatcher.json");
}
@Override
public String[] getASMTransformerClass() {
return new String[0];
}
@Override
public String getModContainerClass() {
return null;
}
@Nullable
@Override
public String getSetupClass() {
return null;
}
@Override
public void injectData(Map<String, Object> data) {
}
@Override
public String getAccessTransformerClass() {
return null;
}
}

View File

@ -0,0 +1,99 @@
package ch.m4th1eu.chunkpatcher.mixins;
import io.netty.buffer.Unpooled;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiScreenBook;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.client.CPacketCustomPayload;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextFormatting;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import java.io.IOException;
@Mixin(GuiScreenBook.class)
public class MixinChunkPatcher extends GuiScreen {
@Shadow
@Final
private boolean bookIsUnsigned;
@Shadow
private boolean bookIsModified;
@Shadow
private NBTTagList bookPages;
@Shadow
@Final
private ItemStack book;
@Shadow
@Final
private EntityPlayer editingPlayer;
@Shadow
private String bookTitle;
/**
* @author M4TH1EU_#0001
* @reason Fix the chunk overflow glitches.
*/
@Overwrite
private void sendBookToServer(boolean publish) throws IOException {
if (bookIsUnsigned && this.bookIsModified) {
if (this.bookPages != null) {
if (isChinese(bookPages.toString())) {
editingPlayer.sendMessage(new TextComponentString(TextFormatting.RED + "Vous ne pouvez pas écrire des caractères spéciaux dans les livres."));
return;
}
while (this.bookPages.tagCount() > 1) {
String s = this.bookPages.getStringTagAt(this.bookPages.tagCount() - 1);
if (!s.isEmpty()) {
break;
}
this.bookPages.removeTag(this.bookPages.tagCount() - 1);
}
if (this.book.hasTagCompound()) {
NBTTagCompound nbttagcompound = this.book.getTagCompound();
nbttagcompound.setTag("pages", this.bookPages);
} else {
this.book.setTagInfo("pages", this.bookPages);
}
String s1 = "MC|BEdit";
if (publish) {
s1 = "MC|BSign";
this.book.setTagInfo("author", new NBTTagString(this.editingPlayer.getName()));
this.book.setTagInfo("title", new NBTTagString(this.bookTitle.trim()));
}
PacketBuffer packetbuffer = new PacketBuffer(Unpooled.buffer());
packetbuffer.writeItemStack(this.book);
this.mc.getConnection().sendPacket(new CPacketCustomPayload(s1, packetbuffer));
}
}
}
private boolean isChinese(final String text) {
/*final CharsetEncoder asciiEncoder = StandardCharsets.US_ASCII.newEncoder();
final CharsetEncoder isoEncoder = StandardCharsets.ISO_8859_1.newEncoder();
return asciiEncoder.canEncode(text) || isoEncoder.canEncode(text);*/
return text.codePoints().anyMatch(
codepoint ->
Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN);
}
}

View File

@ -0,0 +1,4 @@
{
"mappings": {},
"data": {}
}

View File

@ -0,0 +1,7 @@
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookIsUnsigned ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/i
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookIsModified ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/s
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookPages ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/z
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/book ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/h
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/editingPlayer ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/g
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookTitle ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/A
MD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/sendBookToServer (Z)V ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/b (Z)V

View File

@ -0,0 +1,7 @@
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookIsUnsigned ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/field_146475_i
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookIsModified ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/field_146481_r
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookPages ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/field_146483_y
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/book ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/field_146474_h
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/editingPlayer ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/field_146468_g
FD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/bookTitle ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/field_146482_z
MD: ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/sendBookToServer (Z)V ch/m4th1eu/chunkpatcher/mixins/MixinChunkPatcher/func_146462_a (Z)V

View File

@ -0,0 +1,4 @@
{
"mappings": {},
"data": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
Manifest-Version: 1.0
MixinConfigs: mixins.chunkpatcher.json
FMLCorePluginContainsFMLMod: true
TweakClass: org.spongepowered.asm.launch.MixinTweaker

3
gradle.properties Normal file
View File

@ -0,0 +1,3 @@
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx3G

View File

@ -0,0 +1,6 @@
#Tue Apr 14 17:38:10 CEST 2020
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

172
gradlew vendored Normal file
View File

@ -0,0 +1,172 @@
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

84
gradlew.bat vendored Normal file
View File

@ -0,0 +1,84 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@ -0,0 +1 @@
Class,Method,Signature,Interface
1 Class Method Signature Interface

View File

@ -0,0 +1 @@
Mixin Implementation Report generated on 2020-04-14 18:21:54

87
run/config/forge.cfg Normal file
View File

@ -0,0 +1,87 @@
# Configuration file
client {
# Toggle off to make missing model text in the gui fit inside the slot.
B:zoomInMissingModelTextInGui=false
# Enable uploading cloud geometry to the GPU for faster rendering.
B:forgeCloudsEnabled=true
# Disable culling of hidden faces next to stairs and slabs. Causes extra rendering, but may fix some resource packs that exploit this vanilla mechanic.
B:disableStairSlabCulling=false
# Enable forge to queue all chunk updates to the Chunk Update thread. May increase FPS significantly, but may also cause weird rendering lag. Not recommended for computers without a significant number of cores available.
B:alwaysSetupTerrainOffThread=false
# Control the range of sky blending for colored skies in biomes.
I:biomeSkyBlendRange <
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
>
# Enable the forge block rendering pipeline - fixes the lighting of custom models.
B:forgeLightPipelineEnabled=true
# When enabled, makes specific reload tasks such as language changing quicker to run.
B:selectiveResourceReloadEnabled=false
}
general {
# Set to true to disable Forge's version check mechanics. Forge queries a small json file on our server for version information. For more details see the ForgeVersion class in our github.
B:disableVersionCheck=false
# Controls the number threshold at which Packet51 is preferred over Packet52, default and minimum 64, maximum 1024
I:clumpingThreshold=64
# Set to true to enable the post initialization sorting of crafting recipes using Forge's sorter. May cause desyncing on conflicting recipes. MUST RESTART MINECRAFT IF CHANGED FROM THE CONFIG GUI.
B:sortRecipies=true
# Set this to true to remove any Entity that throws an error in its update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES.
B:removeErroringEntities=false
# Set this to true to remove any TileEntity that throws an error in its update method instead of closing the server and reporting a crash log. BE WARNED THIS COULD SCREW UP EVERYTHING USE SPARINGLY WE ARE NOT RESPONSIBLE FOR DAMAGES.
B:removeErroringTileEntities=false
# Set this to true to check the entire entity's collision bounding box for ladders instead of just the block they are in. Causes noticeable differences in mechanics so default is vanilla behavior. Default: false
B:fullBoundingBoxLadders=false
# Base zombie summoning spawn chance. Allows changing the bonus zombie summoning mechanic.
D:zombieBaseSummonChance=0.1
# Chance that a zombie (or subclass) is a baby. Allows changing the zombie spawning mechanic.
D:zombieBabyChance=0.05
# Log cascading chunk generation issues during terrain population.
B:logCascadingWorldGeneration=true
# Fix vanilla issues that cause worldgen cascading. This DOES change vanilla worldgen so DO NOT report bugs related to world differences if this flag is on.
B:fixVanillaCascading=false
# The time in ticks the server will wait when a dimension was queued to unload. This can be useful when rapidly loading and unloading dimensions, like e.g. throwing items through a nether portal a few time per second.
I:dimensionUnloadQueueDelay=0
B:enableGlobalConfig=false
}
version_checking {
# Enable the entire mod update check system. This only applies to mods using the Forge system.
B:Global=true
}

View File

@ -0,0 +1,51 @@
# Configuration file
##########################################################################################################
# defaults
#--------------------------------------------------------------------------------------------------------#
# Default configuration for forge chunk loading control
##########################################################################################################
defaults {
# Are mod overrides enabled?
B:enabled=true
# The default maximum number of chunks a mod can force, per ticket,
# for a mod without an override. This is the maximum number of chunks a single ticket can force.
I:maximumChunksPerTicket=25
# The default maximum ticket count for a mod which does not have an override
# in this file. This is the number of chunk loading requests a mod is allowed to make.
I:maximumTicketCount=200
# The number of tickets a player can be assigned instead of a mod. This is shared across all mods and it is up to the mods to use it.
I:playerTicketCount=500
# Unloaded chunks can first be kept in a dormant cache for quicker
# loading times. Specify the size (in chunks) of that cache here
I:dormantChunkCacheSize=0
# Load chunks asynchronously for players, reducing load on the server thread.
# Can be disabled to help troubleshoot chunk loading issues.
B:asyncChunkLoading=true
}
##########################################################################################################
# forge
#--------------------------------------------------------------------------------------------------------#
# Sample mod specific control section.
# Copy this section and rename the with the modid for the mod you wish to override.
# A value of zero in either entry effectively disables any chunkloading capabilities
# for that mod
##########################################################################################################
forge {
# Maximum chunks per ticket for the mod.
I:maximumChunksPerTicket=25
# Maximum ticket count for the mod. Zero disables chunkloading capabilities.
I:maximumTicketCount=200
}

View File

@ -0,0 +1,17 @@
#Splash screen properties
#Tue Apr 14 18:22:01 CEST 2020
background=0xFFFFFF
memoryGood=0x78CB34
font=0x0
barBackground=0xFFFFFF
barBorder=0xC0C0C0
memoryLow=0xE42F2F
rotate=false
memoryWarn=0xE6E84A
showMemory=true
bar=0xCB3D35
enabled=true
resourcePackPath=resources
logoOffset=0
forgeTexture=fml\:textures/gui/forge.png
fontTexture=textures/font/ascii.png

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
run/logs/debug-1.log.gz Normal file

Binary file not shown.

BIN
run/logs/debug-2.log.gz Normal file

Binary file not shown.

BIN
run/logs/debug-3.log.gz Normal file

Binary file not shown.

BIN
run/logs/debug-4.log.gz Normal file

Binary file not shown.

BIN
run/logs/debug-5.log.gz Normal file

Binary file not shown.

104
run/options.txt Normal file
View File

@ -0,0 +1,104 @@
version:1343
invertYMouse:false
mouseSensitivity:0.5
fov:0.0
gamma:0.0
saturation:0.0
renderDistance:12
guiScale:0
particles:0
bobView:true
anaglyph3d:false
maxFps:120
fboEnable:true
difficulty:2
fancyGraphics:true
ao:2
renderClouds:true
resourcePacks:[]
incompatibleResourcePacks:[]
lastServer:
lang:en_us
chatVisibility:0
chatColors:true
chatLinks:true
chatLinksPrompt:true
chatOpacity:1.0
snooperEnabled:true
fullscreen:false
enableVsync:true
useVbo:true
hideServerAddress:false
advancedItemTooltips:false
pauseOnLostFocus:true
touchscreen:false
overrideWidth:0
overrideHeight:0
heldItemTooltips:true
chatHeightFocused:1.0
chatHeightUnfocused:0.44366196
chatScale:1.0
chatWidth:1.0
mipmapLevels:4
forceUnicodeFont:false
reducedDebugInfo:false
useNativeTransport:true
entityShadows:true
mainHand:right
attackIndicator:1
showSubtitles:false
realmsNotifications:true
enableWeakAttacks:false
autoJump:true
narrator:0
tutorialStep:none
key_key.attack:-100
key_key.use:-99
key_key.forward:17
key_key.left:30
key_key.back:31
key_key.right:32
key_key.jump:57
key_key.sneak:42
key_key.sprint:29
key_key.drop:16
key_key.inventory:18
key_key.chat:20
key_key.playerlist:15
key_key.pickItem:-98
key_key.command:53
key_key.screenshot:60
key_key.togglePerspective:63
key_key.smoothCamera:0
key_key.fullscreen:87
key_key.spectatorOutlines:0
key_key.swapHands:33
key_key.saveToolbarActivator:46
key_key.loadToolbarActivator:45
key_key.advancements:38
key_key.hotbar.1:2
key_key.hotbar.2:3
key_key.hotbar.3:4
key_key.hotbar.4:5
key_key.hotbar.5:6
key_key.hotbar.6:7
key_key.hotbar.7:8
key_key.hotbar.8:9
key_key.hotbar.9:10
soundCategory_master:0.2218543
soundCategory_music:0.0
soundCategory_record:1.0
soundCategory_weather:1.0
soundCategory_block:1.0
soundCategory_hostile:1.0
soundCategory_neutral:1.0
soundCategory_player:1.0
soundCategory_ambient:1.0
soundCategory_voice:1.0
modelPart_cape:true
modelPart_jacket:true
modelPart_left_sleeve:true
modelPart_right_sleeve:true
modelPart_left_pants_leg:true
modelPart_right_pants_leg:true
modelPart_hat:true

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,8 @@
{
"minecraft:adventure/adventuring_time": {
"criteria": {
"plains": "2020-04-14 18:21:08 +0200"
},
"done": false
}
}

View File

@ -0,0 +1,20 @@
{
"minecraft:adventure/adventuring_time": {
"criteria": {
"plains": "2020-04-14 18:05:24 +0200"
},
"done": false
},
"minecraft:recipes/building_blocks/bookshelf": {
"criteria": {
"has_book": "2020-04-14 18:08:25 +0200"
},
"done": true
},
"minecraft:recipes/misc/writable_book": {
"criteria": {
"has_book": "2020-04-14 18:08:25 +0200"
},
"done": true
}
}

View File

@ -0,0 +1,8 @@
{
"minecraft:adventure/adventuring_time": {
"criteria": {
"plains": "2020-04-14 17:57:35 +0200"
},
"done": false
}
}

View File

@ -0,0 +1,8 @@
{
"minecraft:adventure/adventuring_time": {
"criteria": {
"plains": "2020-04-14 18:22:22 +0200"
},
"done": false
}
}

View File

@ -0,0 +1,9 @@
{
"minecraft:adventure/adventuring_time": {
"criteria": {
"plains": "2020-04-14 17:55:37 +0200",
"roofed_forest": "2020-04-14 17:55:46 +0200"
},
"done": false
}
}

View File

@ -0,0 +1,8 @@
{
"minecraft:adventure/adventuring_time": {
"criteria": {
"plains": "2020-04-14 18:11:20 +0200"
},
"done": false
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,8 @@
{
"stat.walkOneCm": 628,
"stat.jump": 1,
"stat.useItem.minecraft.writable_book": 1,
"stat.playOneMinute": 380,
"stat.leaveGame": 1,
"stat.timeSinceDeath": 380
}

View File

@ -0,0 +1,8 @@
{
"stat.walkOneCm": 605,
"stat.jump": 2,
"stat.useItem.minecraft.writable_book": 5,
"stat.playOneMinute": 4040,
"stat.leaveGame": 1,
"stat.timeSinceDeath": 4040
}

View File

@ -0,0 +1,9 @@
{
"stat.walkOneCm": 679,
"stat.jump": 1,
"stat.useItem.minecraft.writable_book": 7,
"stat.playOneMinute": 5743,
"stat.leaveGame": 1,
"stat.timeSinceDeath": 5743,
"stat.useItem.minecraft.written_book": 4
}

View File

@ -0,0 +1,10 @@
{
"stat.flyOneCm": 2120,
"stat.walkOneCm": 942,
"stat.jump": 11,
"stat.useItem.minecraft.writable_book": 4,
"stat.playOneMinute": 2507,
"stat.timeSinceDeath": 2507,
"stat.useItem.minecraft.written_book": 1,
"stat.sprintOneCm": 597
}

View File

@ -0,0 +1,9 @@
{
"stat.flyOneCm": 502,
"stat.walkOneCm": 1115,
"stat.jump": 2,
"stat.useItem.minecraft.writable_book": 3,
"stat.playOneMinute": 1007,
"stat.timeSinceDeath": 1007,
"stat.useItem.minecraft.written_book": 3
}

View File

@ -0,0 +1,11 @@
{
"stat.flyOneCm": 837,
"stat.walkOneCm": 2405,
"stat.jump": 8,
"stat.useItem.minecraft.writable_book": 7,
"stat.playOneMinute": 9108,
"stat.leaveGame": 1,
"stat.timeSinceDeath": 9108,
"stat.useItem.minecraft.written_book": 1,
"stat.sprintOneCm": 427
}

32
run/usercache.json Normal file
View File

@ -0,0 +1,32 @@
[
{
"name": "Player605",
"uuid": "98baa43b-a62e-3d66-8ee8-0933f53e227d",
"expiresOn": "2020-05-14 18:22:22 +0200"
},
{
"name": "Player300",
"uuid": "dc5bf89f-805c-3c6b-8f75-15e42fa5be8f",
"expiresOn": "2020-05-14 17:55:37 +0200"
},
{
"name": "Player536",
"uuid": "8cfc5391-e37d-328f-a689-9b5f6c4663f5",
"expiresOn": "2020-05-14 17:57:35 +0200"
},
{
"name": "Player265",
"uuid": "e2fd3051-a7ee-3ec9-ae1f-a1b6240b0501",
"expiresOn": "2020-05-14 18:11:19 +0200"
},
{
"name": "Player386",
"uuid": "383d2669-dd1d-3bb6-9599-ddb9736fd75c",
"expiresOn": "2020-05-14 18:05:24 +0200"
},
{
"name": "Player812",
"uuid": "34692304-57b2-31f8-a84c-d22c6ff753f7",
"expiresOn": "2020-05-14 18:21:08 +0200"
}
]

8
run/usernamecache.json Normal file
View File

@ -0,0 +1,8 @@
{
"dc5bf89f-805c-3c6b-8f75-15e42fa5be8f": "Player300",
"8cfc5391-e37d-328f-a689-9b5f6c4663f5": "Player536",
"383d2669-dd1d-3bb6-9599-ddb9736fd75c": "Player386",
"e2fd3051-a7ee-3ec9-ae1f-a1b6240b0501": "Player265",
"34692304-57b2-31f8-a84c-d22c6ff753f7": "Player812",
"98baa43b-a62e-3d66-8ee8-0933f53e227d": "Player605"
}

View File

@ -0,0 +1,44 @@
package ch.m4th1eu.chunkpatcher;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
import org.spongepowered.asm.launch.MixinBootstrap;
import org.spongepowered.asm.mixin.Mixins;
import javax.annotation.Nullable;
import java.util.Map;
@IFMLLoadingPlugin.MCVersion("1.12.2")
public class Core implements IFMLLoadingPlugin {
public Core() {
System.out.println("INIT");
MixinBootstrap.init();
Mixins.addConfiguration("mixins.chunkpatcher.json");
}
@Override
public String[] getASMTransformerClass() {
return new String[0];
}
@Override
public String getModContainerClass() {
return null;
}
@Nullable
@Override
public String getSetupClass() {
return null;
}
@Override
public void injectData(Map<String, Object> data) {
}
@Override
public String getAccessTransformerClass() {
return null;
}
}

View File

@ -0,0 +1,99 @@
package ch.m4th1eu.chunkpatcher.mixins;
import io.netty.buffer.Unpooled;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiScreenBook;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.client.CPacketCustomPayload;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextFormatting;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import java.io.IOException;
@Mixin(GuiScreenBook.class)
public class MixinChunkPatcher extends GuiScreen {
@Shadow
@Final
private boolean bookIsUnsigned;
@Shadow
private boolean bookIsModified;
@Shadow
private NBTTagList bookPages;
@Shadow
@Final
private ItemStack book;
@Shadow
@Final
private EntityPlayer editingPlayer;
@Shadow
private String bookTitle;
/**
* @author M4TH1EU_#0001
* @reason Fix the chunk overflow glitches.
*/
@Overwrite
private void sendBookToServer(boolean publish) throws IOException {
if (bookIsUnsigned && this.bookIsModified) {
if (this.bookPages != null) {
if (isChinese(bookPages.toString())) {
editingPlayer.sendMessage(new TextComponentString(TextFormatting.RED + "Vous ne pouvez pas écrire des caractères spéciaux dans les livres."));
return;
}
while (this.bookPages.tagCount() > 1) {
String s = this.bookPages.getStringTagAt(this.bookPages.tagCount() - 1);
if (!s.isEmpty()) {
break;
}
this.bookPages.removeTag(this.bookPages.tagCount() - 1);
}
if (this.book.hasTagCompound()) {
NBTTagCompound nbttagcompound = this.book.getTagCompound();
nbttagcompound.setTag("pages", this.bookPages);
} else {
this.book.setTagInfo("pages", this.bookPages);
}
String s1 = "MC|BEdit";
if (publish) {
s1 = "MC|BSign";
this.book.setTagInfo("author", new NBTTagString(this.editingPlayer.getName()));
this.book.setTagInfo("title", new NBTTagString(this.bookTitle.trim()));
}
PacketBuffer packetbuffer = new PacketBuffer(Unpooled.buffer());
packetbuffer.writeItemStack(this.book);
this.mc.getConnection().sendPacket(new CPacketCustomPayload(s1, packetbuffer));
}
}
}
private boolean isChinese(final String text) {
/*final CharsetEncoder asciiEncoder = StandardCharsets.US_ASCII.newEncoder();
final CharsetEncoder isoEncoder = StandardCharsets.ISO_8859_1.newEncoder();
return asciiEncoder.canEncode(text) || isoEncoder.canEncode(text);*/
return text.codePoints().anyMatch(
codepoint ->
Character.UnicodeScript.of(codepoint) == Character.UnicodeScript.HAN);
}
}

View File

@ -0,0 +1,18 @@
[
{
"modid": "chunkpatcher",
"name": "Chunk Overflow Patcher",
"description": "This mod fix the chunk overflow glitch",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "https://mathieubroillet.ch",
"updateUrl": "",
"authorList": [
"M4TH1EU_#0001"
],
"credits": "Nobody sry...",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]

Some files were not shown because too many files have changed in this diff Show More