Commit 44a45235b08f1558277c3b1ca6c3e621bf6a9906
1 parent
9eca984c
Initial work to switch implemention to mixins
Showing
65 changed files
with
2108 additions
and
924 deletions
.gitignore
@@ -2,7 +2,6 @@ | @@ -2,7 +2,6 @@ | ||
2 | ######### | 2 | ######### |
3 | MANIFEST.MF | 3 | MANIFEST.MF |
4 | dependency-reduced-pom.xml | 4 | dependency-reduced-pom.xml |
5 | -.checkstyle | ||
6 | 5 | ||
7 | # Compiled # | 6 | # Compiled # |
8 | ############ | 7 | ############ |
@@ -19,7 +18,6 @@ target | @@ -19,7 +18,6 @@ target | ||
19 | *.exe | 18 | *.exe |
20 | *.o | 19 | *.o |
21 | *.so | 20 | *.so |
22 | -*.launch | ||
23 | 21 | ||
24 | # Databases # | 22 | # Databases # |
25 | ############# | 23 | ############# |
@@ -55,9 +53,12 @@ target | @@ -55,9 +53,12 @@ target | ||
55 | .DS_Store | 53 | .DS_Store |
56 | ehthumbs.db | 54 | ehthumbs.db |
57 | Thumbs.db | 55 | Thumbs.db |
56 | +*.bat | ||
57 | +*.sh | ||
58 | 58 | ||
59 | # Project # | 59 | # Project # |
60 | ########### | 60 | ########### |
61 | +.checkstyle | ||
61 | .classpath | 62 | .classpath |
62 | .externalToolBuilders | 63 | .externalToolBuilders |
63 | .gradle | 64 | .gradle |
@@ -73,4 +74,5 @@ nb-configuration.xml | @@ -73,4 +74,5 @@ nb-configuration.xml | ||
73 | *.iml | 74 | *.iml |
74 | *.ipr | 75 | *.ipr |
75 | *.iws | 76 | *.iws |
77 | +*.launch | ||
76 | 78 |
build.gradle
@@ -15,6 +15,7 @@ buildscript { | @@ -15,6 +15,7 @@ buildscript { | ||
15 | dependencies { | 15 | dependencies { |
16 | classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' | 16 | classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' |
17 | classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.0' | 17 | classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.0' |
18 | + classpath 'org.spongepowered:mixingradle:0.1-SNAPSHOT' | ||
18 | } | 19 | } |
19 | } | 20 | } |
20 | 21 | ||
@@ -22,10 +23,15 @@ apply plugin: 'net.minecraftforge.gradle.tweaker-client' | @@ -22,10 +23,15 @@ apply plugin: 'net.minecraftforge.gradle.tweaker-client' | ||
22 | apply plugin: 'checkstyle' | 23 | apply plugin: 'checkstyle' |
23 | apply plugin: 'maven' | 24 | apply plugin: 'maven' |
24 | apply plugin: 'com.github.johnrengelman.shadow' | 25 | apply plugin: 'com.github.johnrengelman.shadow' |
26 | +apply plugin: 'org.spongepowered.mixin' | ||
27 | + | ||
28 | +// Default tasks | ||
29 | +defaultTasks 'build' | ||
25 | 30 | ||
26 | ext { | 31 | ext { |
27 | // Artefact details | 32 | // Artefact details |
28 | buildNumber = project.hasProperty("buildNumber") ? buildNumber : '0' | 33 | buildNumber = project.hasProperty("buildNumber") ? buildNumber : '0' |
34 | + buildVersion = project.hasProperty("buildVersion") ? buildVersion : '0.0' | ||
29 | ciSystem = project.hasProperty("ciSystem") ? ciSystem : 'unknown' | 35 | ciSystem = project.hasProperty("ciSystem") ? ciSystem : 'unknown' |
30 | commit = project.hasProperty("commit") ? commit : 'unknown' | 36 | commit = project.hasProperty("commit") ? commit : 'unknown' |
31 | classifier = project.hasProperty("buildType") ? buildType : 'SNAPSHOT' | 37 | classifier = project.hasProperty("buildType") ? buildType : 'SNAPSHOT' |
@@ -39,9 +45,6 @@ ext { | @@ -39,9 +45,6 @@ ext { | ||
39 | 45 | ||
40 | startClass = 'com.mumfrey.liteloader.debug.Start' | 46 | startClass = 'com.mumfrey.liteloader.debug.Start' |
41 | tweakClass = 'com.mumfrey.liteloader.launch.LiteLoaderTweaker' | 47 | tweakClass = 'com.mumfrey.liteloader.launch.LiteLoaderTweaker' |
42 | - | ||
43 | - mixinSrg = new File(project.buildDir, 'tmp/mixins.liteloader/mixins.srg') | ||
44 | - mixinRefMap = new File(project.buildDir, "tmp/mixins.liteloader/mixins.liteloader.refmap.json") | ||
45 | } | 48 | } |
46 | 49 | ||
47 | // Basic project information | 50 | // Basic project information |
@@ -61,7 +64,7 @@ repositories { | @@ -61,7 +64,7 @@ repositories { | ||
61 | } | 64 | } |
62 | 65 | ||
63 | dependencies { | 66 | dependencies { |
64 | - compile('org.spongepowered:mixin:0.4.7-SNAPSHOT') { | 67 | + compile('org.spongepowered:mixin:0.4.10-SNAPSHOT') { |
65 | exclude module: 'launchwrapper' | 68 | exclude module: 'launchwrapper' |
66 | exclude module: 'guava' | 69 | exclude module: 'guava' |
67 | } | 70 | } |
@@ -75,20 +78,28 @@ minecraft { | @@ -75,20 +78,28 @@ minecraft { | ||
75 | } | 78 | } |
76 | 79 | ||
77 | sourceSets { | 80 | sourceSets { |
81 | + main { | ||
82 | + refMap = "mixins.liteloader.core.refmap.json" | ||
83 | + } | ||
78 | client { | 84 | client { |
79 | compileClasspath += main.compileClasspath + main.output | 85 | compileClasspath += main.compileClasspath + main.output |
86 | + refMap = "mixins.liteloader.client.refmap.json" | ||
80 | } | 87 | } |
81 | debug { | 88 | debug { |
82 | compileClasspath += client.compileClasspath + client.output | 89 | compileClasspath += client.compileClasspath + client.output |
83 | } | 90 | } |
84 | } | 91 | } |
85 | 92 | ||
93 | +mixin { | ||
94 | + defaultObfuscationEnv notch | ||
95 | +} | ||
96 | + | ||
86 | checkstyle { | 97 | checkstyle { |
87 | configProperties = [ | 98 | configProperties = [ |
88 | - "name" : project.name, | ||
89 | - "organization": project.organization, | ||
90 | - "url" : project.url, | ||
91 | - "year" : project.inceptionYear | 99 | + "name" : project.name, |
100 | + "organization": project.organization, | ||
101 | + "url" : project.url, | ||
102 | + "year" : project.inceptionYear | ||
92 | ] | 103 | ] |
93 | configFile = file("checkstyle.xml") | 104 | configFile = file("checkstyle.xml") |
94 | toolVersion = '6.13' | 105 | toolVersion = '6.13' |
@@ -99,8 +110,19 @@ javadoc { | @@ -99,8 +110,19 @@ javadoc { | ||
99 | source sourceSets.debug.allJava | 110 | source sourceSets.debug.allJava |
100 | } | 111 | } |
101 | 112 | ||
102 | -// hacks for run configs | ||
103 | afterEvaluate { | 113 | afterEvaluate { |
114 | + logger.lifecycle '=================================================' | ||
115 | + logger.lifecycle ' LiteLoader' | ||
116 | + logger.lifecycle ' Copyright (C) 2011-2015 Adam Mummery-Smith' | ||
117 | + logger.lifecycle ' Running in {} mode', (project.isReleaseBuild ? "RELEASE" : "SNAPSHOT") | ||
118 | + logger.lifecycle '=================================================' | ||
119 | + | ||
120 | + makeEclipseCleanRunClient { | ||
121 | + arguments = "" | ||
122 | + jvmArguments = "-Dliteloader.debug=true -Dmixin.debug.verbose=true -Dmixin.debug.verify=true" | ||
123 | + } | ||
124 | + | ||
125 | + // hacks for run configs | ||
104 | def mc = plugins.getPlugin 'net.minecraftforge.gradle.tweaker-client' | 126 | def mc = plugins.getPlugin 'net.minecraftforge.gradle.tweaker-client' |
105 | mc.replacer.putReplacement '{RUN_CLIENT_MAIN}', project.startClass | 127 | mc.replacer.putReplacement '{RUN_CLIENT_MAIN}', project.startClass |
106 | mc.replacer.putReplacement '{RUN_CLIENT_TWEAKER}', minecraft.tweakClass | 128 | mc.replacer.putReplacement '{RUN_CLIENT_TWEAKER}', minecraft.tweakClass |
@@ -118,6 +140,14 @@ def jarManifest = { | @@ -118,6 +140,14 @@ def jarManifest = { | ||
118 | } | 140 | } |
119 | 141 | ||
120 | jar { | 142 | jar { |
143 | + doFirst { | ||
144 | + // Seriously forge? | ||
145 | + ant.replace( | ||
146 | + file: sourceSets.main.refMapFile, | ||
147 | + token: "func_72355_a(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;)V", | ||
148 | + value: "initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/network/NetHandlerPlayServer;)V" | ||
149 | + ) | ||
150 | + } | ||
121 | from sourceSets.client.output | 151 | from sourceSets.client.output |
122 | from sourceSets.debug.output | 152 | from sourceSets.debug.output |
123 | manifest jarManifest | 153 | manifest jarManifest |
@@ -126,7 +156,6 @@ jar { | @@ -126,7 +156,6 @@ jar { | ||
126 | task releaseJar(type: Jar) { | 156 | task releaseJar(type: Jar) { |
127 | from sourceSets.main.output | 157 | from sourceSets.main.output |
128 | from sourceSets.client.output | 158 | from sourceSets.client.output |
129 | - from project.mixinRefMap | ||
130 | 159 | ||
131 | manifest jarManifest | 160 | manifest jarManifest |
132 | classifier = 'staging' | 161 | classifier = 'staging' |
@@ -138,7 +167,6 @@ shadowJar { | @@ -138,7 +167,6 @@ shadowJar { | ||
138 | 167 | ||
139 | from sourceSets.main.output | 168 | from sourceSets.main.output |
140 | from sourceSets.client.output | 169 | from sourceSets.client.output |
141 | - from project.mixinRefMap | ||
142 | 170 | ||
143 | exclude 'META-INF/*.DSA' | 171 | exclude 'META-INF/*.DSA' |
144 | exclude 'META-INF/*.RSA' | 172 | exclude 'META-INF/*.RSA' |
@@ -170,10 +198,7 @@ tasks.withType(JavaCompile) { | @@ -170,10 +198,7 @@ tasks.withType(JavaCompile) { | ||
170 | '-Xlint:all', | 198 | '-Xlint:all', |
171 | '-Xlint:-path', | 199 | '-Xlint:-path', |
172 | '-Xlint:-rawtypes', | 200 | '-Xlint:-rawtypes', |
173 | - '-Xlint:-processing', | ||
174 | - "-AoutSrgFile=${project.mixinSrg.canonicalPath}", | ||
175 | - "-AoutRefMapFile=${project.mixinRefMap.canonicalPath}", | ||
176 | - "-AreobfSrgFile=${genSrgs.mcpToNotch.canonicalPath}" | 201 | + '-Xlint:-processing' |
177 | ] | 202 | ] |
178 | options.deprecation = true | 203 | options.deprecation = true |
179 | options.encoding = 'utf8' | 204 | options.encoding = 'utf8' |
@@ -188,35 +213,22 @@ if (JavaVersion.current().isJava8Compatible()) { | @@ -188,35 +213,22 @@ if (JavaVersion.current().isJava8Compatible()) { | ||
188 | 213 | ||
189 | reobf { | 214 | reobf { |
190 | jar { | 215 | jar { |
191 | - useSrgSrg() | 216 | + mappingType = 'SEARGE' |
192 | } | 217 | } |
193 | releaseJar { | 218 | releaseJar { |
194 | - useNotchSrg() | 219 | + mappingType = 'NOTCH' |
195 | classpath = sourceSets.main.compileClasspath | 220 | classpath = sourceSets.main.compileClasspath |
196 | - extraFiles([ | ||
197 | - project.mixinSrg | ||
198 | - ]) | ||
199 | } | 221 | } |
200 | shadowJar { | 222 | shadowJar { |
201 | - useNotchSrg() | 223 | + mappingType = 'NOTCH' |
202 | classpath = sourceSets.main.compileClasspath | 224 | classpath = sourceSets.main.compileClasspath |
203 | - extraFiles([ | ||
204 | - project.mixinSrg | ||
205 | - ]) | ||
206 | } | 225 | } |
207 | } | 226 | } |
208 | 227 | ||
209 | -compileJava.doFirst { | ||
210 | - println '------------------------------------------------------------' | ||
211 | - println 'Running ' + (project.isReleaseBuild ? "RELEASE" : "SNAPSHOT") + ' build' | ||
212 | - println '------------------------------------------------------------' | ||
213 | -} | ||
214 | - | ||
215 | build.dependsOn {[ | 228 | build.dependsOn {[ |
216 | 'reobfReleaseJar', | 229 | 'reobfReleaseJar', |
217 | 'reobfShadowJar' | 230 | 'reobfShadowJar' |
218 | - ] | ||
219 | -} | 231 | +]} |
220 | 232 | ||
221 | artifacts { | 233 | artifacts { |
222 | if (project.isReleaseBuild) { | 234 | if (project.isReleaseBuild) { |
extra/formatter.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | +<profiles version="12"> | ||
3 | +<profile kind="CodeFormatterProfile" name="LiteLoader" version="12"> | ||
4 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/> | ||
5 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/> | ||
6 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/> | ||
7 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/> | ||
8 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/> | ||
9 | +<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/> | ||
10 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/> | ||
11 | +<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/> | ||
12 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/> | ||
13 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/> | ||
14 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/> | ||
15 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/> | ||
16 | +<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/> | ||
17 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/> | ||
18 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/> | ||
19 | +<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="false"/> | ||
20 | +<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/> | ||
21 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/> | ||
22 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/> | ||
23 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/> | ||
24 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/> | ||
25 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/> | ||
26 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/> | ||
27 | +<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/> | ||
28 | +<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/> | ||
29 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/> | ||
30 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/> | ||
31 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/> | ||
32 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/> | ||
33 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/> | ||
34 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/> | ||
35 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/> | ||
36 | +<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/> | ||
37 | +<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/> | ||
38 | +<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/> | ||
39 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/> | ||
40 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/> | ||
41 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/> | ||
42 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/> | ||
43 | +<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/> | ||
44 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/> | ||
45 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/> | ||
46 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/> | ||
47 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/> | ||
48 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/> | ||
49 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/> | ||
50 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/> | ||
51 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/> | ||
52 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/> | ||
53 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/> | ||
54 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/> | ||
55 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/> | ||
56 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/> | ||
57 | +<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="true"/> | ||
58 | +<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/> | ||
59 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/> | ||
60 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/> | ||
61 | +<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/> | ||
62 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/> | ||
63 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/> | ||
64 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/> | ||
65 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/> | ||
66 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/> | ||
67 | +<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/> | ||
68 | +<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/> | ||
69 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/> | ||
70 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/> | ||
71 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/> | ||
72 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/> | ||
73 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/> | ||
74 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/> | ||
75 | +<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/> | ||
76 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/> | ||
77 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/> | ||
78 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/> | ||
79 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/> | ||
80 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/> | ||
81 | +<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/> | ||
82 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/> | ||
83 | +<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/> | ||
84 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/> | ||
85 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/> | ||
86 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/> | ||
87 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/> | ||
88 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/> | ||
89 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/> | ||
90 | +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/> | ||
91 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/> | ||
92 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/> | ||
93 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/> | ||
94 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/> | ||
95 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/> | ||
96 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/> | ||
97 | +<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/> | ||
98 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/> | ||
99 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/> | ||
100 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/> | ||
101 | +<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/> | ||
102 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/> | ||
103 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/> | ||
104 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/> | ||
105 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/> | ||
106 | +<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/> | ||
107 | +<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/> | ||
108 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/> | ||
109 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/> | ||
110 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/> | ||
111 | +<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/> | ||
112 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/> | ||
113 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/> | ||
114 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/> | ||
115 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/> | ||
116 | +<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/> | ||
117 | +<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/> | ||
118 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/> | ||
119 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/> | ||
120 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/> | ||
121 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/> | ||
122 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/> | ||
123 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/> | ||
124 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/> | ||
125 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/> | ||
126 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/> | ||
127 | +<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/> | ||
128 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/> | ||
129 | +<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/> | ||
130 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/> | ||
131 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/> | ||
132 | +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/> | ||
133 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/> | ||
134 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/> | ||
135 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/> | ||
136 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/> | ||
137 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/> | ||
138 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/> | ||
139 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/> | ||
140 | +<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/> | ||
141 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/> | ||
142 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/> | ||
143 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/> | ||
144 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/> | ||
145 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/> | ||
146 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/> | ||
147 | +<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/> | ||
148 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/> | ||
149 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/> | ||
150 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/> | ||
151 | +<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/> | ||
152 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/> | ||
153 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/> | ||
154 | +<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/> | ||
155 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/> | ||
156 | +<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/> | ||
157 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/> | ||
158 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/> | ||
159 | +<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/> | ||
160 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line"/> | ||
161 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/> | ||
162 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/> | ||
163 | +<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="true"/> | ||
164 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/> | ||
165 | +<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/> | ||
166 | +<setting id="org.eclipse.jdt.core.compiler.source" value="1.8"/> | ||
167 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/> | ||
168 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/> | ||
169 | +<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/> | ||
170 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/> | ||
171 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/> | ||
172 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/> | ||
173 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/> | ||
174 | +<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/> | ||
175 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/> | ||
176 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/> | ||
177 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/> | ||
178 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/> | ||
179 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/> | ||
180 | +<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/> | ||
181 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/> | ||
182 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/> | ||
183 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/> | ||
184 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/> | ||
185 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/> | ||
186 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/> | ||
187 | +<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8"/> | ||
188 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/> | ||
189 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/> | ||
190 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/> | ||
191 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/> | ||
192 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/> | ||
193 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/> | ||
194 | +<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/> | ||
195 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/> | ||
196 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/> | ||
197 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/> | ||
198 | +<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="true"/> | ||
199 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/> | ||
200 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/> | ||
201 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/> | ||
202 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="16"/> | ||
203 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/> | ||
204 | +<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/> | ||
205 | +<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/> | ||
206 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/> | ||
207 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/> | ||
208 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/> | ||
209 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/> | ||
210 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/> | ||
211 | +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/> | ||
212 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/> | ||
213 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/> | ||
214 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/> | ||
215 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/> | ||
216 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/> | ||
217 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/> | ||
218 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/> | ||
219 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/> | ||
220 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/> | ||
221 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/> | ||
222 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/> | ||
223 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/> | ||
224 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/> | ||
225 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/> | ||
226 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/> | ||
227 | +<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/> | ||
228 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/> | ||
229 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/> | ||
230 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/> | ||
231 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/> | ||
232 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/> | ||
233 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/> | ||
234 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/> | ||
235 | +<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/> | ||
236 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/> | ||
237 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/> | ||
238 | +<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true"/> | ||
239 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/> | ||
240 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="0"/> | ||
241 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/> | ||
242 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/> | ||
243 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/> | ||
244 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/> | ||
245 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/> | ||
246 | +<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/> | ||
247 | +<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/> | ||
248 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/> | ||
249 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/> | ||
250 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/> | ||
251 | +<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/> | ||
252 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/> | ||
253 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/> | ||
254 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/> | ||
255 | +<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.8"/> | ||
256 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/> | ||
257 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/> | ||
258 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/> | ||
259 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/> | ||
260 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/> | ||
261 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/> | ||
262 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/> | ||
263 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/> | ||
264 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/> | ||
265 | +<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/> | ||
266 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="do not insert"/> | ||
267 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/> | ||
268 | +<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/> | ||
269 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/> | ||
270 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/> | ||
271 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/> | ||
272 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/> | ||
273 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/> | ||
274 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/> | ||
275 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/> | ||
276 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/> | ||
277 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/> | ||
278 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/> | ||
279 | +<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/> | ||
280 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/> | ||
281 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/> | ||
282 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/> | ||
283 | +<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/> | ||
284 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/> | ||
285 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/> | ||
286 | +<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/> | ||
287 | +<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/> | ||
288 | +<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/> | ||
289 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/> | ||
290 | +<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/> | ||
291 | +<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="150"/> | ||
292 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/> | ||
293 | +<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/> | ||
294 | +</profile> | ||
295 | +</profiles> |
extra/liteloader.importorder
0 → 100644
src/client/java/com/mumfrey/liteloader/client/CallbackProxyClient.java deleted
100644 → 0
1 | -package com.mumfrey.liteloader.client; | ||
2 | - | ||
3 | -import java.io.File; | ||
4 | -import java.util.UUID; | ||
5 | - | ||
6 | -import net.minecraft.client.Minecraft; | ||
7 | -import net.minecraft.client.entity.EntityPlayerSP; | ||
8 | -import net.minecraft.client.gui.GuiIngame; | ||
9 | -import net.minecraft.client.renderer.EntityRenderer; | ||
10 | -import net.minecraft.client.renderer.OpenGlHelper; | ||
11 | -import net.minecraft.client.renderer.RenderGlobal; | ||
12 | -import net.minecraft.client.renderer.entity.Render; | ||
13 | -import net.minecraft.client.renderer.entity.RenderManager; | ||
14 | -import net.minecraft.client.shader.Framebuffer; | ||
15 | -import net.minecraft.entity.Entity; | ||
16 | -import net.minecraft.entity.player.EntityPlayer; | ||
17 | -import net.minecraft.server.integrated.IntegratedServer; | ||
18 | -import net.minecraft.util.IChatComponent; | ||
19 | -import net.minecraft.util.ScreenShotHelper; | ||
20 | -import net.minecraft.util.Session; | ||
21 | -import net.minecraft.world.WorldSettings; | ||
22 | - | ||
23 | -import com.mojang.authlib.GameProfile; | ||
24 | -import com.mumfrey.liteloader.core.CallbackProxyCommon; | ||
25 | -import com.mumfrey.liteloader.transformers.event.EventInfo; | ||
26 | -import com.mumfrey.liteloader.transformers.event.ReturnEventInfo; | ||
27 | - | ||
28 | -/** | ||
29 | - * Proxy class which handles the redirected calls from the injected callbacks | ||
30 | - * and routes them to the relevant liteloader handler classes. We do this rather | ||
31 | - * than patching a bunch of bytecode into the packet classes themselves because | ||
32 | - * this is easier to maintain. | ||
33 | - * | ||
34 | - * @author Adam Mummery-Smith | ||
35 | - */ | ||
36 | -public abstract class CallbackProxyClient extends CallbackProxyCommon | ||
37 | -{ | ||
38 | - private static LiteLoaderEventBrokerClient clientEventBroker; | ||
39 | - | ||
40 | - private static boolean fboEnabled; | ||
41 | - | ||
42 | - private static boolean renderingFBO; | ||
43 | - | ||
44 | - private CallbackProxyClient() {} | ||
45 | - | ||
46 | - public static void onStartupComplete(EventInfo<Minecraft> e) | ||
47 | - { | ||
48 | - CallbackProxyCommon.onStartupComplete(); | ||
49 | - | ||
50 | - CallbackProxyClient.clientEventBroker = LiteLoaderEventBrokerClient.getInstance(); | ||
51 | - | ||
52 | - if (CallbackProxyClient.clientEventBroker == null) | ||
53 | - { | ||
54 | - throw new RuntimeException("LiteLoader failed to start up properly." | ||
55 | - + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); | ||
56 | - } | ||
57 | - | ||
58 | - CallbackProxyClient.clientEventBroker.onStartupComplete(); | ||
59 | - } | ||
60 | - | ||
61 | - public static void onTimerUpdate(EventInfo<Minecraft> e) | ||
62 | - { | ||
63 | - CallbackProxyClient.clientEventBroker.onTimerUpdate(); | ||
64 | - } | ||
65 | - | ||
66 | - public static void newTick(EventInfo<Minecraft> e) | ||
67 | - { | ||
68 | - } | ||
69 | - | ||
70 | - public static void onTick(EventInfo<Minecraft> e) | ||
71 | - { | ||
72 | - CallbackProxyClient.clientEventBroker.onTick(); | ||
73 | - } | ||
74 | - | ||
75 | - public static void onRender(EventInfo<Minecraft> e) | ||
76 | - { | ||
77 | - CallbackProxyClient.clientEventBroker.onRender(); | ||
78 | - } | ||
79 | - | ||
80 | - public static void preRenderGUI(EventInfo<EntityRenderer> e, float partialTicks) | ||
81 | - { | ||
82 | - CallbackProxyClient.clientEventBroker.preRenderGUI(partialTicks); | ||
83 | - } | ||
84 | - | ||
85 | - public static void onSetupCameraTransform(EventInfo<EntityRenderer> e, int pass, float partialTicks, long timeSlice) | ||
86 | - { | ||
87 | - CallbackProxyClient.clientEventBroker.onSetupCameraTransform(pass, partialTicks, timeSlice); | ||
88 | - } | ||
89 | - | ||
90 | - public static void postRenderEntities(EventInfo<EntityRenderer> e, int pass, float partialTicks, long timeSlice) | ||
91 | - { | ||
92 | - CallbackProxyClient.clientEventBroker.postRenderEntities(partialTicks, timeSlice); | ||
93 | - } | ||
94 | - | ||
95 | - public static void postRender(EventInfo<EntityRenderer> e, float partialTicks, long timeSlice) | ||
96 | - { | ||
97 | - CallbackProxyClient.clientEventBroker.postRender(partialTicks, timeSlice); | ||
98 | - } | ||
99 | - | ||
100 | - public static void onRenderHUD(EventInfo<EntityRenderer> e, float partialTicks) | ||
101 | - { | ||
102 | - CallbackProxyClient.clientEventBroker.onRenderHUD(partialTicks); | ||
103 | - } | ||
104 | - | ||
105 | - public static void onRenderChat(EventInfo<GuiIngame> e, float partialTicks) | ||
106 | - { | ||
107 | - CallbackProxyClient.clientEventBroker.onRenderChat(e.getSource().getChatGUI(), partialTicks); | ||
108 | - } | ||
109 | - | ||
110 | - public static void postRenderChat(EventInfo<GuiIngame> e, float partialTicks) | ||
111 | - { | ||
112 | - CallbackProxyClient.clientEventBroker.postRenderChat(e.getSource().getChatGUI(), partialTicks); | ||
113 | - } | ||
114 | - | ||
115 | - public static void postRenderHUD(EventInfo<EntityRenderer> e, float partialTicks) | ||
116 | - { | ||
117 | - CallbackProxyClient.clientEventBroker.postRenderHUD(partialTicks); | ||
118 | - } | ||
119 | - | ||
120 | - public static void IntegratedServerCtor(EventInfo<IntegratedServer> e, Minecraft minecraft, String folderName, String worldName, | ||
121 | - WorldSettings worldSettings) | ||
122 | - { | ||
123 | - CallbackProxyClient.clientEventBroker.onStartServer(e.getSource(), folderName, worldName, worldSettings); | ||
124 | - } | ||
125 | - | ||
126 | - public static void onOutboundChat(EventInfo<EntityPlayerSP> e, String message) | ||
127 | - { | ||
128 | - CallbackProxyClient.clientEventBroker.onSendChatMessage(e, message); | ||
129 | - } | ||
130 | - | ||
131 | - public static void onResize(EventInfo<Minecraft> e) | ||
132 | - { | ||
133 | - if (CallbackProxyClient.clientEventBroker == null) return; | ||
134 | - CallbackProxyClient.clientEventBroker.onResize(e.getSource()); | ||
135 | - } | ||
136 | - | ||
137 | - public static void preRenderFBO(EventInfo<Minecraft> e) | ||
138 | - { | ||
139 | - if (CallbackProxyClient.clientEventBroker == null) return; | ||
140 | - CallbackProxyClient.fboEnabled = OpenGlHelper.isFramebufferEnabled(); | ||
141 | - | ||
142 | - if (CallbackProxyClient.fboEnabled) | ||
143 | - { | ||
144 | - CallbackProxyClient.renderingFBO = true; | ||
145 | - CallbackProxyClient.clientEventBroker.preRenderFBO(e.getSource().getFramebuffer()); | ||
146 | - } | ||
147 | - } | ||
148 | - | ||
149 | - public static void postRenderFBO(EventInfo<Minecraft> e) | ||
150 | - { | ||
151 | - if (CallbackProxyClient.clientEventBroker == null) return; | ||
152 | - CallbackProxyClient.renderingFBO = false; | ||
153 | - | ||
154 | - if (CallbackProxyClient.fboEnabled) | ||
155 | - { | ||
156 | - CallbackProxyClient.clientEventBroker.postRenderFBO(e.getSource().getFramebuffer()); | ||
157 | - } | ||
158 | - } | ||
159 | - | ||
160 | - public static void renderFBO(EventInfo<Framebuffer> e, int width, int height, boolean flag) | ||
161 | - { | ||
162 | - if (CallbackProxyClient.clientEventBroker == null) return; | ||
163 | - if (CallbackProxyClient.renderingFBO) | ||
164 | - { | ||
165 | - CallbackProxyClient.clientEventBroker.onRenderFBO(e.getSource(), width, height); | ||
166 | - } | ||
167 | - | ||
168 | - CallbackProxyClient.renderingFBO = false; | ||
169 | - } | ||
170 | - | ||
171 | - public static void onRenderWorld(EventInfo<EntityRenderer> e, float partialTicks, long timeSlice) | ||
172 | - { | ||
173 | - CallbackProxyClient.clientEventBroker.onRenderWorld(partialTicks, timeSlice); | ||
174 | - } | ||
175 | - | ||
176 | - public static void onRenderSky(EventInfo<EntityRenderer> e, int pass, float partialTicks, long timeSlice) | ||
177 | - { | ||
178 | - CallbackProxyClient.clientEventBroker.onRenderSky(partialTicks, pass, timeSlice); | ||
179 | - } | ||
180 | - | ||
181 | - public static void onRenderClouds(EventInfo<EntityRenderer> e, RenderGlobal renderGlobalIn, float partialTicks, int pass) | ||
182 | - { | ||
183 | - CallbackProxyClient.clientEventBroker.onRenderClouds(partialTicks, pass, renderGlobalIn); | ||
184 | - } | ||
185 | - | ||
186 | - public static void onRenderTerrain(EventInfo<EntityRenderer> e, int pass, float partialTicks, long timeSlice) | ||
187 | - { | ||
188 | - CallbackProxyClient.clientEventBroker.onRenderTerrain(partialTicks, pass, timeSlice); | ||
189 | - } | ||
190 | - | ||
191 | - public static void onSaveScreenshot(ReturnEventInfo<ScreenShotHelper, IChatComponent> e, File gameDir, String name, int width, int height, | ||
192 | - Framebuffer fbo) | ||
193 | - { | ||
194 | - CallbackProxyClient.clientEventBroker.onScreenshot(e, name, width, height, fbo); | ||
195 | - } | ||
196 | - | ||
197 | - public static void onRenderEntity(ReturnEventInfo<RenderManager, Boolean> e, Entity entity, double xPos, double yPos, double zPos, float yaw, | ||
198 | - float partialTicks, boolean hideBoundingBox, Render render) | ||
199 | - { | ||
200 | - CallbackProxyClient.clientEventBroker.onRenderEntity(e.getSource(), entity, xPos, yPos, zPos, yaw, partialTicks, render); | ||
201 | - } | ||
202 | - | ||
203 | - public static void onPostRenderEntity(ReturnEventInfo<RenderManager, Boolean> e, Entity entity, double xPos, double yPos, double zPos, float yaw, | ||
204 | - float partialTicks, boolean hideBoundingBox, Render render) | ||
205 | - { | ||
206 | - CallbackProxyClient.clientEventBroker.onPostRenderEntity(e.getSource(), entity, xPos, yPos, zPos, yaw, partialTicks, render); | ||
207 | - } | ||
208 | - | ||
209 | - /** | ||
210 | - * Compatiblbe behaviour with FML, this method is called to generate a | ||
211 | - * consistent offline UUID between client and server for a given username. | ||
212 | - */ | ||
213 | - public static void generateOfflineUUID(ReturnEventInfo<Session, GameProfile> e) | ||
214 | - { | ||
215 | - Session session = e.getSource(); | ||
216 | - UUID uuid = EntityPlayer.getUUID(new GameProfile((UUID)null, session.getUsername())); | ||
217 | - e.setReturnValue(new GameProfile(uuid, session.getUsername())); | ||
218 | - } | ||
219 | -} |
src/client/java/com/mumfrey/liteloader/client/ClientPluginChannelsClient.java
1 | package com.mumfrey.liteloader.client; | 1 | package com.mumfrey.liteloader.client; |
2 | 2 | ||
3 | +import com.mumfrey.liteloader.client.ducks.IClientNetLoginHandler; | ||
4 | +import com.mumfrey.liteloader.core.ClientPluginChannels; | ||
5 | +import com.mumfrey.liteloader.core.exceptions.UnregisteredChannelException; | ||
6 | + | ||
3 | import net.minecraft.client.Minecraft; | 7 | import net.minecraft.client.Minecraft; |
4 | -import net.minecraft.client.network.NetHandlerLoginClient; | ||
5 | import net.minecraft.network.INetHandler; | 8 | import net.minecraft.network.INetHandler; |
6 | import net.minecraft.network.NetworkManager; | 9 | import net.minecraft.network.NetworkManager; |
7 | import net.minecraft.network.PacketBuffer; | 10 | import net.minecraft.network.PacketBuffer; |
@@ -12,10 +15,6 @@ import net.minecraft.network.play.client.C17PacketCustomPayload; | @@ -12,10 +15,6 @@ import net.minecraft.network.play.client.C17PacketCustomPayload; | ||
12 | import net.minecraft.network.play.server.S01PacketJoinGame; | 15 | import net.minecraft.network.play.server.S01PacketJoinGame; |
13 | import net.minecraft.network.play.server.S3FPacketCustomPayload; | 16 | import net.minecraft.network.play.server.S3FPacketCustomPayload; |
14 | 17 | ||
15 | -import com.mumfrey.liteloader.client.util.PrivateFieldsClient; | ||
16 | -import com.mumfrey.liteloader.core.ClientPluginChannels; | ||
17 | -import com.mumfrey.liteloader.core.exceptions.UnregisteredChannelException; | ||
18 | - | ||
19 | /** | 18 | /** |
20 | * Handler for client plugin channels | 19 | * Handler for client plugin channels |
21 | * | 20 | * |
@@ -67,7 +66,7 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | @@ -67,7 +66,7 @@ public class ClientPluginChannelsClient extends ClientPluginChannels | ||
67 | { | 66 | { |
68 | if (netHandler instanceof INetHandlerLoginClient) | 67 | if (netHandler instanceof INetHandlerLoginClient) |
69 | { | 68 | { |
70 | - NetworkManager networkManager = PrivateFieldsClient.netManager.get(((NetHandlerLoginClient)netHandler)); | 69 | + NetworkManager networkManager = ((IClientNetLoginHandler)netHandler).getNetMgr(); |
71 | networkManager.sendPacket(new C17PacketCustomPayload(CHANNEL_REGISTER, registrationData)); | 70 | networkManager.sendPacket(new C17PacketCustomPayload(CHANNEL_REGISTER, registrationData)); |
72 | } | 71 | } |
73 | else if (netHandler instanceof INetHandlerPlayClient) | 72 | else if (netHandler instanceof INetHandlerPlayClient) |
src/client/java/com/mumfrey/liteloader/client/ClientProxy.java
0 → 100644
1 | +package com.mumfrey.liteloader.client; | ||
2 | + | ||
3 | +import java.io.File; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
6 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.client.ducks.IFramebuffer; | ||
9 | +import com.mumfrey.liteloader.core.Proxy; | ||
10 | + | ||
11 | +import net.minecraft.client.Minecraft; | ||
12 | +import net.minecraft.client.gui.GuiNewChat; | ||
13 | +import net.minecraft.client.renderer.RenderGlobal; | ||
14 | +import net.minecraft.client.renderer.entity.Render; | ||
15 | +import net.minecraft.client.renderer.entity.RenderManager; | ||
16 | +import net.minecraft.client.shader.Framebuffer; | ||
17 | +import net.minecraft.entity.Entity; | ||
18 | +import net.minecraft.server.integrated.IntegratedServer; | ||
19 | +import net.minecraft.util.IChatComponent; | ||
20 | +import net.minecraft.world.WorldSettings; | ||
21 | + | ||
22 | +/** | ||
23 | + * Proxy class which handles the redirected calls from the injected callbacks | ||
24 | + * and routes them to the relevant liteloader handler classes. We do this rather | ||
25 | + * than patching a bunch of bytecode into the packet classes themselves because | ||
26 | + * this is easier to maintain. | ||
27 | + * | ||
28 | + * @author Adam Mummery-Smith | ||
29 | + */ | ||
30 | +public abstract class ClientProxy extends Proxy | ||
31 | +{ | ||
32 | + private static LiteLoaderEventBrokerClient broker; | ||
33 | + | ||
34 | + private ClientProxy() {} | ||
35 | + | ||
36 | + public static void onStartupComplete() | ||
37 | + { | ||
38 | + Proxy.onStartupComplete(); | ||
39 | + | ||
40 | + ClientProxy.broker = LiteLoaderEventBrokerClient.getInstance(); | ||
41 | + | ||
42 | + if (ClientProxy.broker == null) | ||
43 | + { | ||
44 | + throw new RuntimeException("LiteLoader failed to start up properly." | ||
45 | + + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); | ||
46 | + } | ||
47 | + | ||
48 | + ClientProxy.broker.onStartupComplete(); | ||
49 | + } | ||
50 | + | ||
51 | + public static void onTimerUpdate() | ||
52 | + { | ||
53 | + ClientProxy.broker.onTimerUpdate(); | ||
54 | + } | ||
55 | + | ||
56 | + public static void newTick() | ||
57 | + { | ||
58 | + } | ||
59 | + | ||
60 | + public static void onTick() | ||
61 | + { | ||
62 | + ClientProxy.broker.onTick(); | ||
63 | + } | ||
64 | + | ||
65 | + public static void onRender() | ||
66 | + { | ||
67 | + ClientProxy.broker.onRender(); | ||
68 | + } | ||
69 | + | ||
70 | + public static void preRenderGUI(float partialTicks) | ||
71 | + { | ||
72 | + ClientProxy.broker.preRenderGUI(partialTicks); | ||
73 | + } | ||
74 | + | ||
75 | + public static void onSetupCameraTransform(int pass, float partialTicks, long timeSlice) | ||
76 | + { | ||
77 | + ClientProxy.broker.onSetupCameraTransform(pass, partialTicks, timeSlice); | ||
78 | + } | ||
79 | + | ||
80 | + public static void postRenderEntities(int pass, float partialTicks, long timeSlice) | ||
81 | + { | ||
82 | + ClientProxy.broker.postRenderEntities(partialTicks, timeSlice); | ||
83 | + } | ||
84 | + | ||
85 | + public static void postRender(float partialTicks, long timeSlice) | ||
86 | + { | ||
87 | + ClientProxy.broker.postRender(partialTicks, timeSlice); | ||
88 | + } | ||
89 | + | ||
90 | + public static void onRenderHUD(float partialTicks) | ||
91 | + { | ||
92 | + ClientProxy.broker.onRenderHUD(partialTicks); | ||
93 | + } | ||
94 | + | ||
95 | + public static void onRenderChat(GuiNewChat chatGui, float partialTicks) | ||
96 | + { | ||
97 | + ClientProxy.broker.onRenderChat(chatGui, partialTicks); | ||
98 | + } | ||
99 | + | ||
100 | + public static void postRenderChat(GuiNewChat chatGui, float partialTicks) | ||
101 | + { | ||
102 | + ClientProxy.broker.postRenderChat(chatGui, partialTicks); | ||
103 | + } | ||
104 | + | ||
105 | + public static void postRenderHUD(float partialTicks) | ||
106 | + { | ||
107 | + ClientProxy.broker.postRenderHUD(partialTicks); | ||
108 | + } | ||
109 | + | ||
110 | + public static void onCreateIntegratedServer(IntegratedServer server, String folderName, String worldName, WorldSettings worldSettings) | ||
111 | + { | ||
112 | + ClientProxy.broker.onStartServer(server, folderName, worldName, worldSettings); | ||
113 | + } | ||
114 | + | ||
115 | + public static void onOutboundChat(CallbackInfo e, String message) | ||
116 | + { | ||
117 | + ClientProxy.broker.onSendChatMessage(e, message); | ||
118 | + } | ||
119 | + | ||
120 | + public static void onResize(Minecraft mc) | ||
121 | + { | ||
122 | + if (ClientProxy.broker == null) return; | ||
123 | + ClientProxy.broker.onResize(mc); | ||
124 | + } | ||
125 | + | ||
126 | + public static void preRenderFBO(Framebuffer frameBufferMc) | ||
127 | + { | ||
128 | + if (ClientProxy.broker == null) return; | ||
129 | + if (frameBufferMc instanceof IFramebuffer) | ||
130 | + { | ||
131 | + ((IFramebuffer)frameBufferMc).setDispatchRenderEvent(true); | ||
132 | + } | ||
133 | + ClientProxy.broker.preRenderFBO(frameBufferMc); | ||
134 | + } | ||
135 | + | ||
136 | + public static void postRenderFBO(Framebuffer frameBufferMc) | ||
137 | + { | ||
138 | + if (ClientProxy.broker == null) return; | ||
139 | + ClientProxy.broker.postRenderFBO(frameBufferMc); | ||
140 | + } | ||
141 | + | ||
142 | + public static void renderFBO(Framebuffer frameBufferMc, int width, int height, boolean flag) | ||
143 | + { | ||
144 | + if (ClientProxy.broker == null) return; | ||
145 | + ClientProxy.broker.onRenderFBO(frameBufferMc, width, height); | ||
146 | + } | ||
147 | + | ||
148 | + public static void onRenderWorld(float partialTicks, long timeSlice) | ||
149 | + { | ||
150 | + ClientProxy.broker.onRenderWorld(partialTicks, timeSlice); | ||
151 | + } | ||
152 | + | ||
153 | + public static void onRenderSky(int pass, float partialTicks, long timeSlice) | ||
154 | + { | ||
155 | + ClientProxy.broker.onRenderSky(partialTicks, pass, timeSlice); | ||
156 | + } | ||
157 | + | ||
158 | + public static void onRenderClouds(RenderGlobal renderGlobalIn, float partialTicks, int pass) | ||
159 | + { | ||
160 | + ClientProxy.broker.onRenderClouds(partialTicks, pass, renderGlobalIn); | ||
161 | + } | ||
162 | + | ||
163 | + public static void onRenderTerrain(int pass, float partialTicks, long timeSlice) | ||
164 | + { | ||
165 | + ClientProxy.broker.onRenderTerrain(partialTicks, pass, timeSlice); | ||
166 | + } | ||
167 | + | ||
168 | + public static void onSaveScreenshot(CallbackInfoReturnable<IChatComponent> ci, File gameDir, String name, int width, int height, | ||
169 | + Framebuffer fbo) | ||
170 | + { | ||
171 | + ClientProxy.broker.onScreenshot(ci, name, width, height, fbo); | ||
172 | + } | ||
173 | + | ||
174 | + public static void onRenderEntity(RenderManager source, Render render, Entity entity, double x, double y, double z, float yaw, float pTicks) | ||
175 | + { | ||
176 | + ClientProxy.broker.onRenderEntity(source, entity, x, y, z, yaw, pTicks, render); | ||
177 | + } | ||
178 | + | ||
179 | + public static void onPostRenderEntity(RenderManager source, Render render, Entity entity, double x, double y, double z, float yaw, float pTicks) | ||
180 | + { | ||
181 | + ClientProxy.broker.onPostRenderEntity(source, entity, x, y, z, yaw, pTicks, render); | ||
182 | + } | ||
183 | +} |
src/client/java/com/mumfrey/liteloader/client/LiteLoaderEventBrokerClient.java
1 | package com.mumfrey.liteloader.client; | 1 | package com.mumfrey.liteloader.client; |
2 | 2 | ||
3 | -import net.minecraft.client.Minecraft; | ||
4 | -import net.minecraft.client.entity.EntityPlayerSP; | ||
5 | -import net.minecraft.client.gui.GuiNewChat; | ||
6 | -import net.minecraft.client.gui.ScaledResolution; | ||
7 | -import net.minecraft.client.renderer.RenderGlobal; | ||
8 | -import net.minecraft.client.renderer.entity.Render; | ||
9 | -import net.minecraft.client.renderer.entity.RenderManager; | ||
10 | -import net.minecraft.client.resources.IResourceManager; | ||
11 | -import net.minecraft.client.resources.IResourceManagerReloadListener; | ||
12 | -import net.minecraft.client.shader.Framebuffer; | ||
13 | -import net.minecraft.entity.Entity; | ||
14 | -import net.minecraft.network.play.client.C01PacketChatMessage; | ||
15 | -import net.minecraft.server.integrated.IntegratedServer; | ||
16 | -import net.minecraft.util.IChatComponent; | ||
17 | -import net.minecraft.util.ScreenShotHelper; | ||
18 | -import net.minecraft.util.Timer; | ||
19 | - | ||
20 | import org.lwjgl.input.Mouse; | 3 | import org.lwjgl.input.Mouse; |
4 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
5 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
21 | 6 | ||
22 | import com.mumfrey.liteloader.*; | 7 | import com.mumfrey.liteloader.*; |
23 | import com.mumfrey.liteloader.client.overlays.IEntityRenderer; | 8 | import com.mumfrey.liteloader.client.overlays.IEntityRenderer; |
@@ -31,12 +16,28 @@ import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; | @@ -31,12 +16,28 @@ import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; | ||
31 | import com.mumfrey.liteloader.core.event.ProfilingHandlerList; | 16 | import com.mumfrey.liteloader.core.event.ProfilingHandlerList; |
32 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; | 17 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
33 | import com.mumfrey.liteloader.launch.LoaderProperties; | 18 | import com.mumfrey.liteloader.launch.LoaderProperties; |
34 | -import com.mumfrey.liteloader.transformers.event.EventInfo; | ||
35 | -import com.mumfrey.liteloader.transformers.event.ReturnEventInfo; | ||
36 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 19 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
37 | 20 | ||
21 | +import net.minecraft.client.Minecraft; | ||
22 | +import net.minecraft.client.gui.GuiNewChat; | ||
23 | +import net.minecraft.client.gui.ScaledResolution; | ||
24 | +import net.minecraft.client.renderer.RenderGlobal; | ||
25 | +import net.minecraft.client.renderer.entity.Render; | ||
26 | +import net.minecraft.client.renderer.entity.RenderManager; | ||
27 | +import net.minecraft.client.resources.IResourceManager; | ||
28 | +import net.minecraft.client.resources.IResourceManagerReloadListener; | ||
29 | +import net.minecraft.client.shader.Framebuffer; | ||
30 | +import net.minecraft.entity.Entity; | ||
31 | +import net.minecraft.network.play.client.C01PacketChatMessage; | ||
32 | +import net.minecraft.server.integrated.IntegratedServer; | ||
33 | +import net.minecraft.util.IChatComponent; | ||
34 | +import net.minecraft.util.Timer; | ||
35 | + | ||
38 | public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft, IntegratedServer> implements IResourceManagerReloadListener | 36 | public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft, IntegratedServer> implements IResourceManagerReloadListener |
39 | { | 37 | { |
38 | + /** | ||
39 | + * Singleton | ||
40 | + */ | ||
40 | private static LiteLoaderEventBrokerClient instance; | 41 | private static LiteLoaderEventBrokerClient instance; |
41 | 42 | ||
42 | /** | 43 | /** |
@@ -93,7 +94,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | @@ -93,7 +94,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | ||
93 | this.tickListeners = new ProfilingHandlerList<Tickable>(Tickable.class, this.engineClient.getProfiler()); | 94 | this.tickListeners = new ProfilingHandlerList<Tickable>(Tickable.class, this.engineClient.getProfiler()); |
94 | } | 95 | } |
95 | 96 | ||
96 | - static LiteLoaderEventBrokerClient getInstance() | 97 | + public static LiteLoaderEventBrokerClient getInstance() |
97 | { | 98 | { |
98 | return LiteLoaderEventBrokerClient.instance; | 99 | return LiteLoaderEventBrokerClient.instance; |
99 | } | 100 | } |
@@ -363,8 +364,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | @@ -363,8 +364,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | ||
363 | */ | 364 | */ |
364 | void postRenderChat(GuiNewChat chatGui, float partialTicks) | 365 | void postRenderChat(GuiNewChat chatGui, float partialTicks) |
365 | { | 366 | { |
366 | - GuiNewChat chat = this.engineClient.getChatGUI(); | ||
367 | - this.chatRenderListeners.all().onPostRenderChat(this.screenWidth, this.screenHeight, chat); | 367 | + this.chatRenderListeners.all().onPostRenderChat(this.screenWidth, this.screenHeight, chatGui); |
368 | } | 368 | } |
369 | 369 | ||
370 | /** | 370 | /** |
@@ -442,7 +442,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | @@ -442,7 +442,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | ||
442 | /** | 442 | /** |
443 | * @param message | 443 | * @param message |
444 | */ | 444 | */ |
445 | - void onSendChatMessage(EventInfo<EntityPlayerSP> e, String message) | 445 | + void onSendChatMessage(CallbackInfo e, String message) |
446 | { | 446 | { |
447 | if (!this.outboundChatFilters.all().onSendChatMessage(message)) | 447 | if (!this.outboundChatFilters.all().onSendChatMessage(message)) |
448 | { | 448 | { |
@@ -523,13 +523,13 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | @@ -523,13 +523,13 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft | ||
523 | * @param height | 523 | * @param height |
524 | * @param fbo | 524 | * @param fbo |
525 | */ | 525 | */ |
526 | - void onScreenshot(ReturnEventInfo<ScreenShotHelper, IChatComponent> e, String name, int width, int height, Framebuffer fbo) | 526 | + void onScreenshot(CallbackInfoReturnable<IChatComponent> ci, String name, int width, int height, Framebuffer fbo) |
527 | { | 527 | { |
528 | - ReturnValue<IChatComponent> ret = new ReturnValue<IChatComponent>(e.getReturnValue()); | 528 | + ReturnValue<IChatComponent> ret = new ReturnValue<IChatComponent>(ci.getReturnValue()); |
529 | 529 | ||
530 | if (!this.screenshotListeners.all().onSaveScreenshot(name, width, height, fbo, ret)) | 530 | if (!this.screenshotListeners.all().onSaveScreenshot(name, width, height, fbo, ret)) |
531 | { | 531 | { |
532 | - e.setReturnValue(ret.get()); | 532 | + ci.setReturnValue(ret.get()); |
533 | } | 533 | } |
534 | } | 534 | } |
535 | 535 |
src/client/java/com/mumfrey/liteloader/client/PacketEventsClient.java
1 | package com.mumfrey.liteloader.client; | 1 | package com.mumfrey.liteloader.client; |
2 | 2 | ||
3 | -import net.minecraft.client.Minecraft; | ||
4 | -import net.minecraft.network.INetHandler; | ||
5 | -import net.minecraft.network.Packet; | ||
6 | -import net.minecraft.network.login.INetHandlerLoginClient; | ||
7 | -import net.minecraft.network.login.server.S02PacketLoginSuccess; | ||
8 | -import net.minecraft.network.play.INetHandlerPlayClient; | ||
9 | -import net.minecraft.network.play.server.S01PacketJoinGame; | ||
10 | -import net.minecraft.network.play.server.S02PacketChat; | ||
11 | -import net.minecraft.server.MinecraftServer; | ||
12 | -import net.minecraft.util.ChatComponentText; | ||
13 | -import net.minecraft.util.IChatComponent; | ||
14 | -import net.minecraft.util.IThreadListener; | ||
15 | - | ||
16 | -import com.mojang.realmsclient.RealmsMainScreen; | ||
17 | import com.mojang.realmsclient.dto.RealmsServer; | 3 | import com.mojang.realmsclient.dto.RealmsServer; |
18 | -import com.mumfrey.liteloader.ChatFilter; | ||
19 | -import com.mumfrey.liteloader.ChatListener; | ||
20 | -import com.mumfrey.liteloader.JoinGameListener; | ||
21 | -import com.mumfrey.liteloader.PostLoginListener; | ||
22 | -import com.mumfrey.liteloader.PreJoinGameListener; | ||
23 | -import com.mumfrey.liteloader.client.util.PrivateFieldsClient; | 4 | +import com.mumfrey.liteloader.*; |
5 | +import com.mumfrey.liteloader.common.ducks.IChatPacket; | ||
24 | import com.mumfrey.liteloader.common.transformers.PacketEventInfo; | 6 | import com.mumfrey.liteloader.common.transformers.PacketEventInfo; |
25 | import com.mumfrey.liteloader.core.ClientPluginChannels; | 7 | import com.mumfrey.liteloader.core.ClientPluginChannels; |
26 | import com.mumfrey.liteloader.core.InterfaceRegistrationDelegate; | 8 | import com.mumfrey.liteloader.core.InterfaceRegistrationDelegate; |
@@ -32,10 +14,22 @@ import com.mumfrey.liteloader.core.event.HandlerList; | @@ -32,10 +14,22 @@ import com.mumfrey.liteloader.core.event.HandlerList; | ||
32 | import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; | 14 | import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; |
33 | import com.mumfrey.liteloader.core.runtime.Packets; | 15 | import com.mumfrey.liteloader.core.runtime.Packets; |
34 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; | 16 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
35 | -import com.mumfrey.liteloader.transformers.event.EventInfo; | ||
36 | import com.mumfrey.liteloader.util.ChatUtilities; | 17 | import com.mumfrey.liteloader.util.ChatUtilities; |
37 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 18 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
38 | 19 | ||
20 | +import net.minecraft.client.Minecraft; | ||
21 | +import net.minecraft.network.INetHandler; | ||
22 | +import net.minecraft.network.Packet; | ||
23 | +import net.minecraft.network.login.INetHandlerLoginClient; | ||
24 | +import net.minecraft.network.login.server.S02PacketLoginSuccess; | ||
25 | +import net.minecraft.network.play.INetHandlerPlayClient; | ||
26 | +import net.minecraft.network.play.server.S01PacketJoinGame; | ||
27 | +import net.minecraft.network.play.server.S02PacketChat; | ||
28 | +import net.minecraft.server.MinecraftServer; | ||
29 | +import net.minecraft.util.ChatComponentText; | ||
30 | +import net.minecraft.util.IChatComponent; | ||
31 | +import net.minecraft.util.IThreadListener; | ||
32 | + | ||
39 | /** | 33 | /** |
40 | * Client-side packet event handlers | 34 | * Client-side packet event handlers |
41 | * | 35 | * |
@@ -113,7 +107,7 @@ public class PacketEventsClient extends PacketEvents | @@ -113,7 +107,7 @@ public class PacketEventsClient extends PacketEvents | ||
113 | this.postLoginListeners.add(postLoginListener); | 107 | this.postLoginListeners.add(postLoginListener); |
114 | } | 108 | } |
115 | 109 | ||
116 | - public static void onJoinRealm(EventInfo<RealmsMainScreen> e, long arg1, RealmsServer server) | 110 | + public static void onJoinRealm(long serverId, RealmsServer server) |
117 | { | 111 | { |
118 | PacketEventsClient.joiningRealm = server; | 112 | PacketEventsClient.joiningRealm = server; |
119 | } | 113 | } |
@@ -254,7 +248,7 @@ public class PacketEventsClient extends PacketEvents | @@ -254,7 +248,7 @@ public class PacketEventsClient extends PacketEvents | ||
254 | try | 248 | try |
255 | { | 249 | { |
256 | chat = ChatUtilities.convertLegacyCodes(chat); | 250 | chat = ChatUtilities.convertLegacyCodes(chat); |
257 | - PrivateFieldsClient.chatMessage.set(packet, chat); | 251 | + ((IChatPacket)packet).setChatComponent(chat); |
258 | } | 252 | } |
259 | catch (Exception ex) | 253 | catch (Exception ex) |
260 | { | 254 | { |
src/client/java/com/mumfrey/liteloader/client/SoundHandlerReloadInhibitor.java
@@ -2,13 +2,13 @@ package com.mumfrey.liteloader.client; | @@ -2,13 +2,13 @@ package com.mumfrey.liteloader.client; | ||
2 | 2 | ||
3 | import java.util.List; | 3 | import java.util.List; |
4 | 4 | ||
5 | +import com.mumfrey.liteloader.client.ducks.IReloadable; | ||
6 | +import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
7 | + | ||
5 | import net.minecraft.client.audio.SoundHandler; | 8 | import net.minecraft.client.audio.SoundHandler; |
6 | import net.minecraft.client.resources.IResourceManagerReloadListener; | 9 | import net.minecraft.client.resources.IResourceManagerReloadListener; |
7 | import net.minecraft.client.resources.SimpleReloadableResourceManager; | 10 | import net.minecraft.client.resources.SimpleReloadableResourceManager; |
8 | 11 | ||
9 | -import com.mumfrey.liteloader.client.util.PrivateFieldsClient; | ||
10 | -import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
11 | - | ||
12 | /** | 12 | /** |
13 | * Manager object which handles inhibiting the sound handler's reload | 13 | * Manager object which handles inhibiting the sound handler's reload |
14 | * notification at startup. | 14 | * notification at startup. |
@@ -55,7 +55,7 @@ public class SoundHandlerReloadInhibitor | @@ -55,7 +55,7 @@ public class SoundHandlerReloadInhibitor | ||
55 | { | 55 | { |
56 | if (!this.inhibited) | 56 | if (!this.inhibited) |
57 | { | 57 | { |
58 | - List<IResourceManagerReloadListener> reloadListeners = PrivateFieldsClient.reloadListeners.get(this.resourceManager); | 58 | + List<IResourceManagerReloadListener> reloadListeners = ((IReloadable)this.resourceManager).getReloadListeners(); |
59 | if (reloadListeners != null) | 59 | if (reloadListeners != null) |
60 | { | 60 | { |
61 | this.storedIndex = reloadListeners.indexOf(this.soundHandler); | 61 | this.storedIndex = reloadListeners.indexOf(this.soundHandler); |
@@ -89,7 +89,7 @@ public class SoundHandlerReloadInhibitor | @@ -89,7 +89,7 @@ public class SoundHandlerReloadInhibitor | ||
89 | { | 89 | { |
90 | if (this.inhibited) | 90 | if (this.inhibited) |
91 | { | 91 | { |
92 | - List<IResourceManagerReloadListener> reloadListeners = PrivateFieldsClient.reloadListeners.get(this.resourceManager); | 92 | + List<IResourceManagerReloadListener> reloadListeners = ((IReloadable)this.resourceManager).getReloadListeners(); |
93 | if (reloadListeners != null) | 93 | if (reloadListeners != null) |
94 | { | 94 | { |
95 | if (this.storedIndex > -1) | 95 | if (this.storedIndex > -1) |
src/client/java/com/mumfrey/liteloader/client/api/LiteLoaderCoreAPIClient.java
@@ -6,6 +6,7 @@ import net.minecraft.client.Minecraft; | @@ -6,6 +6,7 @@ import net.minecraft.client.Minecraft; | ||
6 | import net.minecraft.server.integrated.IntegratedServer; | 6 | import net.minecraft.server.integrated.IntegratedServer; |
7 | 7 | ||
8 | import com.google.common.collect.ImmutableList; | 8 | import com.google.common.collect.ImmutableList; |
9 | +import com.google.common.collect.ObjectArrays; | ||
9 | import com.mumfrey.liteloader.api.CoreProvider; | 10 | import com.mumfrey.liteloader.api.CoreProvider; |
10 | import com.mumfrey.liteloader.api.CustomisationProvider; | 11 | import com.mumfrey.liteloader.api.CustomisationProvider; |
11 | import com.mumfrey.liteloader.api.InterfaceProvider; | 12 | import com.mumfrey.liteloader.api.InterfaceProvider; |
@@ -36,12 +37,20 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -36,12 +37,20 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
36 | 37 | ||
37 | private static final String[] requiredDownstreamTransformers = { | 38 | private static final String[] requiredDownstreamTransformers = { |
38 | LiteLoaderCoreAPI.PKG_LITELOADER_COMMON + ".transformers.LiteLoaderPacketTransformer", | 39 | LiteLoaderCoreAPI.PKG_LITELOADER_COMMON + ".transformers.LiteLoaderPacketTransformer", |
39 | - LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.LiteLoaderEventInjectionTransformer", | ||
40 | LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.MinecraftTransformer", | 40 | LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.MinecraftTransformer", |
41 | LiteLoaderCoreAPI.PKG_LITELOADER + ".transformers.event.json.ModEventInjectionTransformer" | 41 | LiteLoaderCoreAPI.PKG_LITELOADER + ".transformers.event.json.ModEventInjectionTransformer" |
42 | }; | 42 | }; |
43 | 43 | ||
44 | private ObjectFactory<Minecraft, IntegratedServer> objectFactory; | 44 | private ObjectFactory<Minecraft, IntegratedServer> objectFactory; |
45 | + | ||
46 | + @Override | ||
47 | + public String[] getMixinConfigs() | ||
48 | + { | ||
49 | + String[] commonConfigs = super.getMixinConfigs(); | ||
50 | + return ObjectArrays.concat(commonConfigs, new String[] { | ||
51 | + "mixins.liteloader.client.json" | ||
52 | + }, String.class); | ||
53 | + } | ||
45 | 54 | ||
46 | /* (non-Javadoc) | 55 | /* (non-Javadoc) |
47 | * @see com.mumfrey.liteloader.api.LiteAPI#getRequiredTransformers() | 56 | * @see com.mumfrey.liteloader.api.LiteAPI#getRequiredTransformers() |
@@ -69,11 +78,11 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -69,11 +78,11 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
69 | public List<CustomisationProvider> getCustomisationProviders() | 78 | public List<CustomisationProvider> getCustomisationProviders() |
70 | { | 79 | { |
71 | return ImmutableList.<CustomisationProvider>of | 80 | return ImmutableList.<CustomisationProvider>of |
72 | - ( | ||
73 | - new LiteLoaderBrandingProvider(), | ||
74 | - new LiteLoaderModInfoDecorator(), | ||
75 | - new Translator() | ||
76 | - ); | 81 | + ( |
82 | + new LiteLoaderBrandingProvider(), | ||
83 | + new LiteLoaderModInfoDecorator(), | ||
84 | + new Translator() | ||
85 | + ); | ||
77 | } | 86 | } |
78 | 87 | ||
79 | /* (non-Javadoc) | 88 | /* (non-Javadoc) |
@@ -83,10 +92,10 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -83,10 +92,10 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
83 | public List<CoreProvider> getCoreProviders() | 92 | public List<CoreProvider> getCoreProviders() |
84 | { | 93 | { |
85 | return ImmutableList.<CoreProvider>of | 94 | return ImmutableList.<CoreProvider>of |
86 | - ( | ||
87 | - new LiteLoaderCoreProviderClient(this.properties), | ||
88 | - LiteLoader.getInput() | ||
89 | - ); | 95 | + ( |
96 | + new LiteLoaderCoreProviderClient(this.properties), | ||
97 | + LiteLoader.getInput() | ||
98 | + ); | ||
90 | } | 99 | } |
91 | 100 | ||
92 | 101 | ||
@@ -99,13 +108,13 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -99,13 +108,13 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
99 | ObjectFactory<?, ?> objectFactory = this.getObjectFactory(); | 108 | ObjectFactory<?, ?> objectFactory = this.getObjectFactory(); |
100 | 109 | ||
101 | return ImmutableList.<InterfaceProvider>of | 110 | return ImmutableList.<InterfaceProvider>of |
102 | - ( | ||
103 | - objectFactory.getEventBroker(), | ||
104 | - objectFactory.getPacketEventBroker(), | ||
105 | - objectFactory.getClientPluginChannels(), | ||
106 | - objectFactory.getServerPluginChannels(), | ||
107 | - MessageBus.getInstance() | ||
108 | - ); | 111 | + ( |
112 | + objectFactory.getEventBroker(), | ||
113 | + objectFactory.getPacketEventBroker(), | ||
114 | + objectFactory.getClientPluginChannels(), | ||
115 | + objectFactory.getServerPluginChannels(), | ||
116 | + MessageBus.getInstance() | ||
117 | + ); | ||
109 | } | 118 | } |
110 | 119 | ||
111 | /* (non-Javadoc) | 120 | /* (non-Javadoc) |
@@ -115,9 +124,9 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -115,9 +124,9 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
115 | public List<Observer> getPreInitObservers() | 124 | public List<Observer> getPreInitObservers() |
116 | { | 125 | { |
117 | return ImmutableList.<Observer>of | 126 | return ImmutableList.<Observer>of |
118 | - ( | ||
119 | - new ModEvents() | ||
120 | - ); | 127 | + ( |
128 | + new ModEvents() | ||
129 | + ); | ||
121 | } | 130 | } |
122 | 131 | ||
123 | /* (non-Javadoc) | 132 | /* (non-Javadoc) |
@@ -129,11 +138,11 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | @@ -129,11 +138,11 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI | ||
129 | ObjectFactory<?, ?> objectFactory = this.getObjectFactory(); | 138 | ObjectFactory<?, ?> objectFactory = this.getObjectFactory(); |
130 | 139 | ||
131 | return ImmutableList.<Observer>of | 140 | return ImmutableList.<Observer>of |
132 | - ( | ||
133 | - new ResourceObserver(), | ||
134 | - objectFactory.getPanelManager(), | ||
135 | - objectFactory.getEventBroker() | ||
136 | - ); | 141 | + ( |
142 | + new ResourceObserver(), | ||
143 | + objectFactory.getPanelManager(), | ||
144 | + objectFactory.getEventBroker() | ||
145 | + ); | ||
137 | } | 146 | } |
138 | 147 | ||
139 | /* (non-Javadoc) | 148 | /* (non-Javadoc) |
src/client/java/com/mumfrey/liteloader/client/ducks/IClientNetLoginHandler.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/IFramebuffer.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/INamespacedRegistry.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/IObjectIntIdentityMap.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/IRegistrySimple.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/IReloadable.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/IRenderManager.java
0 → 100644
src/client/java/com/mumfrey/liteloader/client/ducks/ITileEntityRendererDispatcher.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.ducks; | ||
2 | + | ||
3 | +import java.util.Map; | ||
4 | + | ||
5 | +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; | ||
6 | +import net.minecraft.tileentity.TileEntity; | ||
7 | + | ||
8 | +public interface ITileEntityRendererDispatcher | ||
9 | +{ | ||
10 | + public abstract Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> getSpecialRenderMap(); | ||
11 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinEntityPlayerSP.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
9 | + | ||
10 | +import net.minecraft.client.entity.AbstractClientPlayer; | ||
11 | +import net.minecraft.client.entity.EntityPlayerSP; | ||
12 | + | ||
13 | +@Mixin(EntityPlayerSP.class) | ||
14 | +public abstract class MixinEntityPlayerSP extends AbstractClientPlayer | ||
15 | +{ | ||
16 | + public MixinEntityPlayerSP() | ||
17 | + { | ||
18 | + super(null, null); | ||
19 | + } | ||
20 | + | ||
21 | + @Inject(method = "sendChatMessage(Ljava/lang/String;)V", at = { @At("HEAD") }, cancellable = true) | ||
22 | + public void onSendChatMessage(String message, CallbackInfo ci) | ||
23 | + { | ||
24 | + ClientProxy.onOutboundChat(ci, message); | ||
25 | + } | ||
26 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinEntityRenderer.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.At.Shift; | ||
7 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
8 | + | ||
9 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
10 | + | ||
11 | +import net.minecraft.client.renderer.EntityRenderer; | ||
12 | +import net.minecraft.client.renderer.RenderGlobal; | ||
13 | + | ||
14 | +@Mixin(EntityRenderer.class) | ||
15 | +public abstract class MixinEntityRenderer | ||
16 | +{ | ||
17 | + @Inject(method = "updateCameraAndRender(F)V", at = @At( | ||
18 | + value = "INVOKE", | ||
19 | + shift = Shift.AFTER, | ||
20 | + target = "Lnet/minecraft/client/renderer/GlStateManager;clear(I)V" | ||
21 | + )) | ||
22 | + private void onPreRenderGUI(float partialTicks, CallbackInfo ci) | ||
23 | + { | ||
24 | + ClientProxy.preRenderGUI(partialTicks); | ||
25 | + } | ||
26 | + | ||
27 | + @Inject(method = "updateCameraAndRender(F)V", at = @At( | ||
28 | + value = "INVOKE", | ||
29 | + target = "Lnet/minecraft/client/gui/GuiIngame;renderGameOverlay(F)V" | ||
30 | + )) | ||
31 | + private void onRenderHUD(float partialTicks, CallbackInfo ci) | ||
32 | + { | ||
33 | + ClientProxy.onRenderHUD(partialTicks); | ||
34 | + } | ||
35 | + | ||
36 | + @Inject(method = "updateCameraAndRender(F)V", at = @At( | ||
37 | + value = "INVOKE", | ||
38 | + shift = Shift.AFTER, | ||
39 | + target = "Lnet/minecraft/client/gui/GuiIngame;renderGameOverlay(F)V" | ||
40 | + )) | ||
41 | + private void onPostRenderHUD(float partialTicks, CallbackInfo ci) | ||
42 | + { | ||
43 | + ClientProxy.postRenderHUD(partialTicks); | ||
44 | + } | ||
45 | + | ||
46 | + @Inject(method = "renderWorld(FJ)V", at = @At( | ||
47 | + value = "INVOKE", | ||
48 | + target = "Lnet/minecraft/profiler/Profiler;startSection(Ljava/lang/String;)V", | ||
49 | + ordinal = 0 | ||
50 | + )) | ||
51 | + private void onRenderWorld(float partialTicks, long timeSlice, CallbackInfo ci) | ||
52 | + { | ||
53 | + ClientProxy.onRenderWorld(partialTicks, timeSlice); | ||
54 | + } | ||
55 | + | ||
56 | + @Inject(method = "renderWorld(FJ)V", at = @At( | ||
57 | + value = "INVOKE", | ||
58 | + target = "Lnet/minecraft/profiler/Profiler;endSection()V", | ||
59 | + ordinal = 0 | ||
60 | + )) | ||
61 | + private void onPostRender(float partialTicks, long timeSlice, CallbackInfo ci) | ||
62 | + { | ||
63 | + ClientProxy.postRender(partialTicks, timeSlice); | ||
64 | + } | ||
65 | + | ||
66 | + @Inject(method = "renderWorldPass(IFJ)V", at = @At( | ||
67 | + value = "INVOKE_STRING", | ||
68 | + target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", | ||
69 | + args = "ldc=frustum" | ||
70 | + )) | ||
71 | + private void onSetupCameraTransform(int pass, float partialTicks, long timeSlice, CallbackInfo ci) | ||
72 | + { | ||
73 | + ClientProxy.onSetupCameraTransform(pass, partialTicks, timeSlice); | ||
74 | + } | ||
75 | + | ||
76 | + @Inject(method = "renderWorldPass(IFJ)V", at = @At( | ||
77 | + value = "INVOKE_STRING", | ||
78 | + target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", | ||
79 | + args = "ldc=sky" | ||
80 | + )) | ||
81 | + private void onRenderSky(int pass, float partialTicks, long timeSlice, CallbackInfo ci) | ||
82 | + { | ||
83 | + ClientProxy.onRenderSky(pass, partialTicks, timeSlice); | ||
84 | + } | ||
85 | + | ||
86 | + @Inject(method = "renderWorldPass(IFJ)V", at = @At( | ||
87 | + value = "INVOKE_STRING", | ||
88 | + target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", | ||
89 | + args = "ldc=terrain" | ||
90 | + )) | ||
91 | + private void onRenderTerrain(int pass, float partialTicks, long timeSlice, CallbackInfo ci) | ||
92 | + { | ||
93 | + ClientProxy.onRenderTerrain(pass, partialTicks, timeSlice); | ||
94 | + | ||
95 | + } | ||
96 | + | ||
97 | + @Inject(method = "renderWorldPass(IFJ)V", at = @At( | ||
98 | + value = "INVOKE_STRING", | ||
99 | + target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", | ||
100 | + args = "ldc=litParticles" | ||
101 | + )) | ||
102 | + private void onPostRenderEntities(int pass, float partialTicks, long timeSlice, CallbackInfo ci) | ||
103 | + { | ||
104 | + ClientProxy.postRenderEntities(pass, partialTicks, timeSlice); | ||
105 | + } | ||
106 | + | ||
107 | + @Inject(method = "renderCloudsCheck(Lnet/minecraft/client/renderer/RenderGlobal;FI)V", at = @At( | ||
108 | + value = "INVOKE", | ||
109 | + target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V" | ||
110 | + )) | ||
111 | + private void onRenderClouds(RenderGlobal renderGlobalIn, float partialTicks, int pass, CallbackInfo ci) | ||
112 | + { | ||
113 | + ClientProxy.onRenderClouds(renderGlobalIn, partialTicks, pass); | ||
114 | + } | ||
115 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinFramebuffer.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
9 | +import com.mumfrey.liteloader.client.ducks.IFramebuffer; | ||
10 | + | ||
11 | +import net.minecraft.client.shader.Framebuffer; | ||
12 | + | ||
13 | +@Mixin(Framebuffer.class) | ||
14 | +public abstract class MixinFramebuffer implements IFramebuffer | ||
15 | +{ | ||
16 | + private boolean dispatchRenderEvent; | ||
17 | + | ||
18 | + @Override | ||
19 | + public IFramebuffer setDispatchRenderEvent(boolean dispatchRenderEvent) | ||
20 | + { | ||
21 | + this.dispatchRenderEvent = dispatchRenderEvent; | ||
22 | + return this; | ||
23 | + } | ||
24 | + | ||
25 | + @Override | ||
26 | + public boolean isDispatchRenderEvent() | ||
27 | + { | ||
28 | + return this.dispatchRenderEvent; | ||
29 | + } | ||
30 | + | ||
31 | + @Inject(method = "framebufferRenderExt(IIZ)V", at = @At( | ||
32 | + value = "INVOKE", | ||
33 | + target = "Lnet/minecraft/client/shader/Framebuffer;bindFramebufferTexture()V" | ||
34 | + )) | ||
35 | + private void onRenderFBO(int width, int height, boolean flag, CallbackInfo ci) | ||
36 | + { | ||
37 | + if (this.dispatchRenderEvent) | ||
38 | + { | ||
39 | + ClientProxy.renderFBO((Framebuffer)(Object)this, width, height, flag); | ||
40 | + this.dispatchRenderEvent = false; | ||
41 | + } | ||
42 | + } | ||
43 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinGuiIngame.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.Shadow; | ||
5 | +import org.spongepowered.asm.mixin.injection.At; | ||
6 | +import org.spongepowered.asm.mixin.injection.At.Shift; | ||
7 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
8 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
9 | + | ||
10 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
11 | + | ||
12 | +import net.minecraft.client.gui.Gui; | ||
13 | +import net.minecraft.client.gui.GuiIngame; | ||
14 | +import net.minecraft.client.gui.GuiNewChat; | ||
15 | + | ||
16 | +@Mixin(GuiIngame.class) | ||
17 | +public abstract class MixinGuiIngame extends Gui | ||
18 | +{ | ||
19 | + @Shadow private GuiNewChat persistantChatGUI; | ||
20 | + | ||
21 | + @Inject(method = "renderGameOverlay(F)V", at = @At( | ||
22 | + value = "INVOKE", | ||
23 | + target = "Lnet/minecraft/client/gui/GuiNewChat;drawChat(I)V" | ||
24 | + )) | ||
25 | + private void onRenderChat(float partialTicks, CallbackInfo ci) | ||
26 | + { | ||
27 | + ClientProxy.onRenderChat(this.persistantChatGUI, partialTicks); | ||
28 | + } | ||
29 | + | ||
30 | + @Inject(method = "renderGameOverlay(F)V", at = @At( | ||
31 | + value = "INVOKE", | ||
32 | + shift = Shift.AFTER, | ||
33 | + target = "Lnet/minecraft/client/gui/GuiNewChat;drawChat(I)V" | ||
34 | + )) | ||
35 | + private void postRenderChat(float partialTicks, CallbackInfo ci) | ||
36 | + { | ||
37 | + ClientProxy.postRenderChat(this.persistantChatGUI, partialTicks); | ||
38 | + } | ||
39 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinIntegratedServer.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.Surrogate; | ||
7 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
8 | + | ||
9 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
10 | + | ||
11 | +import net.minecraft.client.Minecraft; | ||
12 | +import net.minecraft.server.MinecraftServer; | ||
13 | +import net.minecraft.server.integrated.IntegratedServer; | ||
14 | +import net.minecraft.world.WorldSettings; | ||
15 | + | ||
16 | +@Mixin(IntegratedServer.class) | ||
17 | +public abstract class MixinIntegratedServer extends MinecraftServer | ||
18 | +{ | ||
19 | + public MixinIntegratedServer() | ||
20 | + { | ||
21 | + super(null, null); | ||
22 | + } | ||
23 | + | ||
24 | + @Inject( | ||
25 | + method = "<init>*", //(Lnet/minecraft/client/Minecraft;Ljava/lang/String;Ljava/lang/String;Lnet/minecraft/world/WorldSettings;)V", | ||
26 | + at = @At("RETURN"), | ||
27 | + remap = false | ||
28 | + ) | ||
29 | + private void onConstructed(Minecraft mcIn, String folderName, String worldName, WorldSettings settings, CallbackInfo ci) | ||
30 | + { | ||
31 | + ClientProxy.onCreateIntegratedServer((IntegratedServer)(Object)this, folderName, worldName, settings); | ||
32 | + } | ||
33 | + | ||
34 | + @Surrogate | ||
35 | + private void onConstructed(Minecraft mcIn, CallbackInfo ci) | ||
36 | + { | ||
37 | +// ClientProxy.onCreateIntegratedServer((IntegratedServer)(Object)this, folderName, worldName, settings); | ||
38 | + } | ||
39 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinMinecraft.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.At.Shift; | ||
6 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
7 | +import org.spongepowered.asm.mixin.injection.Redirect; | ||
8 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
9 | + | ||
10 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
11 | + | ||
12 | +import net.minecraft.client.Minecraft; | ||
13 | +import net.minecraft.client.renderer.OpenGlHelper; | ||
14 | +import net.minecraft.client.shader.Framebuffer; | ||
15 | + | ||
16 | +@Mixin(Minecraft.class) | ||
17 | +public abstract class MixinMinecraft | ||
18 | +{ | ||
19 | + @Inject(method = "startGame()V", at = @At("RETURN")) | ||
20 | + private void onStartupComplete(CallbackInfo ci) | ||
21 | + { | ||
22 | + ClientProxy.onStartupComplete(); | ||
23 | + } | ||
24 | + | ||
25 | + @Inject(method = "updateFramebufferSize()V", at = @At("HEAD")) | ||
26 | + private void onResize(CallbackInfo ci) | ||
27 | + { | ||
28 | + ClientProxy.onResize((Minecraft)(Object)this); | ||
29 | + } | ||
30 | + | ||
31 | + @Inject(method = "runTick()V", at = @At("HEAD")) | ||
32 | + private void newTick(CallbackInfo ci) | ||
33 | + { | ||
34 | + ClientProxy.newTick(); | ||
35 | + } | ||
36 | + | ||
37 | + @Inject(method = "runGameLoop()V", at = @At( | ||
38 | + value = "INVOKE", | ||
39 | + shift = Shift.AFTER, | ||
40 | + target = "Lnet/minecraft/client/renderer/EntityRenderer;updateCameraAndRender(F)V" | ||
41 | + )) | ||
42 | + private void onTick(CallbackInfo ci) | ||
43 | + { | ||
44 | + ClientProxy.onTick(); | ||
45 | + } | ||
46 | + | ||
47 | + @Redirect(method = "runGameLoop()V", at = @At( | ||
48 | + value = "INVOKE", | ||
49 | + target = "Lnet/minecraft/client/shader/Framebuffer;framebufferRender(II)V" | ||
50 | + )) | ||
51 | + private void renderFBO(Framebuffer framebufferMc, int width, int height) | ||
52 | + { | ||
53 | + boolean fboEnabled = OpenGlHelper.isFramebufferEnabled(); | ||
54 | + if (fboEnabled) | ||
55 | + { | ||
56 | + ClientProxy.preRenderFBO(framebufferMc); | ||
57 | + framebufferMc.framebufferRender(width, height); | ||
58 | + ClientProxy.preRenderFBO(framebufferMc); | ||
59 | + } | ||
60 | + else | ||
61 | + { | ||
62 | + framebufferMc.framebufferRender(width, height); | ||
63 | + } | ||
64 | + } | ||
65 | + | ||
66 | + @Inject(method = "runGameLoop()V", at = @At( | ||
67 | + value = "INVOKE_STRING", | ||
68 | + target = "Lnet/minecraft/profiler/Profiler;startSection(Ljava/lang/String;)V", | ||
69 | + args = "ldc=tick" | ||
70 | + )) | ||
71 | + private void onTimerUpdate(CallbackInfo ci) | ||
72 | + { | ||
73 | + ClientProxy.onTimerUpdate(); | ||
74 | + } | ||
75 | + | ||
76 | + @Inject (method = "runGameLoop()V", at = @At( | ||
77 | + value = "INVOKE_STRING", | ||
78 | + target = "Lnet/minecraft/profiler/Profiler;endStartSection(Ljava/lang/String;)V", | ||
79 | + args = "ldc=gameRenderer" | ||
80 | + )) | ||
81 | + private void onRender(CallbackInfo ci) | ||
82 | + { | ||
83 | + ClientProxy.onRender(); | ||
84 | + } | ||
85 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinNetHandlerLoginClient.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.Shadow; | ||
5 | + | ||
6 | +import com.mumfrey.liteloader.client.ducks.IClientNetLoginHandler; | ||
7 | + | ||
8 | +import net.minecraft.client.network.NetHandlerLoginClient; | ||
9 | +import net.minecraft.network.NetworkManager; | ||
10 | + | ||
11 | +@Mixin(NetHandlerLoginClient.class) | ||
12 | +public abstract class MixinNetHandlerLoginClient implements IClientNetLoginHandler | ||
13 | +{ | ||
14 | + @Shadow private NetworkManager networkManager; | ||
15 | + | ||
16 | + @Override | ||
17 | + public NetworkManager getNetMgr() | ||
18 | + { | ||
19 | + return this.networkManager; | ||
20 | + } | ||
21 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinObjectIntIdentityMap.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.util.IdentityHashMap; | ||
4 | +import java.util.List; | ||
5 | + | ||
6 | +import org.spongepowered.asm.mixin.Mixin; | ||
7 | +import org.spongepowered.asm.mixin.Shadow; | ||
8 | + | ||
9 | +import com.mumfrey.liteloader.client.ducks.IObjectIntIdentityMap; | ||
10 | + | ||
11 | +import net.minecraft.util.ObjectIntIdentityMap; | ||
12 | + | ||
13 | +@Mixin(ObjectIntIdentityMap.class) | ||
14 | +public abstract class MixinObjectIntIdentityMap implements IObjectIntIdentityMap | ||
15 | +{ | ||
16 | + @Shadow private IdentityHashMap<?, Integer> identityMap; | ||
17 | + @Shadow private List<?> objectList; | ||
18 | + | ||
19 | + @SuppressWarnings("unchecked") | ||
20 | + @Override | ||
21 | + public <V> IdentityHashMap<V, Integer> getIdentityMap() | ||
22 | + { | ||
23 | + return (IdentityHashMap<V, Integer>)this.identityMap; | ||
24 | + } | ||
25 | + | ||
26 | + @SuppressWarnings("unchecked") | ||
27 | + @Override | ||
28 | + public <V> List<V> getObjectList() | ||
29 | + { | ||
30 | + return (List<V>)this.objectList; | ||
31 | + } | ||
32 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinRealmsMainScreen.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
7 | +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; | ||
8 | + | ||
9 | +import com.mojang.realmsclient.RealmsMainScreen; | ||
10 | +import com.mojang.realmsclient.dto.RealmsServer; | ||
11 | +import com.mumfrey.liteloader.client.PacketEventsClient; | ||
12 | + | ||
13 | +import net.minecraft.realms.RealmsScreen; | ||
14 | + | ||
15 | +@Mixin(value = RealmsMainScreen.class, remap = false) | ||
16 | +public abstract class MixinRealmsMainScreen extends RealmsScreen | ||
17 | +{ | ||
18 | + @Inject(method = "play(J)V", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At( | ||
19 | + value = "INVOKE", | ||
20 | + target = "Lcom/mojang/realmsclient/RealmsMainScreen;stopRealmsFetcherAndPinger()V" | ||
21 | + )) | ||
22 | + private void onJoinRealm(long serverId, CallbackInfo ci, RealmsServer server) | ||
23 | + { | ||
24 | + PacketEventsClient.onJoinRealm(serverId, server); | ||
25 | + } | ||
26 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinRegistryNamespaced.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.Shadow; | ||
5 | + | ||
6 | +import com.mumfrey.liteloader.client.ducks.INamespacedRegistry; | ||
7 | +import com.mumfrey.liteloader.client.ducks.IObjectIntIdentityMap; | ||
8 | + | ||
9 | +import net.minecraft.util.ObjectIntIdentityMap; | ||
10 | +import net.minecraft.util.RegistryNamespaced; | ||
11 | +import net.minecraft.util.RegistrySimple; | ||
12 | + | ||
13 | +@Mixin(RegistryNamespaced.class) | ||
14 | +public abstract class MixinRegistryNamespaced extends RegistrySimple implements INamespacedRegistry | ||
15 | +{ | ||
16 | + @Shadow protected ObjectIntIdentityMap underlyingIntegerMap; | ||
17 | + | ||
18 | + @Override | ||
19 | + public IObjectIntIdentityMap getUnderlyingMap() | ||
20 | + { | ||
21 | + return (IObjectIntIdentityMap)this.underlyingIntegerMap; | ||
22 | + } | ||
23 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinRegistrySimple.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.util.Map; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.Mixin; | ||
6 | +import org.spongepowered.asm.mixin.Shadow; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.client.ducks.IRegistrySimple; | ||
9 | + | ||
10 | +import net.minecraft.util.RegistrySimple; | ||
11 | + | ||
12 | +@Mixin(RegistrySimple.class) | ||
13 | +public abstract class MixinRegistrySimple implements IRegistrySimple | ||
14 | +{ | ||
15 | + @Shadow protected Map<?, ?> registryObjects; | ||
16 | + | ||
17 | + @SuppressWarnings("unchecked") | ||
18 | + @Override | ||
19 | + public <K, V> Map<K, V> getRegistryObjects() | ||
20 | + { | ||
21 | + return (Map<K, V>)this.registryObjects; | ||
22 | + } | ||
23 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinRenderManager.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.util.Map; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.Mixin; | ||
6 | +import org.spongepowered.asm.mixin.Shadow; | ||
7 | +import org.spongepowered.asm.mixin.injection.At; | ||
8 | +import org.spongepowered.asm.mixin.injection.Redirect; | ||
9 | + | ||
10 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
11 | +import com.mumfrey.liteloader.client.ducks.IRenderManager; | ||
12 | + | ||
13 | +import net.minecraft.client.renderer.entity.Render; | ||
14 | +import net.minecraft.client.renderer.entity.RenderManager; | ||
15 | +import net.minecraft.entity.Entity; | ||
16 | + | ||
17 | +@Mixin(RenderManager.class) | ||
18 | +public abstract class MixinRenderManager implements IRenderManager | ||
19 | +{ | ||
20 | + @Shadow private Map<Class<? extends Entity>, Render> entityRenderMap; | ||
21 | + | ||
22 | + @Override | ||
23 | + public Map<Class<? extends Entity>, Render> getRenderMap() | ||
24 | + { | ||
25 | + return this.entityRenderMap; | ||
26 | + } | ||
27 | + | ||
28 | + @Redirect(method = "doRenderEntity(Lnet/minecraft/entity/Entity;DDDFFZ)Z", at = @At( | ||
29 | + value = "INVOKE", | ||
30 | + target = "Lnet/minecraft/client/renderer/entity/Render;doRender(Lnet/minecraft/entity/Entity;DDDFF)V" | ||
31 | + )) | ||
32 | + private void onRenderEntity(Render render, Entity entity, double x, double y, double z, float entityYaw, float partialTicks) | ||
33 | + { | ||
34 | + RenderManager source = (RenderManager)(Object)this; | ||
35 | + ClientProxy.onRenderEntity(source, render, entity, x, y, z, entityYaw, partialTicks); | ||
36 | + render.doRender(entity, x, y, z, entityYaw, partialTicks); | ||
37 | + ClientProxy.onPostRenderEntity(source, render, entity, x, y, z, entityYaw, partialTicks); | ||
38 | + } | ||
39 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinScreenShotHelper.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.io.File; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.Mixin; | ||
6 | +import org.spongepowered.asm.mixin.injection.At; | ||
7 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
8 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
9 | + | ||
10 | +import com.mumfrey.liteloader.client.ClientProxy; | ||
11 | + | ||
12 | +import net.minecraft.client.shader.Framebuffer; | ||
13 | +import net.minecraft.util.IChatComponent; | ||
14 | +import net.minecraft.util.ScreenShotHelper; | ||
15 | + | ||
16 | +@Mixin(ScreenShotHelper.class) | ||
17 | +public abstract class MixinScreenShotHelper | ||
18 | +{ | ||
19 | + @Inject( | ||
20 | + method = "saveScreenshot(Ljava/io/File;Ljava/lang/String;IILnet/minecraft/client/shader/Framebuffer;)Lnet/minecraft/util/IChatComponent;", | ||
21 | + at = @At( | ||
22 | + value = "INVOKE", | ||
23 | + target = "Lnet/minecraft/client/renderer/OpenGlHelper;isFramebufferEnabled()Z", | ||
24 | + ordinal = 0 | ||
25 | + ), | ||
26 | + cancellable = true | ||
27 | + ) | ||
28 | + private static void onSaveScreenshot(File gameDir, String name, int width, int height, Framebuffer fbo, CallbackInfoReturnable<IChatComponent> ci) | ||
29 | + { | ||
30 | + ClientProxy.onSaveScreenshot(ci, gameDir, name, width, height, fbo); | ||
31 | + } | ||
32 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinSession.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.util.UUID; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.Mixin; | ||
6 | +import org.spongepowered.asm.mixin.Shadow; | ||
7 | +import org.spongepowered.asm.mixin.injection.At; | ||
8 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
9 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
10 | + | ||
11 | +import com.mojang.authlib.GameProfile; | ||
12 | + | ||
13 | +import net.minecraft.entity.player.EntityPlayer; | ||
14 | +import net.minecraft.util.Session; | ||
15 | + | ||
16 | +@Mixin(Session.class) | ||
17 | +public abstract class MixinSession | ||
18 | +{ | ||
19 | + @Shadow public abstract String getUsername(); | ||
20 | + | ||
21 | + @Inject(method = "getProfile()Lcom/mojang/authlib/GameProfile;", cancellable = true, at = @At( | ||
22 | + value = "NEW", | ||
23 | + args = "class=com/mojang/authlib/GameProfile", | ||
24 | + ordinal = 1 | ||
25 | + )) | ||
26 | + private void generateGameProfile(CallbackInfoReturnable<GameProfile> ci) | ||
27 | + { | ||
28 | + UUID uuid = EntityPlayer.getUUID(new GameProfile((UUID)null, this.getUsername())); | ||
29 | + ci.setReturnValue(new GameProfile(uuid, this.getUsername())); | ||
30 | + } | ||
31 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinSimpleReloadableResourceManager.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.util.List; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.Mixin; | ||
6 | +import org.spongepowered.asm.mixin.Shadow; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.client.ducks.IReloadable; | ||
9 | + | ||
10 | +import net.minecraft.client.resources.IResourceManagerReloadListener; | ||
11 | +import net.minecraft.client.resources.SimpleReloadableResourceManager; | ||
12 | + | ||
13 | +@Mixin(SimpleReloadableResourceManager.class) | ||
14 | +public abstract class MixinSimpleReloadableResourceManager implements IReloadable | ||
15 | +{ | ||
16 | + @Shadow private List<IResourceManagerReloadListener> reloadListeners; | ||
17 | + | ||
18 | + @Override | ||
19 | + public List<IResourceManagerReloadListener> getReloadListeners() | ||
20 | + { | ||
21 | + return this.reloadListeners; | ||
22 | + } | ||
23 | +} |
src/client/java/com/mumfrey/liteloader/client/mixin/MixinTileEntityRendererDispatcher.java
0 → 100644
1 | +package com.mumfrey.liteloader.client.mixin; | ||
2 | + | ||
3 | +import java.util.Map; | ||
4 | + | ||
5 | +import org.spongepowered.asm.mixin.Mixin; | ||
6 | +import org.spongepowered.asm.mixin.Shadow; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.client.ducks.ITileEntityRendererDispatcher; | ||
9 | + | ||
10 | +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; | ||
11 | +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; | ||
12 | +import net.minecraft.tileentity.TileEntity; | ||
13 | + | ||
14 | +@Mixin(TileEntityRendererDispatcher.class) | ||
15 | +public abstract class MixinTileEntityRendererDispatcher implements ITileEntityRendererDispatcher | ||
16 | +{ | ||
17 | + @Shadow private Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> mapSpecialRenderers; | ||
18 | + | ||
19 | + @Override | ||
20 | + public Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> getSpecialRenderMap() | ||
21 | + { | ||
22 | + return this.mapSpecialRenderers; | ||
23 | + } | ||
24 | +} |
src/client/java/com/mumfrey/liteloader/client/transformers/LiteLoaderEventInjectionTransformer.java deleted
100644 → 0
1 | -package com.mumfrey.liteloader.client.transformers; | ||
2 | - | ||
3 | -import static com.mumfrey.liteloader.core.runtime.Methods.*; | ||
4 | -import static com.mumfrey.liteloader.transformers.event.InjectionPoint.*; | ||
5 | - | ||
6 | -import com.mumfrey.liteloader.common.transformers.LiteLoaderEventTransformer; | ||
7 | -import com.mumfrey.liteloader.core.runtime.Obf; | ||
8 | -import com.mumfrey.liteloader.transformers.event.Event; | ||
9 | -import com.mumfrey.liteloader.transformers.event.InjectionPoint; | ||
10 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeInvoke; | ||
11 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeNew; | ||
12 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeReturn; | ||
13 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeStringInvoke; | ||
14 | -import com.mumfrey.liteloader.transformers.event.inject.MethodHead; | ||
15 | - | ||
16 | -/** | ||
17 | - * Injector for LiteLoader's main events | ||
18 | - * | ||
19 | - * @author Adam Mummery-Smith | ||
20 | - */ | ||
21 | -public class LiteLoaderEventInjectionTransformer extends LiteLoaderEventTransformer | ||
22 | -{ | ||
23 | - @Override | ||
24 | - protected Obf getProxy() | ||
25 | - { | ||
26 | - return Obf.CallbackProxyClient; | ||
27 | - } | ||
28 | - | ||
29 | - @Override | ||
30 | - protected void addEvents() | ||
31 | - { | ||
32 | - super.addEvents(); | ||
33 | - | ||
34 | - // Event declaraions | ||
35 | - Event onOutboundChat = Event.getOrCreate("onOutboundChat", true); | ||
36 | - Event onResize = Event.getOrCreate("updateFramebufferSize", false); | ||
37 | - Event preRenderFBO = Event.getOrCreate("preRenderFBO", false); | ||
38 | - Event renderFBO = Event.getOrCreate("renderFBO", false); | ||
39 | - Event postRenderFBO = Event.getOrCreate("postRenderFBO", false); | ||
40 | - Event onRenderWorld = Event.getOrCreate("onRenderWorld", false); | ||
41 | - Event onRenderSky = Event.getOrCreate("onRenderSky", false); | ||
42 | - Event onRenderClouds = Event.getOrCreate("onRenderClouds", false); | ||
43 | - Event onRenderTerrain = Event.getOrCreate("onRenderTerrain", false); | ||
44 | - Event onTimerUpdate = Event.getOrCreate("onTimerUpdate", false); | ||
45 | - Event onRender = Event.getOrCreate("onRender", false); | ||
46 | - Event newTick = Event.getOrCreate("newTick", false); | ||
47 | - Event onTick = Event.getOrCreate("onTick", false); | ||
48 | - Event preRenderGUI = Event.getOrCreate("preRenderGUI", false); | ||
49 | - Event onRenderHUD = Event.getOrCreate("onRenderHUD", false); | ||
50 | - Event postRenderHUD = Event.getOrCreate("postRenderHUD", false); | ||
51 | - Event onSetupCameraTransform = Event.getOrCreate("onSetupCameraTransform", false); | ||
52 | - Event postRenderEntities = Event.getOrCreate("postRenderEntities", false); | ||
53 | - Event postRender = Event.getOrCreate("postRender", false); | ||
54 | - Event onRenderChat = Event.getOrCreate("onRenderChat", false); | ||
55 | - Event postRenderChat = Event.getOrCreate("postRenderChat", false); | ||
56 | - Event onCreateIntegratedServer = Event.getOrCreate("onCreateIntegratedServer", false); | ||
57 | - Event onStartupComplete = Event.getOrCreate("onStartupComplete", false); | ||
58 | - Event onSessionProfileBad = Event.getOrCreate("onSessionProfileBad", true); | ||
59 | - Event onSaveScreenshot = Event.getOrCreate("onSaveScreenshot", true); | ||
60 | - Event onRenderEntity = Event.getOrCreate("onRenderEntity", false); | ||
61 | - Event onPostRenderEntity = Event.getOrCreate("onPostRenderEntity", false); | ||
62 | - Event onJoinRealm = Event.getOrCreate("onJoinRealm", false); | ||
63 | - | ||
64 | - // Injection Points | ||
65 | - InjectionPoint methodHead = new MethodHead(); | ||
66 | - InjectionPoint methodReturn = new BeforeReturn(); | ||
67 | - InjectionPoint beforeGlClear = new BeforeInvoke(glClear); | ||
68 | - InjectionPoint beforeFBORender = new BeforeInvoke(framebufferRender); | ||
69 | - InjectionPoint beforeRenderHUD = new BeforeInvoke(renderGameOverlay); | ||
70 | - InjectionPoint beforeBindFBOTex = new BeforeInvoke(bindFramebufferTexture); | ||
71 | - InjectionPoint beforeRender = new BeforeInvoke(updateCameraAndRender); | ||
72 | - InjectionPoint beforeDrawChat = new BeforeInvoke(drawChat); | ||
73 | - InjectionPoint beforeEndProfiler = new BeforeInvoke(endSection); | ||
74 | - InjectionPoint beforeIsFBOEnabled = new BeforeInvoke(isFramebufferEnabled); | ||
75 | - InjectionPoint beforeRenderEntity = new BeforeInvoke(doRender).setCaptureLocals(true); | ||
76 | - InjectionPoint beforeStopRealsmFetcher = new BeforeInvoke(realmsStopFetcher).setCaptureLocals(true); | ||
77 | - InjectionPoint beforeTickProfiler = new BeforeStringInvoke("tick", startSection); | ||
78 | - InjectionPoint beforeCenterProfiler = new BeforeStringInvoke("center", startSection); | ||
79 | - InjectionPoint beforeSkyProfiler = new BeforeStringInvoke("sky", endStartSection); | ||
80 | - InjectionPoint beforeCloudsProfiler = new BeforeStringInvoke("clouds", endStartSection); | ||
81 | - InjectionPoint beforeTerrainProfiler = new BeforeStringInvoke("terrain", endStartSection); | ||
82 | - InjectionPoint beforeRenderProfiler = new BeforeStringInvoke("gameRenderer", endStartSection); | ||
83 | - InjectionPoint beforeFrustumProfiler = new BeforeStringInvoke("frustum", endStartSection); | ||
84 | - InjectionPoint beforeParticlesProfiler = new BeforeStringInvoke("litParticles", endStartSection); | ||
85 | - InjectionPoint beforeNewGameProfile = new BeforeNew(1, Obf.GameProfile); | ||
86 | - | ||
87 | - // Hooks | ||
88 | - this.add(onOutboundChat, sendChatMessage, (methodHead), "onOutboundChat"); | ||
89 | - this.add(onResize, updateFramebufferSize, (methodHead), "onResize"); | ||
90 | - this.add(preRenderFBO, runGameLoop, (beforeFBORender), "preRenderFBO"); | ||
91 | - this.add(renderFBO, framebufferRenderExt, (beforeBindFBOTex), "renderFBO"); | ||
92 | - this.add(postRenderFBO, runGameLoop, after(beforeFBORender), "postRenderFBO"); | ||
93 | - this.add(onRenderWorld, renderWorld, (beforeCenterProfiler), "onRenderWorld"); | ||
94 | - this.add(onRenderSky, renderWorldPass, (beforeSkyProfiler), "onRenderSky"); | ||
95 | - this.add(onRenderClouds, renderCloudsCheck, (beforeCloudsProfiler), "onRenderClouds"); | ||
96 | - this.add(onRenderTerrain, renderWorldPass, (beforeTerrainProfiler), "onRenderTerrain"); | ||
97 | - this.add(onTimerUpdate, runGameLoop, (beforeTickProfiler), "onTimerUpdate"); | ||
98 | - this.add(onRender, runGameLoop, (beforeRenderProfiler), "onRender"); | ||
99 | - this.add(newTick, runTick, (methodHead), "newTick"); | ||
100 | - this.add(onTick, runGameLoop, after(beforeRender), "onTick"); | ||
101 | - this.add(preRenderGUI, updateCameraAndRender, after(beforeGlClear), "preRenderGUI"); | ||
102 | - this.add(onRenderHUD, updateCameraAndRender, (beforeRenderHUD), "onRenderHUD"); | ||
103 | - this.add(postRenderHUD, updateCameraAndRender, after(beforeRenderHUD), "postRenderHUD"); | ||
104 | - this.add(onSetupCameraTransform, renderWorldPass, (beforeFrustumProfiler), "onSetupCameraTransform"); | ||
105 | - this.add(postRenderEntities, renderWorldPass, (beforeParticlesProfiler), "postRenderEntities"); | ||
106 | - this.add(postRender, renderWorld, (beforeEndProfiler), "postRender"); | ||
107 | - this.add(onRenderChat, renderGameOverlay, (beforeDrawChat), "onRenderChat"); | ||
108 | - this.add(postRenderChat, renderGameOverlay, after(beforeDrawChat), "postRenderChat"); | ||
109 | - this.add(onCreateIntegratedServer, integratedServerCtor, (methodReturn), "IntegratedServerCtor"); | ||
110 | - this.add(onStartupComplete, startGame, (methodReturn), "onStartupComplete"); | ||
111 | - this.add(onSaveScreenshot, saveScreenshot, (beforeIsFBOEnabled), "onSaveScreenshot"); | ||
112 | - this.add(onRenderEntity, doRenderEntity, (beforeRenderEntity), "onRenderEntity"); | ||
113 | - this.add(onPostRenderEntity, doRenderEntity, after(beforeRenderEntity), "onPostRenderEntity"); | ||
114 | - | ||
115 | - // Compatibility handlers | ||
116 | - this.add(onSessionProfileBad, getProfile, (beforeNewGameProfile), "generateOfflineUUID"); | ||
117 | - | ||
118 | - // Protocol handlers | ||
119 | - this.add(onJoinRealm, realmsPlay, (beforeStopRealsmFetcher), "onJoinRealm", Obf.PacketEventsClient); | ||
120 | - } | ||
121 | -} |
src/client/java/com/mumfrey/liteloader/client/util/PrivateFieldsClient.java
1 | package com.mumfrey.liteloader.client.util; | 1 | package com.mumfrey.liteloader.client.util; |
2 | 2 | ||
3 | -import java.util.IdentityHashMap; | ||
4 | -import java.util.List; | ||
5 | import java.util.Map; | 3 | import java.util.Map; |
6 | 4 | ||
7 | -import net.minecraft.client.network.NetHandlerLoginClient; | ||
8 | -import net.minecraft.client.renderer.entity.RenderManager; | ||
9 | -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; | ||
10 | -import net.minecraft.client.resources.IResourceManagerReloadListener; | ||
11 | -import net.minecraft.client.resources.SimpleReloadableResourceManager; | ||
12 | -import net.minecraft.network.NetworkManager; | ||
13 | -import net.minecraft.network.play.server.S02PacketChat; | ||
14 | -import net.minecraft.tileentity.TileEntity; | ||
15 | -import net.minecraft.util.IChatComponent; | ||
16 | -import net.minecraft.util.ObjectIntIdentityMap; | ||
17 | -import net.minecraft.util.RegistryNamespaced; | ||
18 | -import net.minecraft.util.RegistrySimple; | ||
19 | - | ||
20 | import com.mumfrey.liteloader.core.runtime.Obf; | 5 | import com.mumfrey.liteloader.core.runtime.Obf; |
21 | import com.mumfrey.liteloader.util.PrivateFields; | 6 | import com.mumfrey.liteloader.util.PrivateFields; |
22 | 7 | ||
8 | +import net.minecraft.tileentity.TileEntity; | ||
9 | + | ||
23 | @SuppressWarnings("rawtypes") | 10 | @SuppressWarnings("rawtypes") |
24 | public final class PrivateFieldsClient<P, T> extends PrivateFields<P, T> | 11 | public final class PrivateFieldsClient<P, T> extends PrivateFields<P, T> |
25 | { | 12 | { |
@@ -30,17 +17,6 @@ public final class PrivateFieldsClient<P, T> extends PrivateFields<P, T> | @@ -30,17 +17,6 @@ public final class PrivateFieldsClient<P, T> extends PrivateFields<P, T> | ||
30 | 17 | ||
31 | // CHECKSTYLE:OFF | 18 | // CHECKSTYLE:OFF |
32 | 19 | ||
33 | - public static final PrivateFieldsClient<RenderManager, Map> entityRenderMap = new PrivateFieldsClient<RenderManager, Map> (RenderManager.class, Obf.entityRenderMap); | ||
34 | - public static final PrivateFieldsClient<NetHandlerLoginClient, NetworkManager> netManager = new PrivateFieldsClient<NetHandlerLoginClient, NetworkManager> (NetHandlerLoginClient.class, Obf.networkManager); | ||
35 | - public static final PrivateFieldsClient<RegistrySimple, Map> registryObjects = new PrivateFieldsClient<RegistrySimple, Map> (RegistrySimple.class, Obf.registryObjects); | ||
36 | - public static final PrivateFieldsClient<RegistryNamespaced, ObjectIntIdentityMap> underlyingIntegerMap = new PrivateFieldsClient<RegistryNamespaced, ObjectIntIdentityMap>(RegistryNamespaced.class, Obf.underlyingIntegerMap); | ||
37 | - public static final PrivateFieldsClient<ObjectIntIdentityMap, IdentityHashMap> identityMap = new PrivateFieldsClient<ObjectIntIdentityMap, IdentityHashMap> (ObjectIntIdentityMap.class, Obf.identityMap); | ||
38 | - public static final PrivateFieldsClient<ObjectIntIdentityMap, List> objectList = new PrivateFieldsClient<ObjectIntIdentityMap, List> (ObjectIntIdentityMap.class, Obf.objectList); | ||
39 | - public static final PrivateFieldsClient<TileEntityRendererDispatcher, Map> specialRendererMap = new PrivateFieldsClient<TileEntityRendererDispatcher, Map> (TileEntityRendererDispatcher.class, Obf.mapSpecialRenderers); | ||
40 | - public static final PrivateFieldsClient<TileEntity, Map> tileEntityNameToClassMap = new PrivateFieldsClient<TileEntity, Map> (TileEntity.class, Obf.tileEntityNameToClassMap); | ||
41 | - public static final PrivateFieldsClient<TileEntity, Map> tileEntityClassToNameMap = new PrivateFieldsClient<TileEntity, Map> (TileEntity.class, Obf.tileEntityClassToNameMap); | ||
42 | - public static final PrivateFieldsClient<S02PacketChat, IChatComponent> chatMessage = new PrivateFieldsClient<S02PacketChat, IChatComponent> (S02PacketChat.class, Obf.chatComponent); | ||
43 | - | ||
44 | - public static final PrivateFieldsClient<SimpleReloadableResourceManager, List<IResourceManagerReloadListener>> reloadListeners = | ||
45 | - new PrivateFieldsClient<SimpleReloadableResourceManager, List<IResourceManagerReloadListener>>(SimpleReloadableResourceManager.class, Obf.reloadListeners); | 20 | + public static final PrivateFieldsClient<TileEntity, Map> tileEntityNameToClassMap = new PrivateFieldsClient<TileEntity, Map>(TileEntity.class, Obf.tileEntityNameToClassMap); |
21 | + public static final PrivateFieldsClient<TileEntity, Map> tileEntityClassToNameMap = new PrivateFieldsClient<TileEntity, Map>(TileEntity.class, Obf.tileEntityClassToNameMap); | ||
46 | } | 22 | } |
47 | \ No newline at end of file | 23 | \ No newline at end of file |
src/client/java/com/mumfrey/liteloader/util/ModUtilities.java
@@ -6,6 +6,15 @@ import java.util.IdentityHashMap; | @@ -6,6 +6,15 @@ import java.util.IdentityHashMap; | ||
6 | import java.util.List; | 6 | import java.util.List; |
7 | import java.util.Map; | 7 | import java.util.Map; |
8 | 8 | ||
9 | +import org.lwjgl.LWJGLException; | ||
10 | +import org.lwjgl.opengl.Display; | ||
11 | +import org.lwjgl.opengl.DisplayMode; | ||
12 | + | ||
13 | +import com.mumfrey.liteloader.client.ducks.*; | ||
14 | +import com.mumfrey.liteloader.client.overlays.IMinecraft; | ||
15 | +import com.mumfrey.liteloader.client.util.PrivateFieldsClient; | ||
16 | +import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
17 | + | ||
9 | import net.minecraft.block.Block; | 18 | import net.minecraft.block.Block; |
10 | import net.minecraft.client.Minecraft; | 19 | import net.minecraft.client.Minecraft; |
11 | import net.minecraft.client.renderer.entity.Render; | 20 | import net.minecraft.client.renderer.entity.Render; |
@@ -17,20 +26,9 @@ import net.minecraft.init.Blocks; | @@ -17,20 +26,9 @@ import net.minecraft.init.Blocks; | ||
17 | import net.minecraft.init.Items; | 26 | import net.minecraft.init.Items; |
18 | import net.minecraft.item.Item; | 27 | import net.minecraft.item.Item; |
19 | import net.minecraft.tileentity.TileEntity; | 28 | import net.minecraft.tileentity.TileEntity; |
20 | -import net.minecraft.util.ObjectIntIdentityMap; | ||
21 | -import net.minecraft.util.RegistryNamespaced; | ||
22 | import net.minecraft.util.RegistrySimple; | 29 | import net.minecraft.util.RegistrySimple; |
23 | import net.minecraft.util.ResourceLocation; | 30 | import net.minecraft.util.ResourceLocation; |
24 | 31 | ||
25 | -import org.lwjgl.LWJGLException; | ||
26 | -import org.lwjgl.opengl.Display; | ||
27 | -import org.lwjgl.opengl.DisplayMode; | ||
28 | - | ||
29 | -import com.mumfrey.liteloader.client.overlays.IMinecraft; | ||
30 | -import com.mumfrey.liteloader.client.util.PrivateFieldsClient; | ||
31 | -import com.mumfrey.liteloader.core.runtime.Obf; | ||
32 | -import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
33 | - | ||
34 | /** | 32 | /** |
35 | * A small collection of useful functions for mods | 33 | * A small collection of useful functions for mods |
36 | * | 34 | * |
@@ -67,12 +65,11 @@ public abstract class ModUtilities | @@ -67,12 +65,11 @@ public abstract class ModUtilities | ||
67 | * @param entityClass | 65 | * @param entityClass |
68 | * @param renderer | 66 | * @param renderer |
69 | */ | 67 | */ |
70 | - @SuppressWarnings("unchecked") | ||
71 | public static void addRenderer(Class<? extends Entity> entityClass, Render renderer) | 68 | public static void addRenderer(Class<? extends Entity> entityClass, Render renderer) |
72 | { | 69 | { |
73 | RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); | 70 | RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); |
74 | 71 | ||
75 | - Map<Class<? extends Entity>, Render> entityRenderMap = PrivateFieldsClient.entityRenderMap.get(renderManager); | 72 | + Map<Class<? extends Entity>, Render> entityRenderMap = ((IRenderManager)renderManager).getRenderMap(); |
76 | if (entityRenderMap != null) | 73 | if (entityRenderMap != null) |
77 | { | 74 | { |
78 | entityRenderMap.put(entityClass, renderer); | 75 | entityRenderMap.put(entityClass, renderer); |
@@ -84,7 +81,6 @@ public abstract class ModUtilities | @@ -84,7 +81,6 @@ public abstract class ModUtilities | ||
84 | } | 81 | } |
85 | } | 82 | } |
86 | 83 | ||
87 | - @SuppressWarnings("unchecked") | ||
88 | public static void addRenderer(Class<? extends TileEntity> tileEntityClass, TileEntitySpecialRenderer renderer) | 84 | public static void addRenderer(Class<? extends TileEntity> tileEntityClass, TileEntitySpecialRenderer renderer) |
89 | { | 85 | { |
90 | TileEntityRendererDispatcher tileEntityRenderer = TileEntityRendererDispatcher.instance; | 86 | TileEntityRendererDispatcher tileEntityRenderer = TileEntityRendererDispatcher.instance; |
@@ -92,7 +88,7 @@ public abstract class ModUtilities | @@ -92,7 +88,7 @@ public abstract class ModUtilities | ||
92 | try | 88 | try |
93 | { | 89 | { |
94 | Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> specialRendererMap | 90 | Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> specialRendererMap |
95 | - = PrivateFieldsClient.specialRendererMap.get(tileEntityRenderer); | 91 | + = ((ITileEntityRendererDispatcher)tileEntityRenderer).getSpecialRenderMap(); |
96 | specialRendererMap.put(tileEntityClass, renderer); | 92 | specialRendererMap.put(tileEntityClass, renderer); |
97 | renderer.setRendererDispatcher(tileEntityRenderer); | 93 | renderer.setRendererDispatcher(tileEntityRenderer); |
98 | } | 94 | } |
@@ -203,7 +199,6 @@ public abstract class ModUtilities | @@ -203,7 +199,6 @@ public abstract class ModUtilities | ||
203 | { | 199 | { |
204 | Map<String, Class<? extends TileEntity>> nameToClassMap = PrivateFieldsClient.tileEntityNameToClassMap.get(null); | 200 | Map<String, Class<? extends TileEntity>> nameToClassMap = PrivateFieldsClient.tileEntityNameToClassMap.get(null); |
205 | Map<Class<? extends TileEntity>, String> classToNameMap = PrivateFieldsClient.tileEntityClassToNameMap.get(null); | 201 | Map<Class<? extends TileEntity>, String> classToNameMap = PrivateFieldsClient.tileEntityClassToNameMap.get(null); |
206 | - | ||
207 | nameToClassMap.put(entityName, tileEntityClass); | 202 | nameToClassMap.put(entityName, tileEntityClass); |
208 | classToNameMap.put(tileEntityClass, entityName); | 203 | classToNameMap.put(tileEntityClass, entityName); |
209 | } | 204 | } |
@@ -213,47 +208,18 @@ public abstract class ModUtilities | @@ -213,47 +208,18 @@ public abstract class ModUtilities | ||
213 | } | 208 | } |
214 | } | 209 | } |
215 | 210 | ||
216 | - /** | ||
217 | - * Abstraction helper function | ||
218 | - * | ||
219 | - * @param fieldName Name of field to get, returned unmodified if in debug | ||
220 | - * mode | ||
221 | - * @return Obfuscated field name if present | ||
222 | - * @deprecated use ObfuscationUtilities.getObfuscatedFieldName instead | ||
223 | - */ | ||
224 | - @Deprecated | ||
225 | - public static String getObfuscatedFieldName(String fieldName, String obfuscatedFieldName, String seargeFieldName) | ||
226 | - { | ||
227 | - return ObfuscationUtilities.getObfuscatedFieldName(fieldName, obfuscatedFieldName, seargeFieldName); | ||
228 | - } | ||
229 | - | ||
230 | - /** | ||
231 | - * Abstraction helper function | ||
232 | - * | ||
233 | - * @param obf Field to get, returned unmodified if in debug mode | ||
234 | - * @return Obfuscated field name if present | ||
235 | - * @deprecated use ObfuscationUtilities.getObfuscatedFieldName instead | ||
236 | - */ | ||
237 | - @Deprecated | ||
238 | - public static String getObfuscatedFieldName(Obf obf) | ||
239 | - { | ||
240 | - return ObfuscationUtilities.getObfuscatedFieldName(obf); | ||
241 | - } | ||
242 | - | ||
243 | - @SuppressWarnings("unchecked") | ||
244 | private static <K, V> V removeObjectFromRegistry(RegistrySimple registry, K key) | 211 | private static <K, V> V removeObjectFromRegistry(RegistrySimple registry, K key) |
245 | { | 212 | { |
246 | if (registry == null) return null; | 213 | if (registry == null) return null; |
247 | 214 | ||
248 | - ObjectIntIdentityMap underlyingIntegerMap = null; | 215 | + IObjectIntIdentityMap underlyingIntegerMap = null; |
249 | 216 | ||
250 | - if (registry instanceof RegistryNamespaced) | 217 | + if (registry instanceof INamespacedRegistry) |
251 | { | 218 | { |
252 | - RegistryNamespaced rns = (RegistryNamespaced)registry; | ||
253 | - underlyingIntegerMap = PrivateFieldsClient.underlyingIntegerMap.get(rns); | 219 | + underlyingIntegerMap = ((INamespacedRegistry)registry).getUnderlyingMap(); |
254 | } | 220 | } |
255 | 221 | ||
256 | - Map<K, V> registryObjects = PrivateFieldsClient.registryObjects.get(registry); | 222 | + Map<K, V> registryObjects = ((IRegistrySimple)registry).<K, V>getRegistryObjects(); |
257 | if (registryObjects != null) | 223 | if (registryObjects != null) |
258 | { | 224 | { |
259 | V existingValue = registryObjects.get(key); | 225 | V existingValue = registryObjects.get(key); |
@@ -263,8 +229,8 @@ public abstract class ModUtilities | @@ -263,8 +229,8 @@ public abstract class ModUtilities | ||
263 | 229 | ||
264 | if (underlyingIntegerMap != null) | 230 | if (underlyingIntegerMap != null) |
265 | { | 231 | { |
266 | - IdentityHashMap<V, Integer> identityMap = PrivateFieldsClient.identityMap.get(underlyingIntegerMap); | ||
267 | - List<V> objectList = PrivateFieldsClient.objectList.get(underlyingIntegerMap); | 232 | + IdentityHashMap<V, Integer> identityMap = underlyingIntegerMap.<V>getIdentityMap(); |
233 | + List<V> objectList = underlyingIntegerMap.<V>getObjectList(); | ||
268 | if (identityMap != null) identityMap.remove(existingValue); | 234 | if (identityMap != null) identityMap.remove(existingValue); |
269 | if (objectList != null) objectList.remove(existingValue); | 235 | if (objectList != null) objectList.remove(existingValue); |
270 | } | 236 | } |
src/client/resources/mixins.liteloader.client.json
0 → 100644
1 | +{ | ||
2 | + "required": true, | ||
3 | + "minVersion": "0.4.10", | ||
4 | + "package": "com.mumfrey.liteloader.client.mixin", | ||
5 | + "refmap": "mixins.liteloader.client.refmap.json", | ||
6 | + "mixins": [ | ||
7 | + "MixinMinecraft", | ||
8 | + "MixinSession", | ||
9 | + "MixinEntityRenderer", | ||
10 | + "MixinRenderManager", | ||
11 | + "MixinGuiIngame", | ||
12 | + "MixinEntityPlayerSP", | ||
13 | + "MixinFramebuffer", | ||
14 | + "MixinIntegratedServer", | ||
15 | + "MixinScreenShotHelper", | ||
16 | + "MixinRealmsMainScreen", | ||
17 | + "MixinNetHandlerLoginClient", | ||
18 | + "MixinRegistrySimple", | ||
19 | + "MixinRegistryNamespaced", | ||
20 | + "MixinTileEntityRendererDispatcher", | ||
21 | + "MixinSimpleReloadableResourceManager" | ||
22 | + ] | ||
23 | +} | ||
0 | \ No newline at end of file | 24 | \ No newline at end of file |
src/main/java/com/mumfrey/liteloader/api/LiteAPI.java
@@ -53,7 +53,13 @@ public interface LiteAPI | @@ -53,7 +53,13 @@ public interface LiteAPI | ||
53 | * dependency using the api@revision syntax. | 53 | * dependency using the api@revision syntax. |
54 | */ | 54 | */ |
55 | public abstract int getRevision(); | 55 | public abstract int getRevision(); |
56 | - | 56 | + |
57 | + /** | ||
58 | + * Get mixin environment configuration provider for this API, can return | ||
59 | + * null. | ||
60 | + */ | ||
61 | + public abstract MixinConfigProvider getMixins(); | ||
62 | + | ||
57 | /** | 63 | /** |
58 | * Should return an array of required transformer names, these transformers | 64 | * Should return an array of required transformer names, these transformers |
59 | * will be injected UPSTREAM. Can return null. | 65 | * will be injected UPSTREAM. Can return null. |
src/main/java/com/mumfrey/liteloader/api/MixinConfigProvider.java
0 → 100644
1 | +package com.mumfrey.liteloader.api; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.MixinEnvironment.CompatibilityLevel; | ||
4 | + | ||
5 | +/** | ||
6 | + * Container for all of an API's mixin environment configuration | ||
7 | + */ | ||
8 | +public interface MixinConfigProvider | ||
9 | +{ | ||
10 | + /** | ||
11 | + * Get the minimum required mixin operating compatibility level for this | ||
12 | + * API, can return null. | ||
13 | + */ | ||
14 | + public abstract CompatibilityLevel getCompatibilityLevel(); | ||
15 | + | ||
16 | + /** | ||
17 | + * Get mixin configuration files for this API, all returned configs will be | ||
18 | + * added to the DEFAULT environment. Can return null. | ||
19 | + */ | ||
20 | + public abstract String[] getMixinConfigs(); | ||
21 | + | ||
22 | + /** | ||
23 | + * Get mixin error handler classes to register for this API. Can return | ||
24 | + * null. | ||
25 | + */ | ||
26 | + public abstract String[] getErrorHandlers(); | ||
27 | +} |
src/main/java/com/mumfrey/liteloader/api/manager/APIAdapter.java
@@ -16,6 +16,12 @@ import com.mumfrey.liteloader.interfaces.InterfaceRegistry; | @@ -16,6 +16,12 @@ import com.mumfrey.liteloader.interfaces.InterfaceRegistry; | ||
16 | public interface APIAdapter | 16 | public interface APIAdapter |
17 | { | 17 | { |
18 | /** | 18 | /** |
19 | + * APIs should register their mixin configs and set up the mixin environment | ||
20 | + * here. | ||
21 | + */ | ||
22 | + public abstract void initMixins(); | ||
23 | + | ||
24 | + /** | ||
19 | * Aggregate and return required transformers from all registered APIs | 25 | * Aggregate and return required transformers from all registered APIs |
20 | */ | 26 | */ |
21 | public abstract List<String> getRequiredTransformers(); | 27 | public abstract List<String> getRequiredTransformers(); |
src/main/java/com/mumfrey/liteloader/api/manager/APIProviderBasic.java
@@ -8,8 +8,12 @@ import java.util.List; | @@ -8,8 +8,12 @@ import java.util.List; | ||
8 | import java.util.Map; | 8 | import java.util.Map; |
9 | import java.util.regex.Matcher; | 9 | import java.util.regex.Matcher; |
10 | 10 | ||
11 | +import org.spongepowered.asm.mixin.MixinEnvironment; | ||
12 | +import org.spongepowered.asm.mixin.MixinEnvironment.CompatibilityLevel; | ||
13 | + | ||
11 | import com.mumfrey.liteloader.api.CoreProvider; | 14 | import com.mumfrey.liteloader.api.CoreProvider; |
12 | import com.mumfrey.liteloader.api.LiteAPI; | 15 | import com.mumfrey.liteloader.api.LiteAPI; |
16 | +import com.mumfrey.liteloader.api.MixinConfigProvider; | ||
13 | import com.mumfrey.liteloader.api.Observer; | 17 | import com.mumfrey.liteloader.api.Observer; |
14 | import com.mumfrey.liteloader.interfaces.InterfaceRegistry; | 18 | import com.mumfrey.liteloader.interfaces.InterfaceRegistry; |
15 | 19 | ||
@@ -54,6 +58,44 @@ class APIProviderBasic implements APIProvider, APIAdapter | @@ -54,6 +58,44 @@ class APIProviderBasic implements APIProvider, APIAdapter | ||
54 | this.apiMap.put(api.getIdentifier(), api); | 58 | this.apiMap.put(api.getIdentifier(), api); |
55 | } | 59 | } |
56 | } | 60 | } |
61 | + | ||
62 | + /* (non-Javadoc) | ||
63 | + * @see com.mumfrey.liteloader.api.manager.APIAdapter#initMixins() | ||
64 | + */ | ||
65 | + @Override | ||
66 | + public void initMixins() | ||
67 | + { | ||
68 | + for (LiteAPI api : this.apis) | ||
69 | + { | ||
70 | + MixinConfigProvider mixins = api.getMixins(); | ||
71 | + if (mixins != null) | ||
72 | + { | ||
73 | + CompatibilityLevel level = mixins.getCompatibilityLevel(); | ||
74 | + if (level != null) | ||
75 | + { | ||
76 | + MixinEnvironment.setCompatibilityLevel(level); | ||
77 | + } | ||
78 | + | ||
79 | + String[] configs = mixins.getMixinConfigs(); | ||
80 | + if (configs != null) | ||
81 | + { | ||
82 | + for (String config : configs) | ||
83 | + { | ||
84 | + MixinEnvironment.getDefaultEnvironment().addConfiguration(config); | ||
85 | + } | ||
86 | + } | ||
87 | + | ||
88 | + String[] errorHandlers = mixins.getErrorHandlers(); | ||
89 | + if (errorHandlers != null) | ||
90 | + { | ||
91 | + for (String handlerName : errorHandlers) | ||
92 | + { | ||
93 | + MixinEnvironment.getDefaultEnvironment().registerErrorHandlerClass(handlerName); | ||
94 | + } | ||
95 | + } | ||
96 | + } | ||
97 | + } | ||
98 | + } | ||
57 | 99 | ||
58 | /* (non-Javadoc) | 100 | /* (non-Javadoc) |
59 | * @see com.mumfrey.liteloader.api.manager.APIProvider | 101 | * @see com.mumfrey.liteloader.api.manager.APIProvider |
src/main/java/com/mumfrey/liteloader/common/ducks/IChatPacket.java
0 → 100644
src/main/java/com/mumfrey/liteloader/common/ducks/IPacketClientSettings.java
0 → 100644
src/main/java/com/mumfrey/liteloader/common/mixin/MixinC15PacketClientSettings.java
0 → 100644
1 | +package com.mumfrey.liteloader.common.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.Shadow; | ||
5 | + | ||
6 | +import com.mumfrey.liteloader.common.ducks.IPacketClientSettings; | ||
7 | + | ||
8 | +import net.minecraft.network.play.client.C15PacketClientSettings; | ||
9 | + | ||
10 | +@Mixin(C15PacketClientSettings.class) | ||
11 | +public abstract class MixinC15PacketClientSettings implements IPacketClientSettings | ||
12 | +{ | ||
13 | + @Shadow private int view; | ||
14 | + | ||
15 | + @Override | ||
16 | + public int getViewDistance() | ||
17 | + { | ||
18 | + return this.view; | ||
19 | + } | ||
20 | +} |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinItemInWorldManager.java
0 → 100644
1 | +package com.mumfrey.liteloader.common.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
7 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
8 | + | ||
9 | +import com.mumfrey.liteloader.core.Proxy; | ||
10 | + | ||
11 | +import net.minecraft.entity.player.EntityPlayer; | ||
12 | +import net.minecraft.item.ItemStack; | ||
13 | +import net.minecraft.server.management.ItemInWorldManager; | ||
14 | +import net.minecraft.util.BlockPos; | ||
15 | +import net.minecraft.util.EnumFacing; | ||
16 | +import net.minecraft.world.World; | ||
17 | + | ||
18 | +@Mixin(ItemInWorldManager.class) | ||
19 | +public abstract class MixinItemInWorldManager | ||
20 | +{ | ||
21 | + @Inject( | ||
22 | + method = "onBlockClicked(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)V", | ||
23 | + cancellable = true, | ||
24 | + at = @At("HEAD") | ||
25 | + ) | ||
26 | + private void onBlockClicked(BlockPos pos, EnumFacing side, CallbackInfo ci) | ||
27 | + { | ||
28 | + Proxy.onBlockClicked(ci, (ItemInWorldManager)(Object)this, pos, side); | ||
29 | + } | ||
30 | + | ||
31 | + @Inject( | ||
32 | + method = "activateBlockOrUseItem(Lnet/minecraft/entity/player/EntityPlayer;Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;" | ||
33 | + + "Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;FFF)Z", | ||
34 | + cancellable = true, | ||
35 | + at = @At("HEAD") | ||
36 | + ) | ||
37 | + private void onUseItem(EntityPlayer player, World worldIn, ItemStack stack, BlockPos pos, EnumFacing side, float offsetX, float offsetY, | ||
38 | + float offsetZ, CallbackInfoReturnable<Boolean> cir) | ||
39 | + { | ||
40 | + Proxy.onUseItem(cir, player, worldIn, stack, pos, side, offsetX, offsetY, offsetZ); | ||
41 | + } | ||
42 | +} |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinMinecraftServer.java
0 → 100644
1 | +package com.mumfrey.liteloader.common.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
7 | + | ||
8 | +import com.mumfrey.liteloader.core.Proxy; | ||
9 | + | ||
10 | +import net.minecraft.server.MinecraftServer; | ||
11 | + | ||
12 | +@Mixin(MinecraftServer.class) | ||
13 | +public abstract class MixinMinecraftServer | ||
14 | +{ | ||
15 | + @Inject(method = "updateTimeLightAndEntities()V", at = @At("HEAD")) | ||
16 | + private void onServerTick(CallbackInfo ci) | ||
17 | + { | ||
18 | + Proxy.onServerTick((MinecraftServer)(Object)this); | ||
19 | + } | ||
20 | +} |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinNetHandlerPlayServer.java
0 → 100644
1 | +package com.mumfrey.liteloader.common.mixin; | ||
2 | + | ||
3 | +import org.objectweb.asm.Opcodes; | ||
4 | +import org.spongepowered.asm.mixin.Mixin; | ||
5 | +import org.spongepowered.asm.mixin.injection.At; | ||
6 | +import org.spongepowered.asm.mixin.injection.At.Shift; | ||
7 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
8 | +import org.spongepowered.asm.mixin.injection.Surrogate; | ||
9 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
10 | +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; | ||
11 | + | ||
12 | +import com.mumfrey.liteloader.core.Proxy; | ||
13 | + | ||
14 | +import net.minecraft.network.NetHandlerPlayServer; | ||
15 | +import net.minecraft.network.play.client.C03PacketPlayer; | ||
16 | +import net.minecraft.network.play.client.C07PacketPlayerDigging; | ||
17 | +import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; | ||
18 | +import net.minecraft.network.play.client.C0APacketAnimation; | ||
19 | +import net.minecraft.world.WorldServer; | ||
20 | + | ||
21 | +@Mixin(NetHandlerPlayServer.class) | ||
22 | +public abstract class MixinNetHandlerPlayServer | ||
23 | +{ | ||
24 | + @Inject( | ||
25 | + method = "processPlayerBlockPlacement(Lnet/minecraft/network/play/client/C08PacketPlayerBlockPlacement;)V", | ||
26 | + cancellable = true, | ||
27 | + at = @At( | ||
28 | + value = "INVOKE", | ||
29 | + shift = Shift.AFTER, | ||
30 | + target = "Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue" | ||
31 | + + "(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V" | ||
32 | + ) | ||
33 | + ) | ||
34 | + private void onPlaceBlock(C08PacketPlayerBlockPlacement packetIn, CallbackInfo ci) | ||
35 | + { | ||
36 | + Proxy.onPlaceBlock(ci, (NetHandlerPlayServer)(Object)this, packetIn); | ||
37 | + } | ||
38 | + | ||
39 | + @Inject( | ||
40 | + method = "handleAnimation(Lnet/minecraft/network/play/client/C0APacketAnimation;)V", | ||
41 | + cancellable = true, | ||
42 | + at = @At( | ||
43 | + value = "INVOKE", | ||
44 | + shift = Shift.AFTER, | ||
45 | + target = "Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue" | ||
46 | + + "(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V" | ||
47 | + ) | ||
48 | + ) | ||
49 | + private void onClickedAir(C0APacketAnimation packetIn, CallbackInfo ci) | ||
50 | + { | ||
51 | + Proxy.onClickedAir(ci, (NetHandlerPlayServer)(Object)this, packetIn); | ||
52 | + } | ||
53 | + | ||
54 | + @Inject( | ||
55 | + method = "processPlayerDigging(Lnet/minecraft/network/play/client/C07PacketPlayerDigging;)V", | ||
56 | + cancellable = true, | ||
57 | + at = @At( | ||
58 | + value = "INVOKE", | ||
59 | + shift = Shift.AFTER, | ||
60 | + target = "Lnet/minecraft/network/PacketThreadUtil;checkThreadAndEnqueue" | ||
61 | + + "(Lnet/minecraft/network/Packet;Lnet/minecraft/network/INetHandler;Lnet/minecraft/util/IThreadListener;)V" | ||
62 | + ) | ||
63 | + ) | ||
64 | + private void onPlayerDigging(C07PacketPlayerDigging packetIn, CallbackInfo ci) | ||
65 | + { | ||
66 | + Proxy.onPlayerDigging(ci, (NetHandlerPlayServer)(Object)this, packetIn); | ||
67 | + } | ||
68 | + | ||
69 | + @Inject( | ||
70 | + method = "processPlayer(Lnet/minecraft/network/play/client/C03PacketPlayer;)V", | ||
71 | + cancellable = true, | ||
72 | + locals = LocalCapture.CAPTURE_FAILHARD, | ||
73 | + at = @At( | ||
74 | + value = "FIELD", | ||
75 | + opcode = Opcodes.GETFIELD, | ||
76 | + target = "Lnet/minecraft/entity/player/EntityPlayerMP;posY:D", | ||
77 | + ordinal = 4 | ||
78 | + ) | ||
79 | + ) | ||
80 | + private void onPlayerMoved(C03PacketPlayer packetIn, CallbackInfo ci, WorldServer world, double oldPosX, double oldPosY, double oldPosZ, | ||
81 | + double deltaMoveSq, double deltaX, double deltaY, double deltaZ) | ||
82 | + { | ||
83 | + Proxy.onPlayerMoved(ci, (NetHandlerPlayServer)(Object)this, packetIn, world, oldPosX, oldPosY, oldPosZ, deltaMoveSq, deltaX, deltaY, deltaZ); | ||
84 | + } | ||
85 | + | ||
86 | + @Surrogate | ||
87 | + private void onPlayerMoved(C03PacketPlayer packetIn, CallbackInfo ci, WorldServer world, double oldPosX, double oldPosY, double oldPosZ) | ||
88 | + { | ||
89 | + Proxy.onPlayerMoved(ci, (NetHandlerPlayServer)(Object)this, packetIn, world, oldPosX, oldPosY, oldPosZ); | ||
90 | + } | ||
91 | +} |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinS02PacketChat.java
0 → 100644
1 | +package com.mumfrey.liteloader.common.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.Shadow; | ||
5 | + | ||
6 | +import com.mumfrey.liteloader.common.ducks.IChatPacket; | ||
7 | + | ||
8 | +import net.minecraft.network.play.server.S02PacketChat; | ||
9 | +import net.minecraft.util.IChatComponent; | ||
10 | + | ||
11 | +@Mixin(S02PacketChat.class) | ||
12 | +public abstract class MixinS02PacketChat implements IChatPacket | ||
13 | +{ | ||
14 | + @Shadow private IChatComponent chatComponent; | ||
15 | + | ||
16 | + @Override | ||
17 | + public IChatComponent getChatComponent() | ||
18 | + { | ||
19 | + return this.chatComponent; | ||
20 | + } | ||
21 | + | ||
22 | + @Override | ||
23 | + public void setChatComponent(IChatComponent chatComponent) | ||
24 | + { | ||
25 | + this.chatComponent = chatComponent; | ||
26 | + } | ||
27 | +} |
src/main/java/com/mumfrey/liteloader/common/mixin/MixinServerConfigurationManager.java
0 → 100644
1 | +package com.mumfrey.liteloader.common.mixin; | ||
2 | + | ||
3 | +import org.spongepowered.asm.mixin.Mixin; | ||
4 | +import org.spongepowered.asm.mixin.injection.At; | ||
5 | +import org.spongepowered.asm.mixin.injection.Inject; | ||
6 | +import org.spongepowered.asm.mixin.injection.Surrogate; | ||
7 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
8 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
9 | + | ||
10 | +import com.mojang.authlib.GameProfile; | ||
11 | +import com.mumfrey.liteloader.core.Proxy; | ||
12 | + | ||
13 | +import net.minecraft.entity.player.EntityPlayerMP; | ||
14 | +import net.minecraft.network.NetHandlerPlayServer; | ||
15 | +import net.minecraft.network.NetworkManager; | ||
16 | +import net.minecraft.server.management.ServerConfigurationManager; | ||
17 | + | ||
18 | +@Mixin(ServerConfigurationManager.class) | ||
19 | +public abstract class MixinServerConfigurationManager | ||
20 | +{ | ||
21 | + @Inject( | ||
22 | + method = "initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;)V", | ||
23 | + at = @At("RETURN") | ||
24 | + ) | ||
25 | + private void onInitializePlayerConnection(NetworkManager netManager, EntityPlayerMP player, CallbackInfo ci) | ||
26 | + { | ||
27 | + Proxy.onInitializePlayerConnection((ServerConfigurationManager)(Object)this, netManager, player); | ||
28 | + } | ||
29 | + | ||
30 | + // Because, forge | ||
31 | + @Surrogate | ||
32 | + private void onInitializePlayerConnection(NetworkManager netManager, EntityPlayerMP player, NetHandlerPlayServer nhps, CallbackInfo ci) | ||
33 | + { | ||
34 | + Proxy.onInitializePlayerConnection((ServerConfigurationManager)(Object)this, netManager, player); | ||
35 | + } | ||
36 | + | ||
37 | + @Inject(method = "playerLoggedIn(Lnet/minecraft/entity/player/EntityPlayerMP;)V", at = @At("RETURN")) | ||
38 | + private void onPlayerLogin(EntityPlayerMP player, CallbackInfo ci) | ||
39 | + { | ||
40 | + Proxy.onPlayerLogin((ServerConfigurationManager)(Object)this, player); | ||
41 | + } | ||
42 | + | ||
43 | + @Inject(method = "playerLoggedOut(Lnet/minecraft/entity/player/EntityPlayerMP;)V", at = @At("RETURN")) | ||
44 | + private void onPlayerLogout(EntityPlayerMP player, CallbackInfo ci) | ||
45 | + { | ||
46 | + Proxy.onPlayerLogout((ServerConfigurationManager)(Object)this, player); | ||
47 | + } | ||
48 | + | ||
49 | + @Inject( | ||
50 | + method = "createPlayerForUser(Lcom/mojang/authlib/GameProfile;)Lnet/minecraft/entity/player/EntityPlayerMP;", | ||
51 | + cancellable = true, | ||
52 | + at = @At("RETURN") | ||
53 | + ) | ||
54 | + private void onSpawnPlayer(GameProfile profile, CallbackInfoReturnable<EntityPlayerMP> cir) | ||
55 | + { | ||
56 | + Proxy.onSpawnPlayer(cir, (ServerConfigurationManager)(Object)this, profile); | ||
57 | + } | ||
58 | + | ||
59 | + @Inject( | ||
60 | + method = "recreatePlayerEntity(Lnet/minecraft/entity/player/EntityPlayerMP;IZ)Lnet/minecraft/entity/player/EntityPlayerMP;", | ||
61 | + cancellable = true, | ||
62 | + at = @At("RETURN") | ||
63 | + ) | ||
64 | + private void onRespawnPlayer(EntityPlayerMP player, int dimension, boolean conqueredEnd, CallbackInfoReturnable<EntityPlayerMP> cir) | ||
65 | + { | ||
66 | + Proxy.onRespawnPlayer(cir, (ServerConfigurationManager)(Object)this, player, dimension, conqueredEnd); | ||
67 | + } | ||
68 | +} |
src/main/java/com/mumfrey/liteloader/common/transformers/LiteLoaderEventTransformer.java deleted
100644 → 0
1 | -package com.mumfrey.liteloader.common.transformers; | ||
2 | - | ||
3 | -import static com.mumfrey.liteloader.core.runtime.Methods.*; | ||
4 | -import static com.mumfrey.liteloader.transformers.event.InjectionPoint.*; | ||
5 | - | ||
6 | -import org.objectweb.asm.Opcodes; | ||
7 | - | ||
8 | -import com.mumfrey.liteloader.core.runtime.Obf; | ||
9 | -import com.mumfrey.liteloader.transformers.event.Event; | ||
10 | -import com.mumfrey.liteloader.transformers.event.EventInjectionTransformer; | ||
11 | -import com.mumfrey.liteloader.transformers.event.InjectionPoint; | ||
12 | -import com.mumfrey.liteloader.transformers.event.MethodInfo; | ||
13 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeFieldAccess; | ||
14 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeInvoke; | ||
15 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeNew; | ||
16 | -import com.mumfrey.liteloader.transformers.event.inject.BeforeReturn; | ||
17 | -import com.mumfrey.liteloader.transformers.event.inject.MethodHead; | ||
18 | - | ||
19 | -/** | ||
20 | - * Injector for LiteLoader's common events | ||
21 | - * | ||
22 | - * @author Adam Mummery-Smith | ||
23 | - */ | ||
24 | -public abstract class LiteLoaderEventTransformer extends EventInjectionTransformer | ||
25 | -{ | ||
26 | - protected abstract Obf getProxy(); | ||
27 | - | ||
28 | - @Override | ||
29 | - protected void addEvents() | ||
30 | - { | ||
31 | - // Event declarations | ||
32 | - Event onInitializePlayerConnection = Event.getOrCreate("onInitializePlayerConnection", false); | ||
33 | - Event onPlayerLogin = Event.getOrCreate("onPlayerLogin", false); | ||
34 | - Event onPlayerLogout = Event.getOrCreate("onPlayerLogout", false); | ||
35 | - Event onSpawnPlayer = Event.getOrCreate("onSpawnPlayer", false); | ||
36 | - Event onRespawnPlayer = Event.getOrCreate("onRespawnPlayer", false); | ||
37 | - Event onServerTick = Event.getOrCreate("onServerTick", false); | ||
38 | - Event onBlockClickedEvent = Event.getOrCreate("onBlockClicked", true); | ||
39 | - Event onActivateBlockOrUseItem = Event.getOrCreate("onActivateBlockOrUseItem", true); | ||
40 | - Event onPlayerDigging = Event.getOrCreate("onPlayerDigging", true); | ||
41 | - Event onPlaceBlock = Event.getOrCreate("onPlaceBlock", true); | ||
42 | - Event onClickedAir = Event.getOrCreate("onClickedAir", true); | ||
43 | - Event onSessionProfileBad = Event.getOrCreate("onSessionProfileBad", true); | ||
44 | - Event onPlayerMoved = Event.getOrCreate("onPlayerMoved", true); | ||
45 | - | ||
46 | - // Injection Points | ||
47 | - InjectionPoint methodHead = new MethodHead(); | ||
48 | - InjectionPoint methodReturn = new BeforeReturn(); | ||
49 | - InjectionPoint beforeNewGameProfile = new BeforeNew(1, Obf.GameProfile); | ||
50 | - InjectionPoint beforeThreadMarshall = new BeforeInvoke(checkThreadAndEnqueue); | ||
51 | - InjectionPoint beforeGetPosY = new BeforeFieldAccess(Opcodes.GETFIELD, Obf.entityPosY, Obf.EntityPlayerMP, 4).setCaptureLocals(true); | ||
52 | - | ||
53 | - // Hooks | ||
54 | - this.add(onInitializePlayerConnection, initPlayerConnection, (methodReturn), "onInitializePlayerConnection"); | ||
55 | - this.add(onPlayerLogin, playerLoggedIn, (methodReturn), "onPlayerLogin"); | ||
56 | - this.add(onPlayerLogout, playerLoggedOut, (methodReturn), "onPlayerLogout"); | ||
57 | - this.add(onSpawnPlayer, spawnPlayer, (methodReturn), "onSpawnPlayer"); | ||
58 | - this.add(onRespawnPlayer, respawnPlayer, (methodReturn), "onRespawnPlayer"); | ||
59 | - this.add(onServerTick, serverJobs, (methodHead), "onServerTick"); | ||
60 | - this.add(onBlockClickedEvent, onBlockClicked, (methodHead), "onBlockClicked"); | ||
61 | - this.add(onActivateBlockOrUseItem, activateBlockOrUseItem, (methodHead), "onUseItem"); | ||
62 | - this.add(onPlaceBlock, processBlockPlacement, after(beforeThreadMarshall) , "onPlaceBlock"); | ||
63 | - this.add(onClickedAir, handleAnimation, after(beforeThreadMarshall), "onClickedAir"); | ||
64 | - this.add(onPlayerDigging, processPlayerDigging, after(beforeThreadMarshall), "onPlayerDigging"); | ||
65 | - this.add(onPlayerMoved, processPlayer, (beforeGetPosY), "onPlayerMoved"); | ||
66 | - | ||
67 | - // Compatibility handlers | ||
68 | - this.add(onSessionProfileBad, getProfile, (beforeNewGameProfile), "generateOfflineUUID"); | ||
69 | - } | ||
70 | - | ||
71 | - protected final Event add(Event event, MethodInfo targetMethod, InjectionPoint injectionPoint, String callback) | ||
72 | - { | ||
73 | - return this.add(event, targetMethod, injectionPoint, callback, this.getProxy()); | ||
74 | - } | ||
75 | - | ||
76 | - protected Event add(Event event, MethodInfo targetMethod, InjectionPoint injectionPoint, String callback, Obf proxy) | ||
77 | - { | ||
78 | - return this.addEvent(event, targetMethod, injectionPoint).addListener(new MethodInfo(proxy, callback)); | ||
79 | - } | ||
80 | -} |
src/main/java/com/mumfrey/liteloader/core/LiteLoader.java
@@ -7,26 +7,10 @@ import java.util.List; | @@ -7,26 +7,10 @@ import java.util.List; | ||
7 | 7 | ||
8 | import javax.activity.InvalidActivityException; | 8 | import javax.activity.InvalidActivityException; |
9 | 9 | ||
10 | -import net.minecraft.crash.CrashReport; | ||
11 | -import net.minecraft.crash.CrashReportCategory; | ||
12 | -import net.minecraft.launchwrapper.LaunchClassLoader; | ||
13 | -import net.minecraft.network.EnumConnectionState; | ||
14 | -import net.minecraft.network.INetHandler; | ||
15 | -import net.minecraft.network.play.server.S01PacketJoinGame; | ||
16 | -import net.minecraft.profiler.Profiler; | ||
17 | -import net.minecraft.world.World; | 10 | +import org.spongepowered.asm.mixin.MixinEnvironment; |
18 | 11 | ||
19 | import com.mumfrey.liteloader.LiteMod; | 12 | import com.mumfrey.liteloader.LiteMod; |
20 | -import com.mumfrey.liteloader.api.CoreProvider; | ||
21 | -import com.mumfrey.liteloader.api.CustomisationProvider; | ||
22 | -import com.mumfrey.liteloader.api.Listener; | ||
23 | -import com.mumfrey.liteloader.api.LiteAPI; | ||
24 | -import com.mumfrey.liteloader.api.ModLoadObserver; | ||
25 | -import com.mumfrey.liteloader.api.PostRenderObserver; | ||
26 | -import com.mumfrey.liteloader.api.ShutdownObserver; | ||
27 | -import com.mumfrey.liteloader.api.TickObserver; | ||
28 | -import com.mumfrey.liteloader.api.TranslationProvider; | ||
29 | -import com.mumfrey.liteloader.api.WorldObserver; | 13 | +import com.mumfrey.liteloader.api.*; |
30 | import com.mumfrey.liteloader.api.manager.APIAdapter; | 14 | import com.mumfrey.liteloader.api.manager.APIAdapter; |
31 | import com.mumfrey.liteloader.api.manager.APIProvider; | 15 | import com.mumfrey.liteloader.api.manager.APIProvider; |
32 | import com.mumfrey.liteloader.common.GameEngine; | 16 | import com.mumfrey.liteloader.common.GameEngine; |
@@ -37,12 +21,7 @@ import com.mumfrey.liteloader.core.event.HandlerList; | @@ -37,12 +21,7 @@ import com.mumfrey.liteloader.core.event.HandlerList; | ||
37 | import com.mumfrey.liteloader.crashreport.CallableLaunchWrapper; | 21 | import com.mumfrey.liteloader.crashreport.CallableLaunchWrapper; |
38 | import com.mumfrey.liteloader.crashreport.CallableLiteLoaderBrand; | 22 | import com.mumfrey.liteloader.crashreport.CallableLiteLoaderBrand; |
39 | import com.mumfrey.liteloader.crashreport.CallableLiteLoaderMods; | 23 | import com.mumfrey.liteloader.crashreport.CallableLiteLoaderMods; |
40 | -import com.mumfrey.liteloader.interfaces.FastIterableDeque; | ||
41 | -import com.mumfrey.liteloader.interfaces.Loadable; | ||
42 | -import com.mumfrey.liteloader.interfaces.LoadableMod; | ||
43 | -import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | ||
44 | -import com.mumfrey.liteloader.interfaces.ObjectFactory; | ||
45 | -import com.mumfrey.liteloader.interfaces.PanelManager; | 24 | +import com.mumfrey.liteloader.interfaces.*; |
46 | import com.mumfrey.liteloader.launch.LoaderEnvironment; | 25 | import com.mumfrey.liteloader.launch.LoaderEnvironment; |
47 | import com.mumfrey.liteloader.launch.LoaderEnvironment.EnvironmentType; | 26 | import com.mumfrey.liteloader.launch.LoaderEnvironment.EnvironmentType; |
48 | import com.mumfrey.liteloader.launch.LoaderProperties; | 27 | import com.mumfrey.liteloader.launch.LoaderProperties; |
@@ -56,6 +35,15 @@ import com.mumfrey.liteloader.util.Input; | @@ -56,6 +35,15 @@ import com.mumfrey.liteloader.util.Input; | ||
56 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 35 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
57 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity; | 36 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity; |
58 | 37 | ||
38 | +import net.minecraft.crash.CrashReport; | ||
39 | +import net.minecraft.crash.CrashReportCategory; | ||
40 | +import net.minecraft.launchwrapper.LaunchClassLoader; | ||
41 | +import net.minecraft.network.EnumConnectionState; | ||
42 | +import net.minecraft.network.INetHandler; | ||
43 | +import net.minecraft.network.play.server.S01PacketJoinGame; | ||
44 | +import net.minecraft.profiler.Profiler; | ||
45 | +import net.minecraft.world.World; | ||
46 | + | ||
59 | /** | 47 | /** |
60 | * LiteLoader is a simple loader which loads and provides useful callbacks to | 48 | * LiteLoader is a simple loader which loads and provides useful callbacks to |
61 | * lightweight mods | 49 | * lightweight mods |
@@ -524,6 +512,7 @@ public final class LiteLoader | @@ -524,6 +512,7 @@ public final class LiteLoader | ||
524 | if (LiteLoaderLogger.DEBUG) | 512 | if (LiteLoaderLogger.DEBUG) |
525 | { | 513 | { |
526 | EventTransformer.dumpInjectionState(); | 514 | EventTransformer.dumpInjectionState(); |
515 | + MixinEnvironment.getCurrentEnvironment().audit(); | ||
527 | LiteLoaderLogger.info("Debug info dumped to console"); | 516 | LiteLoaderLogger.info("Debug info dumped to console"); |
528 | } | 517 | } |
529 | else | 518 | else |
src/main/java/com/mumfrey/liteloader/core/LiteLoaderBootstrap.java
1 | package com.mumfrey.liteloader.core; | 1 | package com.mumfrey.liteloader.core; |
2 | 2 | ||
3 | -import java.io.File; | ||
4 | -import java.io.FileInputStream; | ||
5 | -import java.io.FileNotFoundException; | ||
6 | -import java.io.FileWriter; | ||
7 | -import java.io.InputStream; | ||
8 | -import java.io.Serializable; | 3 | +import java.io.*; |
9 | import java.lang.reflect.Field; | 4 | import java.lang.reflect.Field; |
10 | import java.lang.reflect.Method; | 5 | import java.lang.reflect.Method; |
11 | import java.util.List; | 6 | import java.util.List; |
@@ -15,10 +10,7 @@ import org.apache.logging.log4j.core.Layout; | @@ -15,10 +10,7 @@ import org.apache.logging.log4j.core.Layout; | ||
15 | import org.apache.logging.log4j.core.Logger; | 10 | import org.apache.logging.log4j.core.Logger; |
16 | import org.apache.logging.log4j.core.appender.FileAppender; | 11 | import org.apache.logging.log4j.core.appender.FileAppender; |
17 | import org.apache.logging.log4j.core.layout.PatternLayout; | 12 | import org.apache.logging.log4j.core.layout.PatternLayout; |
18 | - | ||
19 | -import net.minecraft.launchwrapper.ITweaker; | ||
20 | -import net.minecraft.launchwrapper.Launch; | ||
21 | -import net.minecraft.launchwrapper.LaunchClassLoader; | 13 | +import org.spongepowered.asm.mixin.MixinEnvironment; |
22 | 14 | ||
23 | import com.mumfrey.liteloader.api.LiteAPI; | 15 | import com.mumfrey.liteloader.api.LiteAPI; |
24 | import com.mumfrey.liteloader.api.manager.APIAdapter; | 16 | import com.mumfrey.liteloader.api.manager.APIAdapter; |
@@ -27,15 +19,15 @@ import com.mumfrey.liteloader.api.manager.APIRegistry; | @@ -27,15 +19,15 @@ import com.mumfrey.liteloader.api.manager.APIRegistry; | ||
27 | import com.mumfrey.liteloader.common.LoadingProgress; | 19 | import com.mumfrey.liteloader.common.LoadingProgress; |
28 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; | 20 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; |
29 | import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | 21 | import com.mumfrey.liteloader.interfaces.LoaderEnumerator; |
30 | -import com.mumfrey.liteloader.launch.ClassTransformerManager; | ||
31 | -import com.mumfrey.liteloader.launch.LiteLoaderTweaker; | ||
32 | -import com.mumfrey.liteloader.launch.LoaderBootstrap; | ||
33 | -import com.mumfrey.liteloader.launch.LoaderEnvironment; | ||
34 | -import com.mumfrey.liteloader.launch.LoaderProperties; | ||
35 | -import com.mumfrey.liteloader.launch.StartupEnvironment; | 22 | +import com.mumfrey.liteloader.launch.*; |
23 | +import com.mumfrey.liteloader.util.ObfuscationUtilities; | ||
36 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 24 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
37 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity; | 25 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity; |
38 | 26 | ||
27 | +import net.minecraft.launchwrapper.ITweaker; | ||
28 | +import net.minecraft.launchwrapper.Launch; | ||
29 | +import net.minecraft.launchwrapper.LaunchClassLoader; | ||
30 | + | ||
39 | /** | 31 | /** |
40 | * LiteLoaderBootstrap is responsible for managing the early part of the | 32 | * LiteLoaderBootstrap is responsible for managing the early part of the |
41 | * LiteLoader startup process, this is to ensure that NONE of the Minecraft | 33 | * LiteLoader startup process, this is to ensure that NONE of the Minecraft |
@@ -316,10 +308,18 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | @@ -316,10 +308,18 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | ||
316 | 308 | ||
317 | this.enumerator = this.spawnEnumerator(classLoader); | 309 | this.enumerator = this.spawnEnumerator(classLoader); |
318 | this.enumerator.onPreInit(); | 310 | this.enumerator.onPreInit(); |
311 | + | ||
312 | + this.initMixins(); | ||
319 | 313 | ||
320 | LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader PREINIT complete"); | 314 | LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader PREINIT complete"); |
321 | } | 315 | } |
322 | 316 | ||
317 | + private void initMixins() | ||
318 | + { | ||
319 | + LiteLoaderLogger.info(Verbosity.REDUCED, "Initialising LiteLoader Mixins"); | ||
320 | + this.getAPIAdapter().initMixins(); | ||
321 | + } | ||
322 | + | ||
323 | /** | 323 | /** |
324 | * @param classLoader | 324 | * @param classLoader |
325 | */ | 325 | */ |
@@ -341,6 +341,12 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | @@ -341,6 +341,12 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | ||
341 | } | 341 | } |
342 | 342 | ||
343 | LoadingProgress.setEnabled(this.getAndStoreBooleanProperty(LoaderProperties.OPTION_LOADING_BAR, true)); | 343 | LoadingProgress.setEnabled(this.getAndStoreBooleanProperty(LoaderProperties.OPTION_LOADING_BAR, true)); |
344 | + | ||
345 | + if (ObfuscationUtilities.fmlIsPresent()) | ||
346 | + { | ||
347 | + LiteLoaderLogger.info("FML detected, switching to searge mappings"); | ||
348 | + MixinEnvironment.getDefaultEnvironment().setObfuscationContext("searge"); | ||
349 | + } | ||
344 | } | 350 | } |
345 | 351 | ||
346 | /* (non-Javadoc) | 352 | /* (non-Javadoc) |
@@ -740,7 +746,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | @@ -740,7 +746,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | ||
740 | @Override | 746 | @Override |
741 | public List<String> getRequiredTransformers() | 747 | public List<String> getRequiredTransformers() |
742 | { | 748 | { |
743 | - return this.apiAdapter.getRequiredTransformers(); | 749 | + return this.getAPIAdapter().getRequiredTransformers(); |
744 | } | 750 | } |
745 | 751 | ||
746 | /* (non-Javadoc) | 752 | /* (non-Javadoc) |
@@ -750,7 +756,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | @@ -750,7 +756,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP | ||
750 | @Override | 756 | @Override |
751 | public List<String> getRequiredDownstreamTransformers() | 757 | public List<String> getRequiredDownstreamTransformers() |
752 | { | 758 | { |
753 | - List<String> requiredDownstreamTransformers = this.apiAdapter.getRequiredDownstreamTransformers(); | 759 | + List<String> requiredDownstreamTransformers = this.getAPIAdapter().getRequiredDownstreamTransformers(); |
754 | requiredDownstreamTransformers.add(0, "com.mumfrey.liteloader.transformers.event.EventTransformer"); | 760 | requiredDownstreamTransformers.add(0, "com.mumfrey.liteloader.transformers.event.EventTransformer"); |
755 | return requiredDownstreamTransformers; | 761 | return requiredDownstreamTransformers; |
756 | } | 762 | } |
src/main/java/com/mumfrey/liteloader/core/LiteLoaderEventBroker.java
@@ -5,6 +5,23 @@ import java.util.HashMap; | @@ -5,6 +5,23 @@ import java.util.HashMap; | ||
5 | import java.util.Map; | 5 | import java.util.Map; |
6 | import java.util.UUID; | 6 | import java.util.UUID; |
7 | 7 | ||
8 | +import com.mojang.authlib.GameProfile; | ||
9 | +import com.mumfrey.liteloader.*; | ||
10 | +import com.mumfrey.liteloader.PlayerInteractionListener.MouseButton; | ||
11 | +import com.mumfrey.liteloader.api.InterfaceProvider; | ||
12 | +import com.mumfrey.liteloader.api.Listener; | ||
13 | +import com.mumfrey.liteloader.api.ShutdownObserver; | ||
14 | +import com.mumfrey.liteloader.common.GameEngine; | ||
15 | +import com.mumfrey.liteloader.common.LoadingProgress; | ||
16 | +import com.mumfrey.liteloader.common.ducks.IPacketClientSettings; | ||
17 | +import com.mumfrey.liteloader.core.event.HandlerList; | ||
18 | +import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; | ||
19 | +import com.mumfrey.liteloader.interfaces.FastIterable; | ||
20 | +import com.mumfrey.liteloader.interfaces.FastIterableDeque; | ||
21 | +import com.mumfrey.liteloader.launch.LoaderProperties; | ||
22 | +import com.mumfrey.liteloader.util.Position; | ||
23 | +import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
24 | + | ||
8 | import net.minecraft.command.ICommandManager; | 25 | import net.minecraft.command.ICommandManager; |
9 | import net.minecraft.command.ServerCommandManager; | 26 | import net.minecraft.command.ServerCommandManager; |
10 | import net.minecraft.entity.player.EntityPlayerMP; | 27 | import net.minecraft.entity.player.EntityPlayerMP; |
@@ -25,31 +42,6 @@ import net.minecraft.world.World; | @@ -25,31 +42,6 @@ import net.minecraft.world.World; | ||
25 | import net.minecraft.world.WorldServer; | 42 | import net.minecraft.world.WorldServer; |
26 | import net.minecraft.world.WorldSettings; | 43 | import net.minecraft.world.WorldSettings; |
27 | 44 | ||
28 | -import com.mojang.authlib.GameProfile; | ||
29 | -import com.mumfrey.liteloader.LiteMod; | ||
30 | -import com.mumfrey.liteloader.PlayerInteractionListener; | ||
31 | -import com.mumfrey.liteloader.PlayerInteractionListener.MouseButton; | ||
32 | -import com.mumfrey.liteloader.PlayerMoveListener; | ||
33 | -import com.mumfrey.liteloader.PluginChannelListener; | ||
34 | -import com.mumfrey.liteloader.ServerCommandProvider; | ||
35 | -import com.mumfrey.liteloader.ServerPlayerListener; | ||
36 | -import com.mumfrey.liteloader.ServerPluginChannelListener; | ||
37 | -import com.mumfrey.liteloader.ServerTickable; | ||
38 | -import com.mumfrey.liteloader.ShutdownListener; | ||
39 | -import com.mumfrey.liteloader.api.InterfaceProvider; | ||
40 | -import com.mumfrey.liteloader.api.Listener; | ||
41 | -import com.mumfrey.liteloader.api.ShutdownObserver; | ||
42 | -import com.mumfrey.liteloader.common.GameEngine; | ||
43 | -import com.mumfrey.liteloader.common.LoadingProgress; | ||
44 | -import com.mumfrey.liteloader.core.event.HandlerList; | ||
45 | -import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; | ||
46 | -import com.mumfrey.liteloader.interfaces.FastIterable; | ||
47 | -import com.mumfrey.liteloader.interfaces.FastIterableDeque; | ||
48 | -import com.mumfrey.liteloader.launch.LoaderProperties; | ||
49 | -import com.mumfrey.liteloader.util.Position; | ||
50 | -import com.mumfrey.liteloader.util.PrivateFields; | ||
51 | -import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
52 | - | ||
53 | /** | 45 | /** |
54 | * @author Adam Mummery-Smith | 46 | * @author Adam Mummery-Smith |
55 | * | 47 | * |
@@ -513,7 +505,7 @@ public abstract class LiteLoaderEventBroker<TClient, TServer extends MinecraftSe | @@ -513,7 +505,7 @@ public abstract class LiteLoaderEventBroker<TClient, TServer extends MinecraftSe | ||
513 | void onPlayerSettingsReceived(EntityPlayerMP player, C15PacketClientSettings packet) | 505 | void onPlayerSettingsReceived(EntityPlayerMP player, C15PacketClientSettings packet) |
514 | { | 506 | { |
515 | PlayerEventState playerState = this.getPlayerState(player); | 507 | PlayerEventState playerState = this.getPlayerState(player); |
516 | - playerState.setTraceDistance(PrivateFields.viewDistance.get(packet)); | 508 | + playerState.setTraceDistance(((IPacketClientSettings)packet).getViewDistance()); |
517 | playerState.setLocale(packet.getLang()); | 509 | playerState.setLocale(packet.getLang()); |
518 | } | 510 | } |
519 | 511 |
src/main/java/com/mumfrey/liteloader/core/CallbackProxyCommon.java renamed to src/main/java/com/mumfrey/liteloader/core/Proxy.java
1 | package com.mumfrey.liteloader.core; | 1 | package com.mumfrey.liteloader.core; |
2 | 2 | ||
3 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
4 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; | ||
5 | + | ||
6 | +import com.mojang.authlib.GameProfile; | ||
7 | + | ||
3 | import net.minecraft.entity.player.EntityPlayer; | 8 | import net.minecraft.entity.player.EntityPlayer; |
4 | import net.minecraft.entity.player.EntityPlayerMP; | 9 | import net.minecraft.entity.player.EntityPlayerMP; |
5 | import net.minecraft.item.ItemStack; | 10 | import net.minecraft.item.ItemStack; |
@@ -17,89 +22,83 @@ import net.minecraft.util.EnumFacing; | @@ -17,89 +22,83 @@ import net.minecraft.util.EnumFacing; | ||
17 | import net.minecraft.world.World; | 22 | import net.minecraft.world.World; |
18 | import net.minecraft.world.WorldServer; | 23 | import net.minecraft.world.WorldServer; |
19 | 24 | ||
20 | -import com.mojang.authlib.GameProfile; | ||
21 | -import com.mumfrey.liteloader.transformers.event.EventInfo; | ||
22 | -import com.mumfrey.liteloader.transformers.event.ReturnEventInfo; | ||
23 | - | ||
24 | -public abstract class CallbackProxyCommon | 25 | +public abstract class Proxy |
25 | { | 26 | { |
26 | - private static LiteLoaderEventBroker<?, ?> eventBroker; | 27 | + private static LiteLoaderEventBroker<?, ?> broker; |
27 | 28 | ||
28 | - protected CallbackProxyCommon() {} | 29 | + protected Proxy() {} |
29 | 30 | ||
30 | protected static void onStartupComplete() | 31 | protected static void onStartupComplete() |
31 | { | 32 | { |
32 | - CallbackProxyCommon.eventBroker = LiteLoaderEventBroker.broker; | 33 | + Proxy.broker = LiteLoaderEventBroker.broker; |
33 | 34 | ||
34 | - if (CallbackProxyCommon.eventBroker == null) | 35 | + if (Proxy.broker == null) |
35 | { | 36 | { |
36 | throw new RuntimeException("LiteLoader failed to start up properly." | 37 | throw new RuntimeException("LiteLoader failed to start up properly." |
37 | + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); | 38 | + " The game is in an unstable state and must shut down now. Check the developer log for startup errors"); |
38 | } | 39 | } |
39 | } | 40 | } |
40 | 41 | ||
41 | - public static void onInitializePlayerConnection(EventInfo<ServerConfigurationManager> e, NetworkManager netManager, EntityPlayerMP player) | 42 | + public static void onInitializePlayerConnection(ServerConfigurationManager source, NetworkManager netManager, EntityPlayerMP player) |
42 | { | 43 | { |
43 | - CallbackProxyCommon.eventBroker.onInitializePlayerConnection(e.getSource(), netManager, player); | 44 | + Proxy.broker.onInitializePlayerConnection(source, netManager, player); |
44 | } | 45 | } |
45 | 46 | ||
46 | - public static void onPlayerLogin(EventInfo<ServerConfigurationManager> e, EntityPlayerMP player) | 47 | + public static void onPlayerLogin(ServerConfigurationManager source, EntityPlayerMP player) |
47 | { | 48 | { |
48 | - CallbackProxyCommon.eventBroker.onPlayerLogin(e.getSource(), player); | 49 | + Proxy.broker.onPlayerLogin(source, player); |
49 | } | 50 | } |
50 | 51 | ||
51 | - public static void onPlayerLogout(EventInfo<ServerConfigurationManager> e, EntityPlayerMP player) | 52 | + public static void onPlayerLogout(ServerConfigurationManager source, EntityPlayerMP player) |
52 | { | 53 | { |
53 | - CallbackProxyCommon.eventBroker.onPlayerLogout(e.getSource(), player); | 54 | + Proxy.broker.onPlayerLogout(source, player); |
54 | } | 55 | } |
55 | 56 | ||
56 | - public static void onSpawnPlayer(ReturnEventInfo<ServerConfigurationManager, EntityPlayerMP> e, GameProfile profile) | 57 | + public static void onSpawnPlayer(CallbackInfoReturnable<EntityPlayerMP> cir, ServerConfigurationManager source, GameProfile profile) |
57 | { | 58 | { |
58 | - CallbackProxyCommon.eventBroker.onSpawnPlayer(e.getSource(), e.getReturnValue(), profile); | 59 | + Proxy.broker.onSpawnPlayer(source, cir.getReturnValue(), profile); |
59 | } | 60 | } |
60 | 61 | ||
61 | - public static void onRespawnPlayer(ReturnEventInfo<ServerConfigurationManager, EntityPlayerMP> e, EntityPlayerMP oldPlayer, int dimension, | ||
62 | - boolean won) | 62 | + public static void onRespawnPlayer(CallbackInfoReturnable<EntityPlayerMP> cir, ServerConfigurationManager source, EntityPlayerMP oldPlayer, |
63 | + int dimension, boolean won) | ||
63 | { | 64 | { |
64 | - CallbackProxyCommon.eventBroker.onRespawnPlayer(e.getSource(), e.getReturnValue(), oldPlayer, dimension, won); | 65 | + Proxy.broker.onRespawnPlayer(source, cir.getReturnValue(), oldPlayer, dimension, won); |
65 | } | 66 | } |
66 | 67 | ||
67 | - public static void onServerTick(EventInfo<MinecraftServer> e) | 68 | + public static void onServerTick(MinecraftServer mcServer) |
68 | { | 69 | { |
69 | - CallbackProxyCommon.eventBroker.onServerTick(e.getSource()); | 70 | + Proxy.broker.onServerTick(mcServer); |
70 | } | 71 | } |
71 | 72 | ||
72 | - public static void onPlaceBlock(EventInfo<NetHandlerPlayServer> e, C08PacketPlayerBlockPlacement packet) | 73 | + public static void onPlaceBlock(CallbackInfo ci, NetHandlerPlayServer netHandler, C08PacketPlayerBlockPlacement packet) |
73 | { | 74 | { |
74 | - NetHandlerPlayServer netHandler = e.getSource(); | ||
75 | - if (!CallbackProxyCommon.eventBroker.onPlaceBlock(netHandler, netHandler.playerEntity, packet.getPosition(), | 75 | + if (!Proxy.broker.onPlaceBlock(netHandler, netHandler.playerEntity, packet.getPosition(), |
76 | EnumFacing.getFront(packet.getPlacedBlockDirection()))) | 76 | EnumFacing.getFront(packet.getPlacedBlockDirection()))) |
77 | { | 77 | { |
78 | - e.cancel(); | 78 | + ci.cancel(); |
79 | } | 79 | } |
80 | } | 80 | } |
81 | 81 | ||
82 | - public static void onClickedAir(EventInfo<NetHandlerPlayServer> e, C0APacketAnimation packet) | 82 | + public static void onClickedAir(CallbackInfo ci, NetHandlerPlayServer netHandler, C0APacketAnimation packet) |
83 | { | 83 | { |
84 | - if (!CallbackProxyCommon.eventBroker.onClickedAir(e.getSource())) | 84 | + if (!Proxy.broker.onClickedAir(netHandler)) |
85 | { | 85 | { |
86 | - e.cancel(); | 86 | + ci.cancel(); |
87 | } | 87 | } |
88 | } | 88 | } |
89 | 89 | ||
90 | - public static void onPlayerDigging(EventInfo<NetHandlerPlayServer> e, C07PacketPlayerDigging packet) | 90 | + public static void onPlayerDigging(CallbackInfo ci, NetHandlerPlayServer netHandler, C07PacketPlayerDigging packet) |
91 | { | 91 | { |
92 | if (packet.getStatus() == C07PacketPlayerDigging.Action.START_DESTROY_BLOCK) | 92 | if (packet.getStatus() == C07PacketPlayerDigging.Action.START_DESTROY_BLOCK) |
93 | { | 93 | { |
94 | - NetHandlerPlayServer netHandler = e.getSource(); | ||
95 | - if (!CallbackProxyCommon.eventBroker.onPlayerDigging(netHandler, packet.getPosition(), netHandler.playerEntity)) | 94 | + if (!Proxy.broker.onPlayerDigging(netHandler, packet.getPosition(), netHandler.playerEntity)) |
96 | { | 95 | { |
97 | - e.cancel(); | 96 | + ci.cancel(); |
98 | } | 97 | } |
99 | } | 98 | } |
100 | } | 99 | } |
101 | 100 | ||
102 | - public static void onUseItem(ReturnEventInfo<ItemInWorldManager, Boolean> e, EntityPlayer player, World world, ItemStack itemStack, BlockPos pos, | 101 | + public static void onUseItem(CallbackInfoReturnable<Boolean> ci, EntityPlayer player, World world, ItemStack itemStack, BlockPos pos, |
103 | EnumFacing side, float par8, float par9, float par10) | 102 | EnumFacing side, float par8, float par9, float par10) |
104 | { | 103 | { |
105 | if (!(player instanceof EntityPlayerMP)) | 104 | if (!(player instanceof EntityPlayerMP)) |
@@ -107,39 +106,35 @@ public abstract class CallbackProxyCommon | @@ -107,39 +106,35 @@ public abstract class CallbackProxyCommon | ||
107 | return; | 106 | return; |
108 | } | 107 | } |
109 | 108 | ||
110 | - if (!CallbackProxyCommon.eventBroker.onUseItem(pos, side, (EntityPlayerMP)player)) | 109 | + if (!Proxy.broker.onUseItem(pos, side, (EntityPlayerMP)player)) |
111 | { | 110 | { |
112 | - e.setReturnValue(false); | 111 | + ci.setReturnValue(false); |
113 | } | 112 | } |
114 | } | 113 | } |
115 | 114 | ||
116 | - public static void onBlockClicked(EventInfo<ItemInWorldManager> e, BlockPos pos, EnumFacing side) | 115 | + public static void onBlockClicked(CallbackInfo ci, ItemInWorldManager manager, BlockPos pos, EnumFacing side) |
117 | { | 116 | { |
118 | - ItemInWorldManager manager = e.getSource(); | ||
119 | - | ||
120 | - if (!CallbackProxyCommon.eventBroker.onBlockClicked(pos, side, manager)) | 117 | + if (!Proxy.broker.onBlockClicked(pos, side, manager)) |
121 | { | 118 | { |
122 | - e.cancel(); | 119 | + ci.cancel(); |
123 | } | 120 | } |
124 | } | 121 | } |
125 | 122 | ||
126 | - public static void onPlayerMoved(EventInfo<NetHandlerPlayServer> e, C03PacketPlayer packet, WorldServer world, double oldPosX, double oldPosY, | ||
127 | - double oldPosZ) | 123 | + public static void onPlayerMoved(CallbackInfo ci, NetHandlerPlayServer netHandler, C03PacketPlayer packet, WorldServer world, double oldPosX, |
124 | + double oldPosY, double oldPosZ) | ||
128 | { | 125 | { |
129 | - NetHandlerPlayServer netHandler = e.getSource(); | ||
130 | - if (!CallbackProxyCommon.eventBroker.onPlayerMove(netHandler, packet, netHandler.playerEntity, world)) | 126 | + if (!Proxy.broker.onPlayerMove(netHandler, packet, netHandler.playerEntity, world)) |
131 | { | 127 | { |
132 | - e.cancel(); | 128 | + ci.cancel(); |
133 | } | 129 | } |
134 | } | 130 | } |
135 | 131 | ||
136 | - public static void onPlayerMoved(EventInfo<NetHandlerPlayServer> e, C03PacketPlayer packet, WorldServer world, double oldPosX, double oldPosY, | ||
137 | - double oldPosZ, double deltaMoveSq, double deltaX, double deltaY, double deltaZ) | 132 | + public static void onPlayerMoved(CallbackInfo ci, NetHandlerPlayServer netHandler, C03PacketPlayer packet, WorldServer world, double oldPosX, |
133 | + double oldPosY, double oldPosZ, double deltaMoveSq, double deltaX, double deltaY, double deltaZ) | ||
138 | { | 134 | { |
139 | - NetHandlerPlayServer netHandler = e.getSource(); | ||
140 | - if (!CallbackProxyCommon.eventBroker.onPlayerMove(netHandler, packet, netHandler.playerEntity, world)) | 135 | + if (!Proxy.broker.onPlayerMove(netHandler, packet, netHandler.playerEntity, world)) |
141 | { | 136 | { |
142 | - e.cancel(); | 137 | + ci.cancel(); |
143 | } | 138 | } |
144 | } | 139 | } |
145 | } | 140 | } |
src/main/java/com/mumfrey/liteloader/core/api/LiteLoaderCoreAPI.java
@@ -5,8 +5,11 @@ import java.util.ArrayList; | @@ -5,8 +5,11 @@ import java.util.ArrayList; | ||
5 | import java.util.Collections; | 5 | import java.util.Collections; |
6 | import java.util.List; | 6 | import java.util.List; |
7 | 7 | ||
8 | +import org.spongepowered.asm.mixin.MixinEnvironment.CompatibilityLevel; | ||
9 | + | ||
8 | import com.mumfrey.liteloader.api.EnumeratorModule; | 10 | import com.mumfrey.liteloader.api.EnumeratorModule; |
9 | import com.mumfrey.liteloader.api.LiteAPI; | 11 | import com.mumfrey.liteloader.api.LiteAPI; |
12 | +import com.mumfrey.liteloader.api.MixinConfigProvider; | ||
10 | import com.mumfrey.liteloader.core.LiteLoaderVersion; | 13 | import com.mumfrey.liteloader.core.LiteLoaderVersion; |
11 | import com.mumfrey.liteloader.interfaces.ObjectFactory; | 14 | import com.mumfrey.liteloader.interfaces.ObjectFactory; |
12 | import com.mumfrey.liteloader.launch.LoaderEnvironment; | 15 | import com.mumfrey.liteloader.launch.LoaderEnvironment; |
@@ -18,7 +21,7 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | @@ -18,7 +21,7 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
18 | * | 21 | * |
19 | * @author Adam Mummery-Smith | 22 | * @author Adam Mummery-Smith |
20 | */ | 23 | */ |
21 | -public abstract class LiteLoaderCoreAPI implements LiteAPI | 24 | +public abstract class LiteLoaderCoreAPI implements LiteAPI, MixinConfigProvider |
22 | { | 25 | { |
23 | protected static final String PKG_LITELOADER = "com.mumfrey.liteloader"; | 26 | protected static final String PKG_LITELOADER = "com.mumfrey.liteloader"; |
24 | protected static final String PKG_LITELOADER_COMMON = LiteLoaderCoreAPI.PKG_LITELOADER + ".common"; | 27 | protected static final String PKG_LITELOADER_COMMON = LiteLoaderCoreAPI.PKG_LITELOADER + ".common"; |
@@ -144,4 +147,30 @@ public abstract class LiteLoaderCoreAPI implements LiteAPI | @@ -144,4 +147,30 @@ public abstract class LiteLoaderCoreAPI implements LiteAPI | ||
144 | * Get the ObjectFactory | 147 | * Get the ObjectFactory |
145 | */ | 148 | */ |
146 | public abstract ObjectFactory<?, ?> getObjectFactory(); | 149 | public abstract ObjectFactory<?, ?> getObjectFactory(); |
150 | + | ||
151 | + @Override | ||
152 | + public MixinConfigProvider getMixins() | ||
153 | + { | ||
154 | + return this; | ||
155 | + } | ||
156 | + | ||
157 | + @Override | ||
158 | + public CompatibilityLevel getCompatibilityLevel() | ||
159 | + { | ||
160 | + return null; | ||
161 | + } | ||
162 | + | ||
163 | + @Override | ||
164 | + public String[] getMixinConfigs() | ||
165 | + { | ||
166 | + return new String[] { | ||
167 | + "mixins.liteloader.core.json" | ||
168 | + }; | ||
169 | + } | ||
170 | + | ||
171 | + @Override | ||
172 | + public String[] getErrorHandlers() | ||
173 | + { | ||
174 | + return null; | ||
175 | + } | ||
147 | } | 176 | } |
src/main/java/com/mumfrey/liteloader/core/runtime/Methods.java
@@ -16,54 +16,54 @@ public abstract class Methods | @@ -16,54 +16,54 @@ public abstract class Methods | ||
16 | // CHECKSTYLE:OFF | 16 | // CHECKSTYLE:OFF |
17 | 17 | ||
18 | // Client & General | 18 | // Client & General |
19 | - public static final MethodInfo startGame = new MethodInfo(Obf.Minecraft, Obf.startGame, Void.TYPE); | ||
20 | - public static final MethodInfo runGameLoop = new MethodInfo(Obf.Minecraft, Obf.runGameLoop, Void.TYPE); | ||
21 | - public static final MethodInfo runTick = new MethodInfo(Obf.Minecraft, Obf.runTick, Void.TYPE); | ||
22 | - public static final MethodInfo updateFramebufferSize = new MethodInfo(Obf.Minecraft, Obf.updateFramebufferSize, Void.TYPE); | ||
23 | - public static final MethodInfo framebufferRender = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRender, Void.TYPE, Integer.TYPE, Integer.TYPE); | ||
24 | - public static final MethodInfo framebufferRenderExt = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRenderExt, Void.TYPE, Integer.TYPE, Integer.TYPE, Boolean.TYPE); | ||
25 | - public static final MethodInfo bindFramebufferTexture = new MethodInfo(Obf.FrameBuffer, Obf.bindFramebufferTexture, Void.TYPE); | ||
26 | - public static final MethodInfo sendChatMessage = new MethodInfo(Obf.EntityPlayerSP, Obf.sendChatMessage, Void.TYPE, String.class); | ||
27 | - public static final MethodInfo renderWorld = new MethodInfo(Obf.EntityRenderer, Obf.renderWorld, Void.TYPE, Float.TYPE, Long.TYPE); | ||
28 | - public static final MethodInfo renderWorldPass = new MethodInfo(Obf.EntityRenderer, Obf.renderWorldPass, Void.TYPE, Integer.TYPE, Float.TYPE, Long.TYPE); | ||
29 | - public static final MethodInfo updateCameraAndRender = new MethodInfo(Obf.EntityRenderer, Obf.updateCameraAndRender, Void.TYPE, Float.TYPE); | ||
30 | - public static final MethodInfo renderGameOverlay = new MethodInfo(Obf.GuiIngame, Obf.renderGameOverlay, Void.TYPE, Float.TYPE); | ||
31 | - public static final MethodInfo drawChat = new MethodInfo(Obf.GuiNewChat, Obf.drawChat, Void.TYPE, Integer.TYPE); | ||
32 | - public static final MethodInfo integratedServerCtor = new MethodInfo(Obf.IntegratedServer, Obf.constructor, Void.TYPE, Obf.Minecraft, String.class, String.class, Obf.WorldSettings); | ||
33 | - public static final MethodInfo initPlayerConnection = new MethodInfo(Obf.ServerConfigurationManager, Obf.initializeConnectionToPlayer, Void.TYPE, Obf.NetworkManager, Obf.EntityPlayerMP); | ||
34 | - public static final MethodInfo playerLoggedIn = new MethodInfo(Obf.ServerConfigurationManager, Obf.playerLoggedIn, Void.TYPE, Obf.EntityPlayerMP); | ||
35 | - public static final MethodInfo playerLoggedOut = new MethodInfo(Obf.ServerConfigurationManager, Obf.playerLoggedOut, Void.TYPE, Obf.EntityPlayerMP); | ||
36 | - public static final MethodInfo spawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.spawnPlayer, Obf.EntityPlayerMP, Obf.GameProfile); | ||
37 | - public static final MethodInfo respawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.respawnPlayer, Obf.EntityPlayerMP, Obf.EntityPlayerMP, Integer.TYPE, Boolean.TYPE); | ||
38 | - public static final MethodInfo glClear = new MethodInfo(Obf.GlStateManager, Obf.clear, Void.TYPE, Integer.TYPE); | ||
39 | - public static final MethodInfo getProfile = new MethodInfo(Obf.Session, Obf.getProfile, Obf.GameProfile); | ||
40 | - public static final MethodInfo saveScreenshot = new MethodInfo(Obf.ScreenShotHelper, Obf.saveScreenshot, Obf.IChatComponent, File.class, String.class, Integer.TYPE, Integer.TYPE, Obf.FrameBuffer); | ||
41 | - public static final MethodInfo isFramebufferEnabled = new MethodInfo(Obf.OpenGlHelper, Obf.isFramebufferEnabled, Boolean.TYPE); | ||
42 | - public static final MethodInfo doRenderEntity = new MethodInfo(Obf.RenderManager, Obf.doRenderEntity, Boolean.TYPE, Obf.Entity, Double.TYPE, Double.TYPE, Double.TYPE, Float.TYPE, Float.TYPE, Boolean.TYPE); | ||
43 | - public static final MethodInfo doRender = new MethodInfo(Obf.Render, Obf.doRender, Void.TYPE, Obf.Entity, Double.TYPE, Double.TYPE, Double.TYPE, Float.TYPE, Float.TYPE); | ||
44 | - public static final MethodInfo doRenderShadowAndFire = new MethodInfo(Obf.Render, Obf.doRenderShadowAndFire, Void.TYPE, Obf.Entity, Double.TYPE, Double.TYPE, Double.TYPE, Float.TYPE, Float.TYPE); | ||
45 | - public static final MethodInfo realmsPlay = new MethodInfo(Obf.RealmsMainScreen, "play", Void.TYPE, Long.TYPE); | ||
46 | - public static final MethodInfo realmsStopFetcher = new MethodInfo(Obf.RealmsMainScreen, "stopRealmsFetcherAndPinger", Void.TYPE); | ||
47 | - public static final MethodInfo onBlockClicked = new MethodInfo(Obf.ItemInWorldManager, Obf.onBlockClicked, Void.TYPE, Obf.BlockPos, Obf.EnumFacing); | ||
48 | - public static final MethodInfo activateBlockOrUseItem = new MethodInfo(Obf.ItemInWorldManager, Obf.activateBlockOrUseItem, Boolean.TYPE, Obf.EntityPlayer, Obf.World, Obf.ItemStack, Obf.BlockPos, Obf.EnumFacing, Float.TYPE, Float.TYPE, Float.TYPE); | ||
49 | - public static final MethodInfo processBlockPlacement = new MethodInfo(Obf.NetHandlerPlayServer, Obf.processPlayerBlockPlacement, Void.TYPE, Packets.C08PacketPlayerBlockPlacement); | ||
50 | - public static final MethodInfo handleAnimation = new MethodInfo(Obf.NetHandlerPlayServer, Obf.handleAnimation, Void.TYPE, Packets.C0APacketAnimation); | ||
51 | - public static final MethodInfo processPlayerDigging = new MethodInfo(Obf.NetHandlerPlayServer, Obf.processPlayerDigging, Void.TYPE, Packets.C07PacketPlayerDigging); | ||
52 | - public static final MethodInfo serverJobs = new MethodInfo(Obf.MinecraftServer, Obf.updateTimeLightAndEntities, Void.TYPE); | ||
53 | - public static final MethodInfo checkThreadAndEnqueue = new MethodInfo(Obf.PacketThreadUtil, Obf.checkThreadAndEnqueue); | ||
54 | - public static final MethodInfo processPlayer = new MethodInfo(Obf.NetHandlerPlayServer, Obf.processPlayer, Void.TYPE, Packets.C03PacketPlayer); | ||
55 | - public static final MethodInfo renderSky = new MethodInfo(Obf.RenderGlobal, Obf.renderSky, Void.TYPE, Float.TYPE, Integer.TYPE); | ||
56 | - public static final MethodInfo renderCloudsCheck = new MethodInfo(Obf.EntityRenderer, Obf.renderCloudsCheck, Void.TYPE, Obf.RenderGlobal, Float.TYPE, Integer.TYPE); | ||
57 | - public static final MethodInfo setupFog = new MethodInfo(Obf.EntityRenderer, Obf.setupFog, Void.TYPE, Integer.TYPE, Float.TYPE); | 19 | + @Deprecated public static final MethodInfo startGame = new MethodInfo(Obf.Minecraft, Obf.startGame, Void.TYPE); |
20 | + @Deprecated public static final MethodInfo runGameLoop = new MethodInfo(Obf.Minecraft, Obf.runGameLoop, Void.TYPE); | ||
21 | + @Deprecated public static final MethodInfo runTick = new MethodInfo(Obf.Minecraft, Obf.runTick, Void.TYPE); | ||
22 | + @Deprecated public static final MethodInfo updateFramebufferSize = new MethodInfo(Obf.Minecraft, Obf.updateFramebufferSize, Void.TYPE); | ||
23 | + @Deprecated public static final MethodInfo framebufferRender = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRender, Void.TYPE, Integer.TYPE, Integer.TYPE); | ||
24 | + @Deprecated public static final MethodInfo framebufferRenderExt = new MethodInfo(Obf.FrameBuffer, Obf.framebufferRenderExt, Void.TYPE, Integer.TYPE, Integer.TYPE, Boolean.TYPE); | ||
25 | + @Deprecated public static final MethodInfo bindFramebufferTexture = new MethodInfo(Obf.FrameBuffer, Obf.bindFramebufferTexture, Void.TYPE); | ||
26 | + @Deprecated public static final MethodInfo sendChatMessage = new MethodInfo(Obf.EntityPlayerSP, Obf.sendChatMessage, Void.TYPE, String.class); | ||
27 | + @Deprecated public static final MethodInfo renderWorld = new MethodInfo(Obf.EntityRenderer, Obf.renderWorld, Void.TYPE, Float.TYPE, Long.TYPE); | ||
28 | + @Deprecated public static final MethodInfo renderWorldPass = new MethodInfo(Obf.EntityRenderer, Obf.renderWorldPass, Void.TYPE, Integer.TYPE, Float.TYPE, Long.TYPE); | ||
29 | + @Deprecated public static final MethodInfo updateCameraAndRender = new MethodInfo(Obf.EntityRenderer, Obf.updateCameraAndRender, Void.TYPE, Float.TYPE); | ||
30 | + @Deprecated public static final MethodInfo renderGameOverlay = new MethodInfo(Obf.GuiIngame, Obf.renderGameOverlay, Void.TYPE, Float.TYPE); | ||
31 | + @Deprecated public static final MethodInfo drawChat = new MethodInfo(Obf.GuiNewChat, Obf.drawChat, Void.TYPE, Integer.TYPE); | ||
32 | + @Deprecated public static final MethodInfo integratedServerCtor = new MethodInfo(Obf.IntegratedServer, Obf.constructor, Void.TYPE, Obf.Minecraft, String.class, String.class, Obf.WorldSettings); | ||
33 | + @Deprecated public static final MethodInfo initPlayerConnection = new MethodInfo(Obf.ServerConfigurationManager, Obf.initializeConnectionToPlayer, Void.TYPE, Obf.NetworkManager, Obf.EntityPlayerMP); | ||
34 | + @Deprecated public static final MethodInfo playerLoggedIn = new MethodInfo(Obf.ServerConfigurationManager, Obf.playerLoggedIn, Void.TYPE, Obf.EntityPlayerMP); | ||
35 | + @Deprecated public static final MethodInfo playerLoggedOut = new MethodInfo(Obf.ServerConfigurationManager, Obf.playerLoggedOut, Void.TYPE, Obf.EntityPlayerMP); | ||
36 | + @Deprecated public static final MethodInfo spawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.spawnPlayer, Obf.EntityPlayerMP, Obf.GameProfile); | ||
37 | + @Deprecated public static final MethodInfo respawnPlayer = new MethodInfo(Obf.ServerConfigurationManager, Obf.respawnPlayer, Obf.EntityPlayerMP, Obf.EntityPlayerMP, Integer.TYPE, Boolean.TYPE); | ||
38 | + @Deprecated public static final MethodInfo glClear = new MethodInfo(Obf.GlStateManager, Obf.clear, Void.TYPE, Integer.TYPE); | ||
39 | + @Deprecated public static final MethodInfo getProfile = new MethodInfo(Obf.Session, Obf.getProfile, Obf.GameProfile); | ||
40 | + @Deprecated public static final MethodInfo saveScreenshot = new MethodInfo(Obf.ScreenShotHelper, Obf.saveScreenshot, Obf.IChatComponent, File.class, String.class, Integer.TYPE, Integer.TYPE, Obf.FrameBuffer); | ||
41 | + @Deprecated public static final MethodInfo isFramebufferEnabled = new MethodInfo(Obf.OpenGlHelper, Obf.isFramebufferEnabled, Boolean.TYPE); | ||
42 | + @Deprecated public static final MethodInfo doRenderEntity = new MethodInfo(Obf.RenderManager, Obf.doRenderEntity, Boolean.TYPE, Obf.Entity, Double.TYPE, Double.TYPE, Double.TYPE, Float.TYPE, Float.TYPE, Boolean.TYPE); | ||
43 | + @Deprecated public static final MethodInfo doRender = new MethodInfo(Obf.Render, Obf.doRender, Void.TYPE, Obf.Entity, Double.TYPE, Double.TYPE, Double.TYPE, Float.TYPE, Float.TYPE); | ||
44 | + @Deprecated public static final MethodInfo doRenderShadowAndFire = new MethodInfo(Obf.Render, Obf.doRenderShadowAndFire, Void.TYPE, Obf.Entity, Double.TYPE, Double.TYPE, Double.TYPE, Float.TYPE, Float.TYPE); | ||
45 | + @Deprecated public static final MethodInfo realmsPlay = new MethodInfo(Obf.RealmsMainScreen, "play", Void.TYPE, Long.TYPE); | ||
46 | + @Deprecated public static final MethodInfo realmsStopFetcher = new MethodInfo(Obf.RealmsMainScreen, "stopRealmsFetcherAndPinger", Void.TYPE); | ||
47 | + @Deprecated public static final MethodInfo onBlockClicked = new MethodInfo(Obf.ItemInWorldManager, Obf.onBlockClicked, Void.TYPE, Obf.BlockPos, Obf.EnumFacing); | ||
48 | + @Deprecated public static final MethodInfo activateBlockOrUseItem = new MethodInfo(Obf.ItemInWorldManager, Obf.activateBlockOrUseItem, Boolean.TYPE, Obf.EntityPlayer, Obf.World, Obf.ItemStack, Obf.BlockPos, Obf.EnumFacing, Float.TYPE, Float.TYPE, Float.TYPE); | ||
49 | + @Deprecated public static final MethodInfo processBlockPlacement = new MethodInfo(Obf.NetHandlerPlayServer, Obf.processPlayerBlockPlacement, Void.TYPE, Packets.C08PacketPlayerBlockPlacement); | ||
50 | + @Deprecated public static final MethodInfo handleAnimation = new MethodInfo(Obf.NetHandlerPlayServer, Obf.handleAnimation, Void.TYPE, Packets.C0APacketAnimation); | ||
51 | + @Deprecated public static final MethodInfo processPlayerDigging = new MethodInfo(Obf.NetHandlerPlayServer, Obf.processPlayerDigging, Void.TYPE, Packets.C07PacketPlayerDigging); | ||
52 | + @Deprecated public static final MethodInfo serverJobs = new MethodInfo(Obf.MinecraftServer, Obf.updateTimeLightAndEntities, Void.TYPE); | ||
53 | + @Deprecated public static final MethodInfo checkThreadAndEnqueue = new MethodInfo(Obf.PacketThreadUtil, Obf.checkThreadAndEnqueue); | ||
54 | + @Deprecated public static final MethodInfo processPlayer = new MethodInfo(Obf.NetHandlerPlayServer, Obf.processPlayer, Void.TYPE, Packets.C03PacketPlayer); | ||
55 | + @Deprecated public static final MethodInfo renderSky = new MethodInfo(Obf.RenderGlobal, Obf.renderSky, Void.TYPE, Float.TYPE, Integer.TYPE); | ||
56 | + @Deprecated public static final MethodInfo renderCloudsCheck = new MethodInfo(Obf.EntityRenderer, Obf.renderCloudsCheck, Void.TYPE, Obf.RenderGlobal, Float.TYPE, Integer.TYPE); | ||
57 | + @Deprecated public static final MethodInfo setupFog = new MethodInfo(Obf.EntityRenderer, Obf.setupFog, Void.TYPE, Integer.TYPE, Float.TYPE); | ||
58 | 58 | ||
59 | // Profiler | 59 | // Profiler |
60 | - public static final MethodInfo startSection = new MethodInfo(Obf.Profiler, Obf.startSection, Void.TYPE, String.class); | ||
61 | - public static final MethodInfo endSection = new MethodInfo(Obf.Profiler, Obf.endSection, Void.TYPE); | ||
62 | - public static final MethodInfo endStartSection = new MethodInfo(Obf.Profiler, Obf.endStartSection, Void.TYPE, String.class); | 60 | + @Deprecated public static final MethodInfo startSection = new MethodInfo(Obf.Profiler, Obf.startSection, Void.TYPE, String.class); |
61 | + @Deprecated public static final MethodInfo endSection = new MethodInfo(Obf.Profiler, Obf.endSection, Void.TYPE); | ||
62 | + @Deprecated public static final MethodInfo endStartSection = new MethodInfo(Obf.Profiler, Obf.endStartSection, Void.TYPE, String.class); | ||
63 | 63 | ||
64 | // Dedicated Server | 64 | // Dedicated Server |
65 | - public static final MethodInfo startServer = new MethodInfo(Obf.DedicatedServer, Obf.startServer, Boolean.TYPE); | ||
66 | - public static final MethodInfo startServerThread = new MethodInfo(Obf.MinecraftServer, Obf.startServerThread, Void.TYPE); | 65 | + @Deprecated public static final MethodInfo startServer = new MethodInfo(Obf.DedicatedServer, Obf.startServer, Boolean.TYPE); |
66 | + @Deprecated public static final MethodInfo startServerThread = new MethodInfo(Obf.MinecraftServer, Obf.startServerThread, Void.TYPE); | ||
67 | 67 | ||
68 | private Methods() {} | 68 | private Methods() {} |
69 | 69 |
src/main/java/com/mumfrey/liteloader/core/runtime/Obf.java
@@ -17,8 +17,6 @@ public class Obf | @@ -17,8 +17,6 @@ public class Obf | ||
17 | { | 17 | { |
18 | // Non-obfuscated references, here for convenience | 18 | // Non-obfuscated references, here for convenience |
19 | // ----------------------------------------------------------------------------------------- | 19 | // ----------------------------------------------------------------------------------------- |
20 | - public static final Obf CallbackProxyClient = new Obf("com.mumfrey.liteloader.client.CallbackProxyClient" ); | ||
21 | - public static final Obf CallbackProxyServer = new Obf("com.mumfrey.liteloader.server.CallbackProxyServer" ); | ||
22 | public static final Obf EventProxy = new Obf("com.mumfrey.liteloader.core.event.EventProxy" ); | 20 | public static final Obf EventProxy = new Obf("com.mumfrey.liteloader.core.event.EventProxy" ); |
23 | public static final Obf HandlerList = new Obf("com.mumfrey.liteloader.core.event.HandlerList" ); | 21 | public static final Obf HandlerList = new Obf("com.mumfrey.liteloader.core.event.HandlerList" ); |
24 | public static final Obf BakedHandlerList = new Obf("com.mumfrey.liteloader.core.event.HandlerList$BakedHandlerList" ); | 22 | public static final Obf BakedHandlerList = new Obf("com.mumfrey.liteloader.core.event.HandlerList$BakedHandlerList" ); |
@@ -41,121 +39,128 @@ public class Obf | @@ -41,121 +39,128 @@ public class Obf | ||
41 | public static final Obf IGuiTextField = new Obf("com.mumfrey.liteloader.client.overlays.IGuiTextField" ); | 39 | public static final Obf IGuiTextField = new Obf("com.mumfrey.liteloader.client.overlays.IGuiTextField" ); |
42 | public static final Obf IEntityRenderer = new Obf("com.mumfrey.liteloader.client.overlays.IEntityRenderer" ); | 40 | public static final Obf IEntityRenderer = new Obf("com.mumfrey.liteloader.client.overlays.IEntityRenderer" ); |
43 | public static final Obf ISoundHandler = new Obf("com.mumfrey.liteloader.client.overlays.ISoundHandler" ); | 41 | public static final Obf ISoundHandler = new Obf("com.mumfrey.liteloader.client.overlays.ISoundHandler" ); |
42 | + | ||
43 | + // CHECKSTYLE:OFF | ||
44 | 44 | ||
45 | // Classes | 45 | // Classes |
46 | // ----------------------------------------------------------------------------------------- | 46 | // ----------------------------------------------------------------------------------------- |
47 | public static final Obf Minecraft = new Obf("net.minecraft.client.Minecraft", "bsu" ); | 47 | public static final Obf Minecraft = new Obf("net.minecraft.client.Minecraft", "bsu" ); |
48 | public static final Obf EntityRenderer = new Obf("net.minecraft.client.renderer.EntityRenderer", "cji" ); | 48 | public static final Obf EntityRenderer = new Obf("net.minecraft.client.renderer.EntityRenderer", "cji" ); |
49 | - public static final Obf GuiIngame = new Obf("net.minecraft.client.gui.GuiIngame", "btz" ); | ||
50 | - public static final Obf Profiler = new Obf("net.minecraft.profiler.Profiler", "uw" ); | 49 | + public static final Obf Blocks = new Obf("net.minecraft.init.Blocks", "aty" ); |
51 | public static final Obf CrashReport$6 = new Obf("net.minecraft.crash.CrashReport$6", "h" ); | 50 | public static final Obf CrashReport$6 = new Obf("net.minecraft.crash.CrashReport$6", "h" ); |
52 | public static final Obf INetHandler = new Obf("net.minecraft.network.INetHandler", "hg" ); | 51 | public static final Obf INetHandler = new Obf("net.minecraft.network.INetHandler", "hg" ); |
53 | - public static final Obf IntegratedServer = new Obf("net.minecraft.server.integrated.IntegratedServer", "cyk" ); | ||
54 | - public static final Obf WorldSettings = new Obf("net.minecraft.world.WorldSettings", "arb" ); | ||
55 | - public static final Obf ServerConfigurationManager = new Obf("net.minecraft.server.management.ServerConfigurationManager", "sn" ); | ||
56 | - public static final Obf EntityPlayerMP = new Obf("net.minecraft.entity.player.EntityPlayerMP", "qw" ); | ||
57 | - public static final Obf NetworkManager = new Obf("net.minecraft.network.NetworkManager", "gr" ); | ||
58 | - public static final Obf DedicatedServer = new Obf("net.minecraft.server.dedicated.DedicatedServer", "po" ); | ||
59 | - public static final Obf EntityPlayerSP = new Obf("net.minecraft.client.entity.EntityPlayerSP", "cio" ); | ||
60 | - public static final Obf Blocks = new Obf("net.minecraft.init.Blocks", "aty" ); | ||
61 | public static final Obf Items = new Obf("net.minecraft.init.Items", "amk" ); | 52 | public static final Obf Items = new Obf("net.minecraft.init.Items", "amk" ); |
62 | - public static final Obf FrameBuffer = new Obf("net.minecraft.client.shader.Framebuffer", "ckw" ); | ||
63 | - public static final Obf GuiNewChat = new Obf("net.minecraft.client.gui.GuiNewChat", "buh" ); | ||
64 | - public static final Obf GlStateManager = new Obf("net.minecraft.client.renderer.GlStateManager", "cjm" ); | ||
65 | - public static final Obf Session = new Obf("net.minecraft.util.Session", "btw" ); | ||
66 | - public static final Obf IChatComponent = new Obf("net.minecraft.util.IChatComponent", "ho" ); | ||
67 | - public static final Obf ScreenShotHelper = new Obf("net.minecraft.util.ScreenShotHelper", "btt" ); | ||
68 | - public static final Obf OpenGlHelper = new Obf("net.minecraft.client.renderer.OpenGlHelper", "dax" ); | ||
69 | - public static final Obf Entity = new Obf("net.minecraft.entity.Entity", "wv" ); | ||
70 | - public static final Obf RenderManager = new Obf("net.minecraft.client.renderer.entity.RenderManager", "cpt" ); | ||
71 | - public static final Obf Render = new Obf("net.minecraft.client.renderer.entity.Render", "cpu" ); | ||
72 | - public static final Obf GuiTextField = new Obf("net.minecraft.client.gui.GuiTextField", "bul" ); | ||
73 | - public static final Obf SoundHandler = new Obf("net.minecraft.client.audio.SoundHandler", "czh" ); | ||
74 | - public static final Obf BlockPos = new Obf("net.minecraft.util.BlockPos", "dt" ); | ||
75 | - public static final Obf EnumFacing = new Obf("net.minecraft.util.EnumFacing", "ej" ); | ||
76 | - public static final Obf ItemInWorldManager = new Obf("net.minecraft.server.management.ItemInWorldManager", "qx" ); | ||
77 | - public static final Obf NetHandlerPlayServer = new Obf("net.minecraft.network.NetHandlerPlayServer", "rj" ); | ||
78 | - public static final Obf EntityPlayer = new Obf("net.minecraft.entity.player.EntityPlayer", "ahd" ); | ||
79 | - public static final Obf World = new Obf("net.minecraft.world.World", "aqu" ); | ||
80 | - public static final Obf ItemStack = new Obf("net.minecraft.item.ItemStack", "amj" ); | ||
81 | - public static final Obf PacketThreadUtil = new Obf("net.minecraft.network.PacketThreadUtil", "ig" ); | ||
82 | - public static final Obf RenderGlobal = new Obf("net.minecraft.client.renderer.RenderGlobal", "ckn" ); | ||
83 | 53 | ||
84 | // Fields | 54 | // Fields |
85 | // ----------------------------------------------------------------------------------------- | 55 | // ----------------------------------------------------------------------------------------- |
86 | - public static final Obf minecraftProfiler = new Obf("field_71424_I", "y" ); | ||
87 | - public static final Obf entityRenderMap = new Obf("field_78729_o", "k" ); | ||
88 | - public static final Obf reloadListeners = new Obf("field_110546_b", "d" ); | ||
89 | - public static final Obf networkManager = new Obf("field_147393_d", "d" ); | ||
90 | - public static final Obf registryObjects = new Obf("field_82596_a", "c" ); | ||
91 | - public static final Obf underlyingIntegerMap = new Obf("field_148759_a", "a" ); | ||
92 | - public static final Obf identityMap = new Obf("field_148749_a", "a" ); | ||
93 | - public static final Obf objectList = new Obf("field_148748_b", "b" ); | ||
94 | - public static final Obf mapSpecialRenderers = new Obf("field_147559_m", "m" ); | ||
95 | public static final Obf tileEntityNameToClassMap = new Obf("field_145855_i", "f" ); | 56 | public static final Obf tileEntityNameToClassMap = new Obf("field_145855_i", "f" ); |
96 | public static final Obf tileEntityClassToNameMap = new Obf("field_145853_j", "g" ); | 57 | public static final Obf tileEntityClassToNameMap = new Obf("field_145853_j", "g" ); |
97 | - public static final Obf timer = new Obf("field_71428_T", "U" ); | ||
98 | - public static final Obf mcProfiler = new Obf("field_71424_I", "y" ); | ||
99 | - public static final Obf running = new Obf("field_71425_J", "z" ); | ||
100 | - public static final Obf defaultResourcePacks = new Obf("field_110449_ao", "aw" ); | ||
101 | - public static final Obf serverName = new Obf("field_71475_ae", "am" ); | ||
102 | - public static final Obf serverPort = new Obf("field_71477_af", "an" ); | ||
103 | - public static final Obf shaderResourceLocations = new Obf("field_147712_ad", "ab" ); | ||
104 | - public static final Obf shaderIndex = new Obf("field_147713_ae", "ac" ); | ||
105 | - public static final Obf useShader = new Obf("field_175083_ad", "ad" ); | ||
106 | - public static final Obf viewDistance = new Obf("field_149528_b", "b" ); | ||
107 | - public static final Obf entityPosY = new Obf("field_70163_u", "t" ); | ||
108 | - public static final Obf chatComponent = new Obf("field_148919_a", "a" ); | ||
109 | 58 | ||
110 | // Methods | 59 | // Methods |
111 | // ----------------------------------------------------------------------------------------- | 60 | // ----------------------------------------------------------------------------------------- |
112 | - public static final Obf processPacket = new Obf("func_148833_a", "a" ); | ||
113 | - public static final Obf runGameLoop = new Obf("func_71411_J", "as" ); | ||
114 | - public static final Obf runTick = new Obf("func_71407_l", "r" ); | ||
115 | - public static final Obf updateCameraAndRender = new Obf("func_78480_b", "b" ); | ||
116 | - public static final Obf renderWorld = new Obf("func_78471_a", "a" ); | ||
117 | - public static final Obf renderGameOverlay = new Obf("func_175180_a", "a" ); | 61 | + public static final Obf startGame = new Obf("func_71384_a", "aj" ); |
118 | public static final Obf startSection = new Obf("func_76320_a", "a" ); | 62 | public static final Obf startSection = new Obf("func_76320_a", "a" ); |
119 | public static final Obf endSection = new Obf("func_76319_b", "b" ); | 63 | public static final Obf endSection = new Obf("func_76319_b", "b" ); |
120 | public static final Obf endStartSection = new Obf("func_76318_c", "c" ); | 64 | public static final Obf endStartSection = new Obf("func_76318_c", "c" ); |
121 | - public static final Obf spawnPlayer = new Obf("func_148545_a", "f" ); | ||
122 | - public static final Obf respawnPlayer = new Obf("func_72368_a", "a" ); | ||
123 | - public static final Obf initializeConnectionToPlayer = new Obf("func_72355_a", "a" ); | ||
124 | - public static final Obf playerLoggedIn = new Obf("func_72377_c", "c" ); | ||
125 | - public static final Obf playerLoggedOut = new Obf("func_72367_e", "e" ); | ||
126 | - public static final Obf startGame = new Obf("func_71384_a", "aj" ); | ||
127 | - public static final Obf startServer = new Obf("func_71197_b", "i" ); | ||
128 | - public static final Obf startServerThread = new Obf("func_71256_s", "B" ); | ||
129 | - public static final Obf sendChatMessage = new Obf("func_71165_d", "e" ); | ||
130 | - public static final Obf updateFramebufferSize = new Obf("func_147119_ah", "av" ); | ||
131 | - public static final Obf framebufferRender = new Obf("func_147615_c", "c" ); | ||
132 | - public static final Obf framebufferRenderExt = new Obf("func_178038_a", "a" ); | ||
133 | - public static final Obf bindFramebufferTexture = new Obf("func_147612_c", "c" ); | ||
134 | - public static final Obf drawChat = new Obf("func_146230_a", "a" ); | ||
135 | - public static final Obf clear = new Obf("func_179086_m", "m" ); | ||
136 | - public static final Obf renderWorldPass = new Obf("func_175068_a", "a" ); | ||
137 | - public static final Obf getProfile = new Obf("func_148256_e", "a" ); | ||
138 | - public static final Obf saveScreenshot = new Obf("func_148260_a", "a" ); | ||
139 | - public static final Obf isFramebufferEnabled = new Obf("func_148822_b", "i" ); | ||
140 | - public static final Obf doRenderEntity = new Obf("func_147939_a", "a" ); | ||
141 | - public static final Obf doRender = new Obf("func_76986_a", "a" ); | ||
142 | - public static final Obf doRenderShadowAndFire = new Obf("func_76979_b", "b" ); | ||
143 | - public static final Obf resize = new Obf("func_71370_a", "a" ); | ||
144 | - public static final Obf loadShader = new Obf("func_175069_a", "a" ); | ||
145 | - public static final Obf getFOVModifier = new Obf("func_78481_a", "a" ); | ||
146 | - public static final Obf setupCameraTransform = new Obf("func_78479_a", "a" ); | ||
147 | - public static final Obf loadSoundResource = new Obf("func_147693_a", "a" ); | ||
148 | - public static final Obf onBlockClicked = new Obf("func_180784_a", "a" ); | ||
149 | - public static final Obf activateBlockOrUseItem = new Obf("func_180236_a", "a" ); | ||
150 | - public static final Obf processPlayerBlockPlacement = new Obf("func_147346_a", "a" ); | ||
151 | - public static final Obf handleAnimation = new Obf("func_175087_a", "a" ); | ||
152 | - public static final Obf processPlayerDigging = new Obf("func_147345_a", "a" ); | ||
153 | - public static final Obf updateTimeLightAndEntities = new Obf("func_71190_q", "z" ); | ||
154 | - public static final Obf checkThreadAndEnqueue = new Obf("func_180031_a", "a" ); | ||
155 | - public static final Obf processPlayer = new Obf("func_147347_a", "a" ); | ||
156 | - public static final Obf renderSky = new Obf("func_174976_a", "a" ); | ||
157 | - public static final Obf renderCloudsCheck = new Obf("func_180437_a", "a" ); | ||
158 | - public static final Obf setupFog = new Obf("func_78468_a", "a" ); | 65 | + public static final Obf processPacket = new Obf("func_148833_a", "a" ); |
66 | + | ||
67 | + // Legacy | ||
68 | + // ----------------------------------------------------------------------------------------- | ||
69 | + @Deprecated public static final Obf GuiIngame = new Obf("net.minecraft.client.gui.GuiIngame", "btz" ); | ||
70 | + @Deprecated public static final Obf Profiler = new Obf("net.minecraft.profiler.Profiler", "uw" ); | ||
71 | + @Deprecated public static final Obf IntegratedServer = new Obf("net.minecraft.server.integrated.IntegratedServer", "cyk" ); | ||
72 | + @Deprecated public static final Obf WorldSettings = new Obf("net.minecraft.world.WorldSettings", "arb" ); | ||
73 | + @Deprecated public static final Obf ServerConfigurationManager = new Obf("net.minecraft.server.management.ServerConfigurationManager", "sn" ); | ||
74 | + @Deprecated public static final Obf EntityPlayerMP = new Obf("net.minecraft.entity.player.EntityPlayerMP", "qw" ); | ||
75 | + @Deprecated public static final Obf NetworkManager = new Obf("net.minecraft.network.NetworkManager", "gr" ); | ||
76 | + @Deprecated public static final Obf DedicatedServer = new Obf("net.minecraft.server.dedicated.DedicatedServer", "po" ); | ||
77 | + @Deprecated public static final Obf EntityPlayerSP = new Obf("net.minecraft.client.entity.EntityPlayerSP", "cio" ); | ||
78 | + @Deprecated public static final Obf FrameBuffer = new Obf("net.minecraft.client.shader.Framebuffer", "ckw" ); | ||
79 | + @Deprecated public static final Obf GuiNewChat = new Obf("net.minecraft.client.gui.GuiNewChat", "buh" ); | ||
80 | + @Deprecated public static final Obf GlStateManager = new Obf("net.minecraft.client.renderer.GlStateManager", "cjm" ); | ||
81 | + @Deprecated public static final Obf Session = new Obf("net.minecraft.util.Session", "btw" ); | ||
82 | + @Deprecated public static final Obf IChatComponent = new Obf("net.minecraft.util.IChatComponent", "ho" ); | ||
83 | + @Deprecated public static final Obf ScreenShotHelper = new Obf("net.minecraft.util.ScreenShotHelper", "btt" ); | ||
84 | + @Deprecated public static final Obf OpenGlHelper = new Obf("net.minecraft.client.renderer.OpenGlHelper", "dax" ); | ||
85 | + @Deprecated public static final Obf Entity = new Obf("net.minecraft.entity.Entity", "wv" ); | ||
86 | + @Deprecated public static final Obf RenderManager = new Obf("net.minecraft.client.renderer.entity.RenderManager", "cpt" ); | ||
87 | + @Deprecated public static final Obf Render = new Obf("net.minecraft.client.renderer.entity.Render", "cpu" ); | ||
88 | + @Deprecated public static final Obf GuiTextField = new Obf("net.minecraft.client.gui.GuiTextField", "bul" ); | ||
89 | + @Deprecated public static final Obf SoundHandler = new Obf("net.minecraft.client.audio.SoundHandler", "czh" ); | ||
90 | + @Deprecated public static final Obf BlockPos = new Obf("net.minecraft.util.BlockPos", "dt" ); | ||
91 | + @Deprecated public static final Obf EnumFacing = new Obf("net.minecraft.util.EnumFacing", "ej" ); | ||
92 | + @Deprecated public static final Obf ItemInWorldManager = new Obf("net.minecraft.server.management.ItemInWorldManager", "qx" ); | ||
93 | + @Deprecated public static final Obf NetHandlerPlayServer = new Obf("net.minecraft.network.NetHandlerPlayServer", "rj" ); | ||
94 | + @Deprecated public static final Obf EntityPlayer = new Obf("net.minecraft.entity.player.EntityPlayer", "ahd" ); | ||
95 | + @Deprecated public static final Obf World = new Obf("net.minecraft.world.World", "aqu" ); | ||
96 | + @Deprecated public static final Obf ItemStack = new Obf("net.minecraft.item.ItemStack", "amj" ); | ||
97 | + @Deprecated public static final Obf PacketThreadUtil = new Obf("net.minecraft.network.PacketThreadUtil", "ig" ); | ||
98 | + @Deprecated public static final Obf RenderGlobal = new Obf("net.minecraft.client.renderer.RenderGlobal", "ckn" ); | ||
99 | + @Deprecated public static final Obf minecraftProfiler = new Obf("field_71424_I", "y" ); | ||
100 | + @Deprecated public static final Obf entityRenderMap = new Obf("field_78729_o", "k" ); | ||
101 | + @Deprecated public static final Obf reloadListeners = new Obf("field_110546_b", "d" ); | ||
102 | + @Deprecated public static final Obf networkManager = new Obf("field_147393_d", "d" ); | ||
103 | + @Deprecated public static final Obf registryObjects = new Obf("field_82596_a", "c" ); | ||
104 | + @Deprecated public static final Obf underlyingIntegerMap = new Obf("field_148759_a", "a" ); | ||
105 | + @Deprecated public static final Obf identityMap = new Obf("field_148749_a", "a" ); | ||
106 | + @Deprecated public static final Obf objectList = new Obf("field_148748_b", "b" ); | ||
107 | + @Deprecated public static final Obf mapSpecialRenderers = new Obf("field_147559_m", "m" ); | ||
108 | + @Deprecated public static final Obf timer = new Obf("field_71428_T", "U" ); | ||
109 | + @Deprecated public static final Obf mcProfiler = new Obf("field_71424_I", "y" ); | ||
110 | + @Deprecated public static final Obf running = new Obf("field_71425_J", "z" ); | ||
111 | + @Deprecated public static final Obf defaultResourcePacks = new Obf("field_110449_ao", "aw" ); | ||
112 | + @Deprecated public static final Obf serverName = new Obf("field_71475_ae", "am" ); | ||
113 | + @Deprecated public static final Obf serverPort = new Obf("field_71477_af", "an" ); | ||
114 | + @Deprecated public static final Obf shaderResourceLocations = new Obf("field_147712_ad", "ab" ); | ||
115 | + @Deprecated public static final Obf shaderIndex = new Obf("field_147713_ae", "ac" ); | ||
116 | + @Deprecated public static final Obf useShader = new Obf("field_175083_ad", "ad" ); | ||
117 | + @Deprecated public static final Obf viewDistance = new Obf("field_149528_b", "b" ); | ||
118 | + @Deprecated public static final Obf entityPosY = new Obf("field_70163_u", "t" ); | ||
119 | + @Deprecated public static final Obf chatComponent = new Obf("field_148919_a", "a" ); | ||
120 | + @Deprecated public static final Obf runGameLoop = new Obf("func_71411_J", "as" ); | ||
121 | + @Deprecated public static final Obf runTick = new Obf("func_71407_l", "r" ); | ||
122 | + @Deprecated public static final Obf updateCameraAndRender = new Obf("func_78480_b", "b" ); | ||
123 | + @Deprecated public static final Obf renderWorld = new Obf("func_78471_a", "a" ); | ||
124 | + @Deprecated public static final Obf renderGameOverlay = new Obf("func_175180_a", "a" ); | ||
125 | + @Deprecated public static final Obf spawnPlayer = new Obf("func_148545_a", "f" ); | ||
126 | + @Deprecated public static final Obf respawnPlayer = new Obf("func_72368_a", "a" ); | ||
127 | + @Deprecated public static final Obf initializeConnectionToPlayer = new Obf("func_72355_a", "a" ); | ||
128 | + @Deprecated public static final Obf playerLoggedIn = new Obf("func_72377_c", "c" ); | ||
129 | + @Deprecated public static final Obf playerLoggedOut = new Obf("func_72367_e", "e" ); | ||
130 | + @Deprecated public static final Obf startServer = new Obf("func_71197_b", "i" ); | ||
131 | + @Deprecated public static final Obf startServerThread = new Obf("func_71256_s", "B" ); | ||
132 | + @Deprecated public static final Obf sendChatMessage = new Obf("func_71165_d", "e" ); | ||
133 | + @Deprecated public static final Obf updateFramebufferSize = new Obf("func_147119_ah", "av" ); | ||
134 | + @Deprecated public static final Obf framebufferRender = new Obf("func_147615_c", "c" ); | ||
135 | + @Deprecated public static final Obf framebufferRenderExt = new Obf("func_178038_a", "a" ); | ||
136 | + @Deprecated public static final Obf bindFramebufferTexture = new Obf("func_147612_c", "c" ); | ||
137 | + @Deprecated public static final Obf drawChat = new Obf("func_146230_a", "a" ); | ||
138 | + @Deprecated public static final Obf clear = new Obf("func_179086_m", "m" ); | ||
139 | + @Deprecated public static final Obf renderWorldPass = new Obf("func_175068_a", "a" ); | ||
140 | + @Deprecated public static final Obf getProfile = new Obf("func_148256_e", "a" ); | ||
141 | + @Deprecated public static final Obf saveScreenshot = new Obf("func_148260_a", "a" ); | ||
142 | + @Deprecated public static final Obf isFramebufferEnabled = new Obf("func_148822_b", "i" ); | ||
143 | + @Deprecated public static final Obf doRenderEntity = new Obf("func_147939_a", "a" ); | ||
144 | + @Deprecated public static final Obf doRender = new Obf("func_76986_a", "a" ); | ||
145 | + @Deprecated public static final Obf doRenderShadowAndFire = new Obf("func_76979_b", "b" ); | ||
146 | + @Deprecated public static final Obf resize = new Obf("func_71370_a", "a" ); | ||
147 | + @Deprecated public static final Obf loadShader = new Obf("func_175069_a", "a" ); | ||
148 | + @Deprecated public static final Obf getFOVModifier = new Obf("func_78481_a", "a" ); | ||
149 | + @Deprecated public static final Obf setupCameraTransform = new Obf("func_78479_a", "a" ); | ||
150 | + @Deprecated public static final Obf loadSoundResource = new Obf("func_147693_a", "a" ); | ||
151 | + @Deprecated public static final Obf onBlockClicked = new Obf("func_180784_a", "a" ); | ||
152 | + @Deprecated public static final Obf activateBlockOrUseItem = new Obf("func_180236_a", "a" ); | ||
153 | + @Deprecated public static final Obf processPlayerBlockPlacement = new Obf("func_147346_a", "a" ); | ||
154 | + @Deprecated public static final Obf handleAnimation = new Obf("func_175087_a", "a" ); | ||
155 | + @Deprecated public static final Obf processPlayerDigging = new Obf("func_147345_a", "a" ); | ||
156 | + @Deprecated public static final Obf updateTimeLightAndEntities = new Obf("func_71190_q", "z" ); | ||
157 | + @Deprecated public static final Obf checkThreadAndEnqueue = new Obf("func_180031_a", "a" ); | ||
158 | + @Deprecated public static final Obf processPlayer = new Obf("func_147347_a", "a" ); | ||
159 | + @Deprecated public static final Obf renderSky = new Obf("func_174976_a", "a" ); | ||
160 | + @Deprecated public static final Obf renderCloudsCheck = new Obf("func_180437_a", "a" ); | ||
161 | + @Deprecated public static final Obf setupFog = new Obf("func_78468_a", "a" ); | ||
162 | + | ||
163 | + // CHECKSTYLE:ON | ||
159 | 164 | ||
160 | public static final int MCP = 0; | 165 | public static final int MCP = 0; |
161 | public static final int SRG = 1; | 166 | public static final int SRG = 1; |
src/main/java/com/mumfrey/liteloader/launch/LiteLoaderTweaker.java
@@ -10,10 +10,14 @@ import java.util.List; | @@ -10,10 +10,14 @@ import java.util.List; | ||
10 | import java.util.Set; | 10 | import java.util.Set; |
11 | import java.util.TreeSet; | 11 | import java.util.TreeSet; |
12 | 12 | ||
13 | +import org.spongepowered.asm.launch.MixinBootstrap; | ||
14 | + | ||
13 | import net.minecraft.launchwrapper.ITweaker; | 15 | import net.minecraft.launchwrapper.ITweaker; |
14 | import net.minecraft.launchwrapper.Launch; | 16 | import net.minecraft.launchwrapper.Launch; |
15 | import net.minecraft.launchwrapper.LaunchClassLoader; | 17 | import net.minecraft.launchwrapper.LaunchClassLoader; |
16 | 18 | ||
19 | +import com.google.common.base.Preconditions; | ||
20 | +import com.mumfrey.liteloader.launch.LoaderEnvironment.EnvironmentType; | ||
17 | import com.mumfrey.liteloader.transformers.event.EventInfo; | 21 | import com.mumfrey.liteloader.transformers.event.EventInfo; |
18 | import com.mumfrey.liteloader.util.SortableValue; | 22 | import com.mumfrey.liteloader.util.SortableValue; |
19 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 23 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
@@ -231,6 +235,8 @@ public class LiteLoaderTweaker implements ITweaker | @@ -231,6 +235,8 @@ public class LiteLoaderTweaker implements ITweaker | ||
231 | @Override | 235 | @Override |
232 | public void acceptOptions(List<String> args, File gameDirectory, File assetsDirectory, String profile) | 236 | public void acceptOptions(List<String> args, File gameDirectory, File assetsDirectory, String profile) |
233 | { | 237 | { |
238 | + LiteLoaderTweaker.injectTweakClass("org.spongepowered.asm.launch.MixinTweaker"); | ||
239 | + | ||
234 | Launch.classLoader.addClassLoaderExclusion("org.apache."); | 240 | Launch.classLoader.addClassLoaderExclusion("org.apache."); |
235 | Launch.classLoader.addClassLoaderExclusion("com.google.common."); | 241 | Launch.classLoader.addClassLoaderExclusion("com.google.common."); |
236 | Launch.classLoader.addClassLoaderExclusion("org.objectweb.asm."); | 242 | Launch.classLoader.addClassLoaderExclusion("org.objectweb.asm."); |
@@ -334,6 +340,8 @@ public class LiteLoaderTweaker implements ITweaker | @@ -334,6 +340,8 @@ public class LiteLoaderTweaker implements ITweaker | ||
334 | 340 | ||
335 | try | 341 | try |
336 | { | 342 | { |
343 | + MixinBootstrap.init(); | ||
344 | + | ||
337 | this.bootstrap.preInit(Launch.classLoader, true, this.env.getModFilterList()); | 345 | this.bootstrap.preInit(Launch.classLoader, true, this.env.getModFilterList()); |
338 | 346 | ||
339 | this.injectDiscoveredTweakClasses(); | 347 | this.injectDiscoveredTweakClasses(); |
@@ -360,6 +368,7 @@ public class LiteLoaderTweaker implements ITweaker | @@ -360,6 +368,7 @@ public class LiteLoaderTweaker implements ITweaker | ||
360 | { | 368 | { |
361 | this.transformerManager.injectDownstreamTransformers(Launch.classLoader); | 369 | this.transformerManager.injectDownstreamTransformers(Launch.classLoader); |
362 | this.bootstrap.preBeginGame(); | 370 | this.bootstrap.preBeginGame(); |
371 | + MixinBootstrap.addProxy(); | ||
363 | StartupState.BEGINGAME.completed(); | 372 | StartupState.BEGINGAME.completed(); |
364 | } | 373 | } |
365 | catch (Throwable th) | 374 | catch (Throwable th) |
@@ -437,17 +446,15 @@ public class LiteLoaderTweaker implements ITweaker | @@ -437,17 +446,15 @@ public class LiteLoaderTweaker implements ITweaker | ||
437 | 446 | ||
438 | LiteLoaderLogger.info("Injecting cascaded tweakers..."); | 447 | LiteLoaderLogger.info("Injecting cascaded tweakers..."); |
439 | 448 | ||
440 | - @SuppressWarnings("unchecked") | ||
441 | - List<String> tweakClasses = (List<String>)Launch.blackboard.get("TweakClasses"); | ||
442 | - @SuppressWarnings("unchecked") | ||
443 | - List<ITweaker> tweakers = (List<ITweaker>)Launch.blackboard.get("Tweaks"); | 449 | + List<String> tweakClasses = LiteLoaderTweaker.getTweakClasses(); |
450 | + List<ITweaker> tweakers = LiteLoaderTweaker.getTweakers(); | ||
444 | if (tweakClasses != null && tweakers != null) | 451 | if (tweakClasses != null && tweakers != null) |
445 | { | 452 | { |
446 | for (SortableValue<String> tweak : this.sortedCascadingTweaks) | 453 | for (SortableValue<String> tweak : this.sortedCascadingTweaks) |
447 | { | 454 | { |
448 | String tweakClass = tweak.getValue(); | 455 | String tweakClass = tweak.getValue(); |
449 | LiteLoaderLogger.info(Verbosity.REDUCED, "Injecting tweak class %s with priority %d", tweakClass, tweak.getPriority()); | 456 | LiteLoaderLogger.info(Verbosity.REDUCED, "Injecting tweak class %s with priority %d", tweakClass, tweak.getPriority()); |
450 | - this.injectTweakClass(tweakClass, tweakClasses, tweakers); | 457 | + LiteLoaderTweaker.injectTweakClass(tweakClass, tweakClasses, tweakers); |
451 | } | 458 | } |
452 | } | 459 | } |
453 | 460 | ||
@@ -455,26 +462,36 @@ public class LiteLoaderTweaker implements ITweaker | @@ -455,26 +462,36 @@ public class LiteLoaderTweaker implements ITweaker | ||
455 | this.sortedCascadingTweaks.clear(); | 462 | this.sortedCascadingTweaks.clear(); |
456 | } | 463 | } |
457 | } | 464 | } |
465 | + | ||
466 | + private static boolean injectTweakClass(String tweakClass) | ||
467 | + { | ||
468 | + List<String> tweakClasses = LiteLoaderTweaker.getTweakClasses(); | ||
469 | + List<ITweaker> tweakers = LiteLoaderTweaker.getTweakers(); | ||
470 | + return LiteLoaderTweaker.injectTweakClass(tweakClass, tweakClasses, tweakers); | ||
471 | + } | ||
458 | 472 | ||
459 | /** | 473 | /** |
460 | * @param tweakClass | 474 | * @param tweakClass |
461 | * @param tweakClasses | 475 | * @param tweakClasses |
462 | * @param tweakers | 476 | * @param tweakers |
463 | */ | 477 | */ |
464 | - private void injectTweakClass(String tweakClass, List<String> tweakClasses, List<ITweaker> tweakers) | 478 | + private static boolean injectTweakClass(String tweakClass, List<String> tweakClasses, List<ITweaker> tweakers) |
465 | { | 479 | { |
466 | - if (!tweakClasses.contains(tweakClass)) | 480 | + if (tweakClasses.contains(tweakClass)) |
481 | + { | ||
482 | + return false; | ||
483 | + } | ||
484 | + | ||
485 | + for (ITweaker existingTweaker : tweakers) | ||
467 | { | 486 | { |
468 | - for (ITweaker existingTweaker : tweakers) | 487 | + if (tweakClass.equals(existingTweaker.getClass().getName())) |
469 | { | 488 | { |
470 | - if (tweakClass.equals(existingTweaker.getClass().getName())) | ||
471 | - { | ||
472 | - return; | ||
473 | - } | 489 | + return false; |
474 | } | 490 | } |
475 | - | ||
476 | - tweakClasses.add(tweakClass); | ||
477 | } | 491 | } |
492 | + | ||
493 | + tweakClasses.add(tweakClass); | ||
494 | + return true; | ||
478 | } | 495 | } |
479 | 496 | ||
480 | /** | 497 | /** |
@@ -592,11 +609,10 @@ public class LiteLoaderTweaker implements ITweaker | @@ -592,11 +609,10 @@ public class LiteLoaderTweaker implements ITweaker | ||
592 | /** | 609 | /** |
593 | * @param clazz | 610 | * @param clazz |
594 | */ | 611 | */ |
595 | - @SuppressWarnings("unchecked") | ||
596 | private static boolean isTweakAlreadyEnqueued(String clazz) | 612 | private static boolean isTweakAlreadyEnqueued(String clazz) |
597 | { | 613 | { |
598 | - List<String> tweakClasses = (List<String>)Launch.blackboard.get("TweakClasses"); | ||
599 | - List<ITweaker> tweakers = (List<ITweaker>)Launch.blackboard.get("Tweaks"); | 614 | + List<String> tweakClasses = LiteLoaderTweaker.getTweakClasses(); |
615 | + List<ITweaker> tweakers = LiteLoaderTweaker.getTweakers(); | ||
600 | 616 | ||
601 | if (tweakClasses != null) | 617 | if (tweakClasses != null) |
602 | { | 618 | { |
@@ -617,6 +633,18 @@ public class LiteLoaderTweaker implements ITweaker | @@ -617,6 +633,18 @@ public class LiteLoaderTweaker implements ITweaker | ||
617 | return false; | 633 | return false; |
618 | } | 634 | } |
619 | 635 | ||
636 | + @SuppressWarnings("unchecked") | ||
637 | + private static List<String> getTweakClasses() | ||
638 | + { | ||
639 | + return Preconditions.<List<String>>checkNotNull((List<String>)Launch.blackboard.get("TweakClasses"), "TweakClasses"); | ||
640 | + } | ||
641 | + | ||
642 | + @SuppressWarnings("unchecked") | ||
643 | + private static List<ITweaker> getTweakers() | ||
644 | + { | ||
645 | + return Preconditions.<List<ITweaker>>checkNotNull((List<ITweaker>)Launch.blackboard.get("Tweaks"), "Tweaks"); | ||
646 | + } | ||
647 | + | ||
620 | /** | 648 | /** |
621 | * Get whether to enable the loading bar for minecraft startup | 649 | * Get whether to enable the loading bar for minecraft startup |
622 | */ | 650 | */ |
@@ -656,4 +684,9 @@ public class LiteLoaderTweaker implements ITweaker | @@ -656,4 +684,9 @@ public class LiteLoaderTweaker implements ITweaker | ||
656 | LiteLoaderTweaker.instance.onInit(); | 684 | LiteLoaderTweaker.instance.onInit(); |
657 | LiteLoaderTweaker.instance.onPostInit(); | 685 | LiteLoaderTweaker.instance.onPostInit(); |
658 | } | 686 | } |
687 | + | ||
688 | + public static EnvironmentType getEnvironmentType() | ||
689 | + { | ||
690 | + return LiteLoaderTweaker.instance.bootstrap.getEnvironment().getType(); | ||
691 | + } | ||
659 | } | 692 | } |
660 | \ No newline at end of file | 693 | \ No newline at end of file |
src/main/java/com/mumfrey/liteloader/transformers/ClassOverlayTransformer.java
@@ -76,7 +76,9 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | @@ -76,7 +76,9 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | ||
76 | * </ul> | 76 | * </ul> |
77 | * | 77 | * |
78 | * @author Adam Mummery-Smith | 78 | * @author Adam Mummery-Smith |
79 | + * @deprecated Use mixins instead! | ||
79 | */ | 80 | */ |
81 | +@Deprecated | ||
80 | public abstract class ClassOverlayTransformer extends ClassTransformer | 82 | public abstract class ClassOverlayTransformer extends ClassTransformer |
81 | { | 83 | { |
82 | /** | 84 | /** |
src/main/java/com/mumfrey/liteloader/transformers/event/Event.java
@@ -42,6 +42,11 @@ public class Event implements Comparable<Event> | @@ -42,6 +42,11 @@ public class Event implements Comparable<Event> | ||
42 | private static final List<Map<MethodNode, List<Event>>> proxyHandlerMethods = new ArrayList<Map<MethodNode, List<Event>>>(); | 42 | private static final List<Map<MethodNode, List<Event>>> proxyHandlerMethods = new ArrayList<Map<MethodNode, List<Event>>>(); |
43 | 43 | ||
44 | private static int proxyInnerClassIndex = 1; | 44 | private static int proxyInnerClassIndex = 1; |
45 | + | ||
46 | + static | ||
47 | + { | ||
48 | + Event.resizeProxyList(); | ||
49 | + } | ||
45 | 50 | ||
46 | /** | 51 | /** |
47 | * The name of this event | 52 | * The name of this event |
@@ -657,16 +662,21 @@ public class Event implements Comparable<Event> | @@ -657,16 +662,21 @@ public class Event implements Comparable<Event> | ||
657 | 662 | ||
658 | private static List<Event> addMethodToActiveProxy(MethodNode handlerMethod) | 663 | private static List<Event> addMethodToActiveProxy(MethodNode handlerMethod) |
659 | { | 664 | { |
660 | - while (Event.proxyHandlerMethods.size() < Event.proxyInnerClassIndex + 1) | ||
661 | - { | ||
662 | - Event.proxyHandlerMethods.add(new LinkedHashMap<MethodNode, List<Event>>()); | ||
663 | - } | 665 | + Event.resizeProxyList(); |
664 | 666 | ||
665 | ArrayList<Event> events = new ArrayList<Event>(); | 667 | ArrayList<Event> events = new ArrayList<Event>(); |
666 | Event.proxyHandlerMethods.get(Event.proxyInnerClassIndex).put(handlerMethod, events); | 668 | Event.proxyHandlerMethods.get(Event.proxyInnerClassIndex).put(handlerMethod, events); |
667 | return events; | 669 | return events; |
668 | } | 670 | } |
669 | 671 | ||
672 | + private static void resizeProxyList() | ||
673 | + { | ||
674 | + while (Event.proxyHandlerMethods.size() < Event.proxyInnerClassIndex + 1) | ||
675 | + { | ||
676 | + Event.proxyHandlerMethods.add(new LinkedHashMap<MethodNode, List<Event>>()); | ||
677 | + } | ||
678 | + } | ||
679 | + | ||
670 | private static List<Event> getEventsForHandlerMethod(MethodNode handlerMethod) | 680 | private static List<Event> getEventsForHandlerMethod(MethodNode handlerMethod) |
671 | { | 681 | { |
672 | for (Map<MethodNode, List<Event>> handlers : Event.proxyHandlerMethods) | 682 | for (Map<MethodNode, List<Event>> handlers : Event.proxyHandlerMethods) |
src/main/java/com/mumfrey/liteloader/util/ObfuscationUtilities.java
@@ -14,25 +14,14 @@ public class ObfuscationUtilities | @@ -14,25 +14,14 @@ public class ObfuscationUtilities | ||
14 | * raw field/method names. | 14 | * raw field/method names. |
15 | */ | 15 | */ |
16 | private static boolean fmlDetected = false; | 16 | private static boolean fmlDetected = false; |
17 | - | 17 | + |
18 | + private static boolean checkedObfEnv = false; | ||
18 | private static boolean seargeNames = false; | 19 | private static boolean seargeNames = false; |
19 | 20 | ||
20 | static | 21 | static |
21 | { | 22 | { |
22 | // Check for FML | 23 | // Check for FML |
23 | ObfuscationUtilities.fmlDetected = ObfuscationUtilities.fmlIsPresent(); | 24 | ObfuscationUtilities.fmlDetected = ObfuscationUtilities.fmlIsPresent(); |
24 | - | ||
25 | - try | ||
26 | - { | ||
27 | - MinecraftServer.class.getDeclaredField("serverRunning"); | ||
28 | - } | ||
29 | - catch (SecurityException ex) | ||
30 | - { | ||
31 | - } | ||
32 | - catch (NoSuchFieldException ex) | ||
33 | - { | ||
34 | - ObfuscationUtilities.seargeNames = true; | ||
35 | - } | ||
36 | } | 25 | } |
37 | 26 | ||
38 | public static boolean fmlIsPresent() | 27 | public static boolean fmlIsPresent() |
@@ -47,6 +36,28 @@ public class ObfuscationUtilities | @@ -47,6 +36,28 @@ public class ObfuscationUtilities | ||
47 | 36 | ||
48 | return false; | 37 | return false; |
49 | } | 38 | } |
39 | + | ||
40 | + public static boolean useSeargeNames() | ||
41 | + { | ||
42 | + if (!ObfuscationUtilities.checkedObfEnv) | ||
43 | + { | ||
44 | + ObfuscationUtilities.checkedObfEnv = true; | ||
45 | + | ||
46 | + try | ||
47 | + { | ||
48 | + MinecraftServer.class.getDeclaredField("serverRunning"); | ||
49 | + } | ||
50 | + catch (SecurityException ex) | ||
51 | + { | ||
52 | + } | ||
53 | + catch (NoSuchFieldException ex) | ||
54 | + { | ||
55 | + ObfuscationUtilities.seargeNames = true; | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + return ObfuscationUtilities.seargeNames; | ||
60 | + } | ||
50 | 61 | ||
51 | /** | 62 | /** |
52 | * Abstraction helper function | 63 | * Abstraction helper function |
@@ -58,7 +69,7 @@ public class ObfuscationUtilities | @@ -58,7 +69,7 @@ public class ObfuscationUtilities | ||
58 | public static String getObfuscatedFieldName(String fieldName, String obfuscatedFieldName, String seargeFieldName) | 69 | public static String getObfuscatedFieldName(String fieldName, String obfuscatedFieldName, String seargeFieldName) |
59 | { | 70 | { |
60 | boolean deobfuscated = BlockPos.class.getSimpleName().equals("BlockPos"); | 71 | boolean deobfuscated = BlockPos.class.getSimpleName().equals("BlockPos"); |
61 | - return deobfuscated ? (ObfuscationUtilities.seargeNames ? seargeFieldName : fieldName) | 72 | + return deobfuscated ? (ObfuscationUtilities.useSeargeNames() ? seargeFieldName : fieldName) |
62 | : (ObfuscationUtilities.fmlDetected ? seargeFieldName : obfuscatedFieldName); | 73 | : (ObfuscationUtilities.fmlDetected ? seargeFieldName : obfuscatedFieldName); |
63 | } | 74 | } |
64 | 75 | ||
@@ -71,6 +82,6 @@ public class ObfuscationUtilities | @@ -71,6 +82,6 @@ public class ObfuscationUtilities | ||
71 | public static String getObfuscatedFieldName(Obf obf) | 82 | public static String getObfuscatedFieldName(Obf obf) |
72 | { | 83 | { |
73 | boolean deobfuscated = BlockPos.class.getSimpleName().equals("BlockPos"); | 84 | boolean deobfuscated = BlockPos.class.getSimpleName().equals("BlockPos"); |
74 | - return deobfuscated ? (ObfuscationUtilities.seargeNames ? obf.srg : obf.name) : (ObfuscationUtilities.fmlDetected ? obf.srg : obf.obf); | 85 | + return deobfuscated ? (ObfuscationUtilities.useSeargeNames() ? obf.srg : obf.name) : (ObfuscationUtilities.fmlDetected ? obf.srg : obf.obf); |
75 | } | 86 | } |
76 | } | 87 | } |
src/main/java/com/mumfrey/liteloader/util/PrivateFields.java
@@ -3,8 +3,6 @@ package com.mumfrey.liteloader.util; | @@ -3,8 +3,6 @@ package com.mumfrey.liteloader.util; | ||
3 | import java.lang.reflect.Field; | 3 | import java.lang.reflect.Field; |
4 | import java.lang.reflect.Modifier; | 4 | import java.lang.reflect.Modifier; |
5 | 5 | ||
6 | -import net.minecraft.network.play.client.C15PacketClientSettings; | ||
7 | - | ||
8 | import com.mumfrey.liteloader.core.runtime.Obf; | 6 | import com.mumfrey.liteloader.core.runtime.Obf; |
9 | 7 | ||
10 | /** | 8 | /** |
@@ -124,9 +122,4 @@ public class PrivateFields<P, T> | @@ -124,9 +122,4 @@ public class PrivateFields<P, T> | ||
124 | 122 | ||
125 | return value; | 123 | return value; |
126 | } | 124 | } |
127 | - | ||
128 | - // CHECKSTYLE:OFF | ||
129 | - | ||
130 | - public static final PrivateFields<C15PacketClientSettings, Integer> viewDistance = new PrivateFields<C15PacketClientSettings, Integer>(C15PacketClientSettings.class, Obf.viewDistance); | ||
131 | - | ||
132 | } | 125 | } |
133 | \ No newline at end of file | 126 | \ No newline at end of file |
src/main/resources/mixins.liteloader.core.json
0 → 100644
1 | +{ | ||
2 | + "required": true, | ||
3 | + "minVersion": "0.4.10", | ||
4 | + "package": "com.mumfrey.liteloader.common.mixin", | ||
5 | + "refmap": "mixins.liteloader.core.refmap.json", | ||
6 | + "mixins": [ | ||
7 | + "MixinMinecraftServer", | ||
8 | + "MixinServerConfigurationManager", | ||
9 | + "MixinNetHandlerPlayServer", | ||
10 | + "MixinItemInWorldManager", | ||
11 | + "MixinC15PacketClientSettings", | ||
12 | + "MixinS02PacketChat" | ||
13 | + ] | ||
14 | +} | ||
0 | \ No newline at end of file | 15 | \ No newline at end of file |