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 | 2 | ######### |
3 | 3 | MANIFEST.MF |
4 | 4 | dependency-reduced-pom.xml |
5 | -.checkstyle | |
6 | 5 | |
7 | 6 | # Compiled # |
8 | 7 | ############ |
... | ... | @@ -19,7 +18,6 @@ target |
19 | 18 | *.exe |
20 | 19 | *.o |
21 | 20 | *.so |
22 | -*.launch | |
23 | 21 | |
24 | 22 | # Databases # |
25 | 23 | ############# |
... | ... | @@ -55,9 +53,12 @@ target |
55 | 53 | .DS_Store |
56 | 54 | ehthumbs.db |
57 | 55 | Thumbs.db |
56 | +*.bat | |
57 | +*.sh | |
58 | 58 | |
59 | 59 | # Project # |
60 | 60 | ########### |
61 | +.checkstyle | |
61 | 62 | .classpath |
62 | 63 | .externalToolBuilders |
63 | 64 | .gradle |
... | ... | @@ -73,4 +74,5 @@ nb-configuration.xml |
73 | 74 | *.iml |
74 | 75 | *.ipr |
75 | 76 | *.iws |
77 | +*.launch | |
76 | 78 | ... | ... |
build.gradle
... | ... | @@ -15,6 +15,7 @@ buildscript { |
15 | 15 | dependencies { |
16 | 16 | classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' |
17 | 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 | 23 | apply plugin: 'checkstyle' |
23 | 24 | apply plugin: 'maven' |
24 | 25 | apply plugin: 'com.github.johnrengelman.shadow' |
26 | +apply plugin: 'org.spongepowered.mixin' | |
27 | + | |
28 | +// Default tasks | |
29 | +defaultTasks 'build' | |
25 | 30 | |
26 | 31 | ext { |
27 | 32 | // Artefact details |
28 | 33 | buildNumber = project.hasProperty("buildNumber") ? buildNumber : '0' |
34 | + buildVersion = project.hasProperty("buildVersion") ? buildVersion : '0.0' | |
29 | 35 | ciSystem = project.hasProperty("ciSystem") ? ciSystem : 'unknown' |
30 | 36 | commit = project.hasProperty("commit") ? commit : 'unknown' |
31 | 37 | classifier = project.hasProperty("buildType") ? buildType : 'SNAPSHOT' |
... | ... | @@ -39,9 +45,6 @@ ext { |
39 | 45 | |
40 | 46 | startClass = 'com.mumfrey.liteloader.debug.Start' |
41 | 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 | 50 | // Basic project information |
... | ... | @@ -61,7 +64,7 @@ repositories { |
61 | 64 | } |
62 | 65 | |
63 | 66 | dependencies { |
64 | - compile('org.spongepowered:mixin:0.4.7-SNAPSHOT') { | |
67 | + compile('org.spongepowered:mixin:0.4.10-SNAPSHOT') { | |
65 | 68 | exclude module: 'launchwrapper' |
66 | 69 | exclude module: 'guava' |
67 | 70 | } |
... | ... | @@ -75,20 +78,28 @@ minecraft { |
75 | 78 | } |
76 | 79 | |
77 | 80 | sourceSets { |
81 | + main { | |
82 | + refMap = "mixins.liteloader.core.refmap.json" | |
83 | + } | |
78 | 84 | client { |
79 | 85 | compileClasspath += main.compileClasspath + main.output |
86 | + refMap = "mixins.liteloader.client.refmap.json" | |
80 | 87 | } |
81 | 88 | debug { |
82 | 89 | compileClasspath += client.compileClasspath + client.output |
83 | 90 | } |
84 | 91 | } |
85 | 92 | |
93 | +mixin { | |
94 | + defaultObfuscationEnv notch | |
95 | +} | |
96 | + | |
86 | 97 | checkstyle { |
87 | 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 | 104 | configFile = file("checkstyle.xml") |
94 | 105 | toolVersion = '6.13' |
... | ... | @@ -99,8 +110,19 @@ javadoc { |
99 | 110 | source sourceSets.debug.allJava |
100 | 111 | } |
101 | 112 | |
102 | -// hacks for run configs | |
103 | 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 | 126 | def mc = plugins.getPlugin 'net.minecraftforge.gradle.tweaker-client' |
105 | 127 | mc.replacer.putReplacement '{RUN_CLIENT_MAIN}', project.startClass |
106 | 128 | mc.replacer.putReplacement '{RUN_CLIENT_TWEAKER}', minecraft.tweakClass |
... | ... | @@ -118,6 +140,14 @@ def jarManifest = { |
118 | 140 | } |
119 | 141 | |
120 | 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 | 151 | from sourceSets.client.output |
122 | 152 | from sourceSets.debug.output |
123 | 153 | manifest jarManifest |
... | ... | @@ -126,7 +156,6 @@ jar { |
126 | 156 | task releaseJar(type: Jar) { |
127 | 157 | from sourceSets.main.output |
128 | 158 | from sourceSets.client.output |
129 | - from project.mixinRefMap | |
130 | 159 | |
131 | 160 | manifest jarManifest |
132 | 161 | classifier = 'staging' |
... | ... | @@ -138,7 +167,6 @@ shadowJar { |
138 | 167 | |
139 | 168 | from sourceSets.main.output |
140 | 169 | from sourceSets.client.output |
141 | - from project.mixinRefMap | |
142 | 170 | |
143 | 171 | exclude 'META-INF/*.DSA' |
144 | 172 | exclude 'META-INF/*.RSA' |
... | ... | @@ -170,10 +198,7 @@ tasks.withType(JavaCompile) { |
170 | 198 | '-Xlint:all', |
171 | 199 | '-Xlint:-path', |
172 | 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 | 203 | options.deprecation = true |
179 | 204 | options.encoding = 'utf8' |
... | ... | @@ -188,35 +213,22 @@ if (JavaVersion.current().isJava8Compatible()) { |
188 | 213 | |
189 | 214 | reobf { |
190 | 215 | jar { |
191 | - useSrgSrg() | |
216 | + mappingType = 'SEARGE' | |
192 | 217 | } |
193 | 218 | releaseJar { |
194 | - useNotchSrg() | |
219 | + mappingType = 'NOTCH' | |
195 | 220 | classpath = sourceSets.main.compileClasspath |
196 | - extraFiles([ | |
197 | - project.mixinSrg | |
198 | - ]) | |
199 | 221 | } |
200 | 222 | shadowJar { |
201 | - useNotchSrg() | |
223 | + mappingType = 'NOTCH' | |
202 | 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 | 228 | build.dependsOn {[ |
216 | 229 | 'reobfReleaseJar', |
217 | 230 | 'reobfShadowJar' |
218 | - ] | |
219 | -} | |
231 | +]} | |
220 | 232 | |
221 | 233 | artifacts { |
222 | 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 | 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 | 7 | import net.minecraft.client.Minecraft; |
4 | -import net.minecraft.client.network.NetHandlerLoginClient; | |
5 | 8 | import net.minecraft.network.INetHandler; |
6 | 9 | import net.minecraft.network.NetworkManager; |
7 | 10 | import net.minecraft.network.PacketBuffer; |
... | ... | @@ -12,10 +15,6 @@ import net.minecraft.network.play.client.C17PacketCustomPayload; |
12 | 15 | import net.minecraft.network.play.server.S01PacketJoinGame; |
13 | 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 | 19 | * Handler for client plugin channels |
21 | 20 | * |
... | ... | @@ -67,7 +66,7 @@ public class ClientPluginChannelsClient extends ClientPluginChannels |
67 | 66 | { |
68 | 67 | if (netHandler instanceof INetHandlerLoginClient) |
69 | 68 | { |
70 | - NetworkManager networkManager = PrivateFieldsClient.netManager.get(((NetHandlerLoginClient)netHandler)); | |
69 | + NetworkManager networkManager = ((IClientNetLoginHandler)netHandler).getNetMgr(); | |
71 | 70 | networkManager.sendPacket(new C17PacketCustomPayload(CHANNEL_REGISTER, registrationData)); |
72 | 71 | } |
73 | 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 | 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 | 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 | 7 | import com.mumfrey.liteloader.*; |
23 | 8 | import com.mumfrey.liteloader.client.overlays.IEntityRenderer; |
... | ... | @@ -31,12 +16,28 @@ import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; |
31 | 16 | import com.mumfrey.liteloader.core.event.ProfilingHandlerList; |
32 | 17 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
33 | 18 | import com.mumfrey.liteloader.launch.LoaderProperties; |
34 | -import com.mumfrey.liteloader.transformers.event.EventInfo; | |
35 | -import com.mumfrey.liteloader.transformers.event.ReturnEventInfo; | |
36 | 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 | 36 | public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft, IntegratedServer> implements IResourceManagerReloadListener |
39 | 37 | { |
38 | + /** | |
39 | + * Singleton | |
40 | + */ | |
40 | 41 | private static LiteLoaderEventBrokerClient instance; |
41 | 42 | |
42 | 43 | /** |
... | ... | @@ -93,7 +94,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
93 | 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 | 99 | return LiteLoaderEventBrokerClient.instance; |
99 | 100 | } |
... | ... | @@ -363,8 +364,7 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
363 | 364 | */ |
364 | 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 | 442 | /** |
443 | 443 | * @param message |
444 | 444 | */ |
445 | - void onSendChatMessage(EventInfo<EntityPlayerSP> e, String message) | |
445 | + void onSendChatMessage(CallbackInfo e, String message) | |
446 | 446 | { |
447 | 447 | if (!this.outboundChatFilters.all().onSendChatMessage(message)) |
448 | 448 | { |
... | ... | @@ -523,13 +523,13 @@ public class LiteLoaderEventBrokerClient extends LiteLoaderEventBroker<Minecraft |
523 | 523 | * @param height |
524 | 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 | 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 | 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 | 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 | 6 | import com.mumfrey.liteloader.common.transformers.PacketEventInfo; |
25 | 7 | import com.mumfrey.liteloader.core.ClientPluginChannels; |
26 | 8 | import com.mumfrey.liteloader.core.InterfaceRegistrationDelegate; |
... | ... | @@ -32,10 +14,22 @@ import com.mumfrey.liteloader.core.event.HandlerList; |
32 | 14 | import com.mumfrey.liteloader.core.event.HandlerList.ReturnLogicOp; |
33 | 15 | import com.mumfrey.liteloader.core.runtime.Packets; |
34 | 16 | import com.mumfrey.liteloader.interfaces.FastIterableDeque; |
35 | -import com.mumfrey.liteloader.transformers.event.EventInfo; | |
36 | 17 | import com.mumfrey.liteloader.util.ChatUtilities; |
37 | 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 | 34 | * Client-side packet event handlers |
41 | 35 | * |
... | ... | @@ -113,7 +107,7 @@ public class PacketEventsClient extends PacketEvents |
113 | 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 | 112 | PacketEventsClient.joiningRealm = server; |
119 | 113 | } |
... | ... | @@ -254,7 +248,7 @@ public class PacketEventsClient extends PacketEvents |
254 | 248 | try |
255 | 249 | { |
256 | 250 | chat = ChatUtilities.convertLegacyCodes(chat); |
257 | - PrivateFieldsClient.chatMessage.set(packet, chat); | |
251 | + ((IChatPacket)packet).setChatComponent(chat); | |
258 | 252 | } |
259 | 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 | 2 | |
3 | 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 | 8 | import net.minecraft.client.audio.SoundHandler; |
6 | 9 | import net.minecraft.client.resources.IResourceManagerReloadListener; |
7 | 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 | 13 | * Manager object which handles inhibiting the sound handler's reload |
14 | 14 | * notification at startup. |
... | ... | @@ -55,7 +55,7 @@ public class SoundHandlerReloadInhibitor |
55 | 55 | { |
56 | 56 | if (!this.inhibited) |
57 | 57 | { |
58 | - List<IResourceManagerReloadListener> reloadListeners = PrivateFieldsClient.reloadListeners.get(this.resourceManager); | |
58 | + List<IResourceManagerReloadListener> reloadListeners = ((IReloadable)this.resourceManager).getReloadListeners(); | |
59 | 59 | if (reloadListeners != null) |
60 | 60 | { |
61 | 61 | this.storedIndex = reloadListeners.indexOf(this.soundHandler); |
... | ... | @@ -89,7 +89,7 @@ public class SoundHandlerReloadInhibitor |
89 | 89 | { |
90 | 90 | if (this.inhibited) |
91 | 91 | { |
92 | - List<IResourceManagerReloadListener> reloadListeners = PrivateFieldsClient.reloadListeners.get(this.resourceManager); | |
92 | + List<IResourceManagerReloadListener> reloadListeners = ((IReloadable)this.resourceManager).getReloadListeners(); | |
93 | 93 | if (reloadListeners != null) |
94 | 94 | { |
95 | 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 | import net.minecraft.server.integrated.IntegratedServer; |
7 | 7 | |
8 | 8 | import com.google.common.collect.ImmutableList; |
9 | +import com.google.common.collect.ObjectArrays; | |
9 | 10 | import com.mumfrey.liteloader.api.CoreProvider; |
10 | 11 | import com.mumfrey.liteloader.api.CustomisationProvider; |
11 | 12 | import com.mumfrey.liteloader.api.InterfaceProvider; |
... | ... | @@ -36,12 +37,20 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI |
36 | 37 | |
37 | 38 | private static final String[] requiredDownstreamTransformers = { |
38 | 39 | LiteLoaderCoreAPI.PKG_LITELOADER_COMMON + ".transformers.LiteLoaderPacketTransformer", |
39 | - LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.LiteLoaderEventInjectionTransformer", | |
40 | 40 | LiteLoaderCoreAPIClient.PKG_LITELOADER_CLIENT + ".transformers.MinecraftTransformer", |
41 | 41 | LiteLoaderCoreAPI.PKG_LITELOADER + ".transformers.event.json.ModEventInjectionTransformer" |
42 | 42 | }; |
43 | 43 | |
44 | 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 | 55 | /* (non-Javadoc) |
47 | 56 | * @see com.mumfrey.liteloader.api.LiteAPI#getRequiredTransformers() |
... | ... | @@ -69,11 +78,11 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI |
69 | 78 | public List<CustomisationProvider> getCustomisationProviders() |
70 | 79 | { |
71 | 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 | 88 | /* (non-Javadoc) |
... | ... | @@ -83,10 +92,10 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI |
83 | 92 | public List<CoreProvider> getCoreProviders() |
84 | 93 | { |
85 | 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 | 108 | ObjectFactory<?, ?> objectFactory = this.getObjectFactory(); |
100 | 109 | |
101 | 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 | 120 | /* (non-Javadoc) |
... | ... | @@ -115,9 +124,9 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI |
115 | 124 | public List<Observer> getPreInitObservers() |
116 | 125 | { |
117 | 126 | return ImmutableList.<Observer>of |
118 | - ( | |
119 | - new ModEvents() | |
120 | - ); | |
127 | + ( | |
128 | + new ModEvents() | |
129 | + ); | |
121 | 130 | } |
122 | 131 | |
123 | 132 | /* (non-Javadoc) |
... | ... | @@ -129,11 +138,11 @@ public class LiteLoaderCoreAPIClient extends LiteLoaderCoreAPI |
129 | 138 | ObjectFactory<?, ?> objectFactory = this.getObjectFactory(); |
130 | 139 | |
131 | 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 | 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
1 | +package com.mumfrey.liteloader.client.ducks; | |
2 | + | |
3 | +import java.util.IdentityHashMap; | |
4 | +import java.util.List; | |
5 | + | |
6 | +public interface IObjectIntIdentityMap | |
7 | +{ | |
8 | + public abstract <V> IdentityHashMap<V, Integer> getIdentityMap(); | |
9 | + | |
10 | + public abstract <V> List<V> getObjectList(); | |
11 | +} | ... | ... |
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
1 | +package com.mumfrey.liteloader.client.ducks; | |
2 | + | |
3 | +import java.util.Map; | |
4 | + | |
5 | +import net.minecraft.client.renderer.entity.Render; | |
6 | +import net.minecraft.entity.Entity; | |
7 | + | |
8 | +public interface IRenderManager | |
9 | +{ | |
10 | + public abstract Map<Class<? extends Entity>, Render> getRenderMap(); | |
11 | +} | ... | ... |
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 | 1 | package com.mumfrey.liteloader.client.util; |
2 | 2 | |
3 | -import java.util.IdentityHashMap; | |
4 | -import java.util.List; | |
5 | 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 | 5 | import com.mumfrey.liteloader.core.runtime.Obf; |
21 | 6 | import com.mumfrey.liteloader.util.PrivateFields; |
22 | 7 | |
8 | +import net.minecraft.tileentity.TileEntity; | |
9 | + | |
23 | 10 | @SuppressWarnings("rawtypes") |
24 | 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 | |
31 | 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 | 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 | import java.util.List; |
7 | 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 | 18 | import net.minecraft.block.Block; |
10 | 19 | import net.minecraft.client.Minecraft; |
11 | 20 | import net.minecraft.client.renderer.entity.Render; |
... | ... | @@ -17,20 +26,9 @@ import net.minecraft.init.Blocks; |
17 | 26 | import net.minecraft.init.Items; |
18 | 27 | import net.minecraft.item.Item; |
19 | 28 | import net.minecraft.tileentity.TileEntity; |
20 | -import net.minecraft.util.ObjectIntIdentityMap; | |
21 | -import net.minecraft.util.RegistryNamespaced; | |
22 | 29 | import net.minecraft.util.RegistrySimple; |
23 | 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 | 33 | * A small collection of useful functions for mods |
36 | 34 | * |
... | ... | @@ -67,12 +65,11 @@ public abstract class ModUtilities |
67 | 65 | * @param entityClass |
68 | 66 | * @param renderer |
69 | 67 | */ |
70 | - @SuppressWarnings("unchecked") | |
71 | 68 | public static void addRenderer(Class<? extends Entity> entityClass, Render renderer) |
72 | 69 | { |
73 | 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 | 73 | if (entityRenderMap != null) |
77 | 74 | { |
78 | 75 | entityRenderMap.put(entityClass, renderer); |
... | ... | @@ -84,7 +81,6 @@ public abstract class ModUtilities |
84 | 81 | } |
85 | 82 | } |
86 | 83 | |
87 | - @SuppressWarnings("unchecked") | |
88 | 84 | public static void addRenderer(Class<? extends TileEntity> tileEntityClass, TileEntitySpecialRenderer renderer) |
89 | 85 | { |
90 | 86 | TileEntityRendererDispatcher tileEntityRenderer = TileEntityRendererDispatcher.instance; |
... | ... | @@ -92,7 +88,7 @@ public abstract class ModUtilities |
92 | 88 | try |
93 | 89 | { |
94 | 90 | Map<Class<? extends TileEntity>, TileEntitySpecialRenderer> specialRendererMap |
95 | - = PrivateFieldsClient.specialRendererMap.get(tileEntityRenderer); | |
91 | + = ((ITileEntityRendererDispatcher)tileEntityRenderer).getSpecialRenderMap(); | |
96 | 92 | specialRendererMap.put(tileEntityClass, renderer); |
97 | 93 | renderer.setRendererDispatcher(tileEntityRenderer); |
98 | 94 | } |
... | ... | @@ -203,7 +199,6 @@ public abstract class ModUtilities |
203 | 199 | { |
204 | 200 | Map<String, Class<? extends TileEntity>> nameToClassMap = PrivateFieldsClient.tileEntityNameToClassMap.get(null); |
205 | 201 | Map<Class<? extends TileEntity>, String> classToNameMap = PrivateFieldsClient.tileEntityClassToNameMap.get(null); |
206 | - | |
207 | 202 | nameToClassMap.put(entityName, tileEntityClass); |
208 | 203 | classToNameMap.put(tileEntityClass, entityName); |
209 | 204 | } |
... | ... | @@ -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 | 211 | private static <K, V> V removeObjectFromRegistry(RegistrySimple registry, K key) |
245 | 212 | { |
246 | 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 | 223 | if (registryObjects != null) |
258 | 224 | { |
259 | 225 | V existingValue = registryObjects.get(key); |
... | ... | @@ -263,8 +229,8 @@ public abstract class ModUtilities |
263 | 229 | |
264 | 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 | 234 | if (identityMap != null) identityMap.remove(existingValue); |
269 | 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 | 24 | \ No newline at end of file | ... | ... |
src/main/java/com/mumfrey/liteloader/api/LiteAPI.java
... | ... | @@ -53,7 +53,13 @@ public interface LiteAPI |
53 | 53 | * dependency using the api@revision syntax. |
54 | 54 | */ |
55 | 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 | 64 | * Should return an array of required transformer names, these transformers |
59 | 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 | 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 | 25 | * Aggregate and return required transformers from all registered APIs |
20 | 26 | */ |
21 | 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 | import java.util.Map; |
9 | 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 | 14 | import com.mumfrey.liteloader.api.CoreProvider; |
12 | 15 | import com.mumfrey.liteloader.api.LiteAPI; |
16 | +import com.mumfrey.liteloader.api.MixinConfigProvider; | |
13 | 17 | import com.mumfrey.liteloader.api.Observer; |
14 | 18 | import com.mumfrey.liteloader.interfaces.InterfaceRegistry; |
15 | 19 | |
... | ... | @@ -54,6 +58,44 @@ class APIProviderBasic implements APIProvider, APIAdapter |
54 | 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 | 100 | /* (non-Javadoc) |
59 | 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 | 7 | |
8 | 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 | 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 | 14 | import com.mumfrey.liteloader.api.manager.APIAdapter; |
31 | 15 | import com.mumfrey.liteloader.api.manager.APIProvider; |
32 | 16 | import com.mumfrey.liteloader.common.GameEngine; |
... | ... | @@ -37,12 +21,7 @@ import com.mumfrey.liteloader.core.event.HandlerList; |
37 | 21 | import com.mumfrey.liteloader.crashreport.CallableLaunchWrapper; |
38 | 22 | import com.mumfrey.liteloader.crashreport.CallableLiteLoaderBrand; |
39 | 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 | 25 | import com.mumfrey.liteloader.launch.LoaderEnvironment; |
47 | 26 | import com.mumfrey.liteloader.launch.LoaderEnvironment.EnvironmentType; |
48 | 27 | import com.mumfrey.liteloader.launch.LoaderProperties; |
... | ... | @@ -56,6 +35,15 @@ import com.mumfrey.liteloader.util.Input; |
56 | 35 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
57 | 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 | 48 | * LiteLoader is a simple loader which loads and provides useful callbacks to |
61 | 49 | * lightweight mods |
... | ... | @@ -524,6 +512,7 @@ public final class LiteLoader |
524 | 512 | if (LiteLoaderLogger.DEBUG) |
525 | 513 | { |
526 | 514 | EventTransformer.dumpInjectionState(); |
515 | + MixinEnvironment.getCurrentEnvironment().audit(); | |
527 | 516 | LiteLoaderLogger.info("Debug info dumped to console"); |
528 | 517 | } |
529 | 518 | else | ... | ... |
src/main/java/com/mumfrey/liteloader/core/LiteLoaderBootstrap.java
1 | 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 | 4 | import java.lang.reflect.Field; |
10 | 5 | import java.lang.reflect.Method; |
11 | 6 | import java.util.List; |
... | ... | @@ -15,10 +10,7 @@ import org.apache.logging.log4j.core.Layout; |
15 | 10 | import org.apache.logging.log4j.core.Logger; |
16 | 11 | import org.apache.logging.log4j.core.appender.FileAppender; |
17 | 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 | 15 | import com.mumfrey.liteloader.api.LiteAPI; |
24 | 16 | import com.mumfrey.liteloader.api.manager.APIAdapter; |
... | ... | @@ -27,15 +19,15 @@ import com.mumfrey.liteloader.api.manager.APIRegistry; |
27 | 19 | import com.mumfrey.liteloader.common.LoadingProgress; |
28 | 20 | import com.mumfrey.liteloader.core.api.LiteLoaderCoreAPI; |
29 | 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 | 24 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
37 | 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 | 32 | * LiteLoaderBootstrap is responsible for managing the early part of the |
41 | 33 | * LiteLoader startup process, this is to ensure that NONE of the Minecraft |
... | ... | @@ -316,10 +308,18 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP |
316 | 308 | |
317 | 309 | this.enumerator = this.spawnEnumerator(classLoader); |
318 | 310 | this.enumerator.onPreInit(); |
311 | + | |
312 | + this.initMixins(); | |
319 | 313 | |
320 | 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 | 324 | * @param classLoader |
325 | 325 | */ |
... | ... | @@ -341,6 +341,12 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP |
341 | 341 | } |
342 | 342 | |
343 | 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 | 352 | /* (non-Javadoc) |
... | ... | @@ -740,7 +746,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP |
740 | 746 | @Override |
741 | 747 | public List<String> getRequiredTransformers() |
742 | 748 | { |
743 | - return this.apiAdapter.getRequiredTransformers(); | |
749 | + return this.getAPIAdapter().getRequiredTransformers(); | |
744 | 750 | } |
745 | 751 | |
746 | 752 | /* (non-Javadoc) |
... | ... | @@ -750,7 +756,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP |
750 | 756 | @Override |
751 | 757 | public List<String> getRequiredDownstreamTransformers() |
752 | 758 | { |
753 | - List<String> requiredDownstreamTransformers = this.apiAdapter.getRequiredDownstreamTransformers(); | |
759 | + List<String> requiredDownstreamTransformers = this.getAPIAdapter().getRequiredDownstreamTransformers(); | |
754 | 760 | requiredDownstreamTransformers.add(0, "com.mumfrey.liteloader.transformers.event.EventTransformer"); |
755 | 761 | return requiredDownstreamTransformers; |
756 | 762 | } | ... | ... |
src/main/java/com/mumfrey/liteloader/core/LiteLoaderEventBroker.java
... | ... | @@ -5,6 +5,23 @@ import java.util.HashMap; |
5 | 5 | import java.util.Map; |
6 | 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 | 25 | import net.minecraft.command.ICommandManager; |
9 | 26 | import net.minecraft.command.ServerCommandManager; |
10 | 27 | import net.minecraft.entity.player.EntityPlayerMP; |
... | ... | @@ -25,31 +42,6 @@ import net.minecraft.world.World; |
25 | 42 | import net.minecraft.world.WorldServer; |
26 | 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 | 46 | * @author Adam Mummery-Smith |
55 | 47 | * |
... | ... | @@ -513,7 +505,7 @@ public abstract class LiteLoaderEventBroker<TClient, TServer extends MinecraftSe |
513 | 505 | void onPlayerSettingsReceived(EntityPlayerMP player, C15PacketClientSettings packet) |
514 | 506 | { |
515 | 507 | PlayerEventState playerState = this.getPlayerState(player); |
516 | - playerState.setTraceDistance(PrivateFields.viewDistance.get(packet)); | |
508 | + playerState.setTraceDistance(((IPacketClientSettings)packet).getViewDistance()); | |
517 | 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 | 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 | 8 | import net.minecraft.entity.player.EntityPlayer; |
4 | 9 | import net.minecraft.entity.player.EntityPlayerMP; |
5 | 10 | import net.minecraft.item.ItemStack; |
... | ... | @@ -17,89 +22,83 @@ import net.minecraft.util.EnumFacing; |
17 | 22 | import net.minecraft.world.World; |
18 | 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 | 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 | 37 | throw new RuntimeException("LiteLoader failed to start up properly." |
37 | 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 | 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 | 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 | 102 | EnumFacing side, float par8, float par9, float par10) |
104 | 103 | { |
105 | 104 | if (!(player instanceof EntityPlayerMP)) |
... | ... | @@ -107,39 +106,35 @@ public abstract class CallbackProxyCommon |
107 | 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 | 5 | import java.util.Collections; |
6 | 6 | import java.util.List; |
7 | 7 | |
8 | +import org.spongepowered.asm.mixin.MixinEnvironment.CompatibilityLevel; | |
9 | + | |
8 | 10 | import com.mumfrey.liteloader.api.EnumeratorModule; |
9 | 11 | import com.mumfrey.liteloader.api.LiteAPI; |
12 | +import com.mumfrey.liteloader.api.MixinConfigProvider; | |
10 | 13 | import com.mumfrey.liteloader.core.LiteLoaderVersion; |
11 | 14 | import com.mumfrey.liteloader.interfaces.ObjectFactory; |
12 | 15 | import com.mumfrey.liteloader.launch.LoaderEnvironment; |
... | ... | @@ -18,7 +21,7 @@ import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
18 | 21 | * |
19 | 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 | 26 | protected static final String PKG_LITELOADER = "com.mumfrey.liteloader"; |
24 | 27 | protected static final String PKG_LITELOADER_COMMON = LiteLoaderCoreAPI.PKG_LITELOADER + ".common"; |
... | ... | @@ -144,4 +147,30 @@ public abstract class LiteLoaderCoreAPI implements LiteAPI |
144 | 147 | * Get the ObjectFactory |
145 | 148 | */ |
146 | 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 | 16 | // CHECKSTYLE:OFF |
17 | 17 | |
18 | 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 | 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 | 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 | 68 | private Methods() {} |
69 | 69 | ... | ... |
src/main/java/com/mumfrey/liteloader/core/runtime/Obf.java
... | ... | @@ -17,8 +17,6 @@ public class Obf |
17 | 17 | { |
18 | 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 | 20 | public static final Obf EventProxy = new Obf("com.mumfrey.liteloader.core.event.EventProxy" ); |
23 | 21 | public static final Obf HandlerList = new Obf("com.mumfrey.liteloader.core.event.HandlerList" ); |
24 | 22 | public static final Obf BakedHandlerList = new Obf("com.mumfrey.liteloader.core.event.HandlerList$BakedHandlerList" ); |
... | ... | @@ -41,121 +39,128 @@ public class Obf |
41 | 39 | public static final Obf IGuiTextField = new Obf("com.mumfrey.liteloader.client.overlays.IGuiTextField" ); |
42 | 40 | public static final Obf IEntityRenderer = new Obf("com.mumfrey.liteloader.client.overlays.IEntityRenderer" ); |
43 | 41 | public static final Obf ISoundHandler = new Obf("com.mumfrey.liteloader.client.overlays.ISoundHandler" ); |
42 | + | |
43 | + // CHECKSTYLE:OFF | |
44 | 44 | |
45 | 45 | // Classes |
46 | 46 | // ----------------------------------------------------------------------------------------- |
47 | 47 | public static final Obf Minecraft = new Obf("net.minecraft.client.Minecraft", "bsu" ); |
48 | 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 | 50 | public static final Obf CrashReport$6 = new Obf("net.minecraft.crash.CrashReport$6", "h" ); |
52 | 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 | 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 | 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 | 56 | public static final Obf tileEntityNameToClassMap = new Obf("field_145855_i", "f" ); |
96 | 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 | 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 | 62 | public static final Obf startSection = new Obf("func_76320_a", "a" ); |
119 | 63 | public static final Obf endSection = new Obf("func_76319_b", "b" ); |
120 | 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 | 165 | public static final int MCP = 0; |
161 | 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 | import java.util.Set; |
11 | 11 | import java.util.TreeSet; |
12 | 12 | |
13 | +import org.spongepowered.asm.launch.MixinBootstrap; | |
14 | + | |
13 | 15 | import net.minecraft.launchwrapper.ITweaker; |
14 | 16 | import net.minecraft.launchwrapper.Launch; |
15 | 17 | import net.minecraft.launchwrapper.LaunchClassLoader; |
16 | 18 | |
19 | +import com.google.common.base.Preconditions; | |
20 | +import com.mumfrey.liteloader.launch.LoaderEnvironment.EnvironmentType; | |
17 | 21 | import com.mumfrey.liteloader.transformers.event.EventInfo; |
18 | 22 | import com.mumfrey.liteloader.util.SortableValue; |
19 | 23 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
... | ... | @@ -231,6 +235,8 @@ public class LiteLoaderTweaker implements ITweaker |
231 | 235 | @Override |
232 | 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 | 240 | Launch.classLoader.addClassLoaderExclusion("org.apache."); |
235 | 241 | Launch.classLoader.addClassLoaderExclusion("com.google.common."); |
236 | 242 | Launch.classLoader.addClassLoaderExclusion("org.objectweb.asm."); |
... | ... | @@ -334,6 +340,8 @@ public class LiteLoaderTweaker implements ITweaker |
334 | 340 | |
335 | 341 | try |
336 | 342 | { |
343 | + MixinBootstrap.init(); | |
344 | + | |
337 | 345 | this.bootstrap.preInit(Launch.classLoader, true, this.env.getModFilterList()); |
338 | 346 | |
339 | 347 | this.injectDiscoveredTweakClasses(); |
... | ... | @@ -360,6 +368,7 @@ public class LiteLoaderTweaker implements ITweaker |
360 | 368 | { |
361 | 369 | this.transformerManager.injectDownstreamTransformers(Launch.classLoader); |
362 | 370 | this.bootstrap.preBeginGame(); |
371 | + MixinBootstrap.addProxy(); | |
363 | 372 | StartupState.BEGINGAME.completed(); |
364 | 373 | } |
365 | 374 | catch (Throwable th) |
... | ... | @@ -437,17 +446,15 @@ public class LiteLoaderTweaker implements ITweaker |
437 | 446 | |
438 | 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 | 451 | if (tweakClasses != null && tweakers != null) |
445 | 452 | { |
446 | 453 | for (SortableValue<String> tweak : this.sortedCascadingTweaks) |
447 | 454 | { |
448 | 455 | String tweakClass = tweak.getValue(); |
449 | 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 | 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 | 474 | * @param tweakClass |
461 | 475 | * @param tweakClasses |
462 | 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 | 609 | /** |
593 | 610 | * @param clazz |
594 | 611 | */ |
595 | - @SuppressWarnings("unchecked") | |
596 | 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 | 617 | if (tweakClasses != null) |
602 | 618 | { |
... | ... | @@ -617,6 +633,18 @@ public class LiteLoaderTweaker implements ITweaker |
617 | 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 | 649 | * Get whether to enable the loading bar for minecraft startup |
622 | 650 | */ |
... | ... | @@ -656,4 +684,9 @@ public class LiteLoaderTweaker implements ITweaker |
656 | 684 | LiteLoaderTweaker.instance.onInit(); |
657 | 685 | LiteLoaderTweaker.instance.onPostInit(); |
658 | 686 | } |
687 | + | |
688 | + public static EnvironmentType getEnvironmentType() | |
689 | + { | |
690 | + return LiteLoaderTweaker.instance.bootstrap.getEnvironment().getType(); | |
691 | + } | |
659 | 692 | } |
660 | 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 | 76 | * </ul> |
77 | 77 | * |
78 | 78 | * @author Adam Mummery-Smith |
79 | + * @deprecated Use mixins instead! | |
79 | 80 | */ |
81 | +@Deprecated | |
80 | 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 | 42 | private static final List<Map<MethodNode, List<Event>>> proxyHandlerMethods = new ArrayList<Map<MethodNode, List<Event>>>(); |
43 | 43 | |
44 | 44 | private static int proxyInnerClassIndex = 1; |
45 | + | |
46 | + static | |
47 | + { | |
48 | + Event.resizeProxyList(); | |
49 | + } | |
45 | 50 | |
46 | 51 | /** |
47 | 52 | * The name of this event |
... | ... | @@ -657,16 +662,21 @@ public class Event implements Comparable<Event> |
657 | 662 | |
658 | 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 | 667 | ArrayList<Event> events = new ArrayList<Event>(); |
666 | 668 | Event.proxyHandlerMethods.get(Event.proxyInnerClassIndex).put(handlerMethod, events); |
667 | 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 | 680 | private static List<Event> getEventsForHandlerMethod(MethodNode handlerMethod) |
671 | 681 | { |
672 | 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 | 14 | * raw field/method names. |
15 | 15 | */ |
16 | 16 | private static boolean fmlDetected = false; |
17 | - | |
17 | + | |
18 | + private static boolean checkedObfEnv = false; | |
18 | 19 | private static boolean seargeNames = false; |
19 | 20 | |
20 | 21 | static |
21 | 22 | { |
22 | 23 | // Check for FML |
23 | 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 | 27 | public static boolean fmlIsPresent() |
... | ... | @@ -47,6 +36,28 @@ public class ObfuscationUtilities |
47 | 36 | |
48 | 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 | 63 | * Abstraction helper function |
... | ... | @@ -58,7 +69,7 @@ public class ObfuscationUtilities |
58 | 69 | public static String getObfuscatedFieldName(String fieldName, String obfuscatedFieldName, String seargeFieldName) |
59 | 70 | { |
60 | 71 | boolean deobfuscated = BlockPos.class.getSimpleName().equals("BlockPos"); |
61 | - return deobfuscated ? (ObfuscationUtilities.seargeNames ? seargeFieldName : fieldName) | |
72 | + return deobfuscated ? (ObfuscationUtilities.useSeargeNames() ? seargeFieldName : fieldName) | |
62 | 73 | : (ObfuscationUtilities.fmlDetected ? seargeFieldName : obfuscatedFieldName); |
63 | 74 | } |
64 | 75 | |
... | ... | @@ -71,6 +82,6 @@ public class ObfuscationUtilities |
71 | 82 | public static String getObfuscatedFieldName(Obf obf) |
72 | 83 | { |
73 | 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 | 3 | import java.lang.reflect.Field; |
4 | 4 | import java.lang.reflect.Modifier; |
5 | 5 | |
6 | -import net.minecraft.network.play.client.C15PacketClientSettings; | |
7 | - | |
8 | 6 | import com.mumfrey.liteloader.core.runtime.Obf; |
9 | 7 | |
10 | 8 | /** |
... | ... | @@ -124,9 +122,4 @@ public class PrivateFields<P, T> |
124 | 122 | |
125 | 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 | 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 | 15 | \ No newline at end of file | ... | ... |