├── .editorconfig
├── .github
└── workflows
│ └── gradle_build.yml
├── .gitignore
├── LICENSE.md
├── README.md
├── build.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── lib
├── lambda-3.1-api-source.jar
└── lambda-3.1-api.jar
├── setupWorkspace.sh
└── src
├── main
├── kotlin
│ └── com
│ │ └── lambda
│ │ ├── PacketFlightController.kt
│ │ └── modules
│ │ └── PacketFlight.kt
└── resources
│ └── plugin_info.json
└── test
└── kotlin
└── ClassTest.kt
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*]
2 | charset = utf-8
3 | end_of_line = lf
4 | indent_size = 4
5 | indent_style = space
6 | insert_final_newline = false
7 | max_line_length = 120
8 | tab_width = 4
9 | ij_continuation_indent_size = 8
10 | ij_formatter_off_tag = @formatter:off
11 | ij_formatter_on_tag = @formatter:on
12 | ij_formatter_tags_enabled = false
13 | ij_smart_tabs = false
14 | ij_visual_guides = none
15 | ij_wrap_on_typing = false
16 |
17 | [*.css]
18 | ij_css_align_closing_brace_with_properties = false
19 | ij_css_blank_lines_around_nested_selector = 1
20 | ij_css_blank_lines_between_blocks = 1
21 | ij_css_brace_placement = end_of_line
22 | ij_css_enforce_quotes_on_format = false
23 | ij_css_hex_color_long_format = false
24 | ij_css_hex_color_lower_case = false
25 | ij_css_hex_color_short_format = false
26 | ij_css_hex_color_upper_case = false
27 | ij_css_keep_blank_lines_in_code = 2
28 | ij_css_keep_indents_on_empty_lines = false
29 | ij_css_keep_single_line_blocks = false
30 | ij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
31 | ij_css_space_after_colon = true
32 | ij_css_space_before_opening_brace = true
33 | ij_css_use_double_quotes = true
34 | ij_css_value_alignment = do_not_align
35 |
36 | [*.java]
37 | ij_continuation_indent_size = 4
38 | ij_java_align_consecutive_assignments = false
39 | ij_java_align_consecutive_variable_declarations = false
40 | ij_java_align_group_field_declarations = false
41 | ij_java_align_multiline_annotation_parameters = false
42 | ij_java_align_multiline_array_initializer_expression = false
43 | ij_java_align_multiline_assignment = false
44 | ij_java_align_multiline_binary_operation = false
45 | ij_java_align_multiline_chained_methods = false
46 | ij_java_align_multiline_extends_list = false
47 | ij_java_align_multiline_for = true
48 | ij_java_align_multiline_method_parentheses = false
49 | ij_java_align_multiline_parameters = true
50 | ij_java_align_multiline_parameters_in_calls = false
51 | ij_java_align_multiline_parenthesized_expression = false
52 | ij_java_align_multiline_records = true
53 | ij_java_align_multiline_resources = true
54 | ij_java_align_multiline_ternary_operation = false
55 | ij_java_align_multiline_text_blocks = false
56 | ij_java_align_multiline_throws_list = false
57 | ij_java_align_subsequent_simple_methods = false
58 | ij_java_align_throws_keyword = false
59 | ij_java_annotation_parameter_wrap = off
60 | ij_java_array_initializer_new_line_after_left_brace = false
61 | ij_java_array_initializer_right_brace_on_new_line = false
62 | ij_java_array_initializer_wrap = off
63 | ij_java_assert_statement_colon_on_next_line = false
64 | ij_java_assert_statement_wrap = off
65 | ij_java_assignment_wrap = off
66 | ij_java_binary_operation_sign_on_next_line = false
67 | ij_java_binary_operation_wrap = off
68 | ij_java_blank_lines_after_anonymous_class_header = 0
69 | ij_java_blank_lines_after_class_header = 0
70 | ij_java_blank_lines_after_imports = 1
71 | ij_java_blank_lines_after_package = 1
72 | ij_java_blank_lines_around_class = 1
73 | ij_java_blank_lines_around_field = 0
74 | ij_java_blank_lines_around_field_in_interface = 0
75 | ij_java_blank_lines_around_initializer = 1
76 | ij_java_blank_lines_around_method = 1
77 | ij_java_blank_lines_around_method_in_interface = 1
78 | ij_java_blank_lines_before_class_end = 0
79 | ij_java_blank_lines_before_imports = 1
80 | ij_java_blank_lines_before_method_body = 0
81 | ij_java_blank_lines_before_package = 0
82 | ij_java_block_brace_style = end_of_line
83 | ij_java_block_comment_at_first_column = true
84 | ij_java_call_parameters_new_line_after_left_paren = false
85 | ij_java_call_parameters_right_paren_on_new_line = false
86 | ij_java_call_parameters_wrap = off
87 | ij_java_case_statement_on_separate_line = true
88 | ij_java_catch_on_new_line = false
89 | ij_java_class_annotation_wrap = split_into_lines
90 | ij_java_class_brace_style = end_of_line
91 | ij_java_class_count_to_use_import_on_demand = 5
92 | ij_java_class_names_in_javadoc = 1
93 | ij_java_do_not_indent_top_level_class_members = false
94 | ij_java_do_not_wrap_after_single_annotation = false
95 | ij_java_do_while_brace_force = never
96 | ij_java_doc_add_blank_line_after_description = true
97 | ij_java_doc_add_blank_line_after_param_comments = false
98 | ij_java_doc_add_blank_line_after_return = false
99 | ij_java_doc_add_p_tag_on_empty_lines = true
100 | ij_java_doc_align_exception_comments = true
101 | ij_java_doc_align_param_comments = true
102 | ij_java_doc_do_not_wrap_if_one_line = false
103 | ij_java_doc_enable_formatting = true
104 | ij_java_doc_enable_leading_asterisks = true
105 | ij_java_doc_indent_on_continuation = false
106 | ij_java_doc_keep_empty_lines = true
107 | ij_java_doc_keep_empty_parameter_tag = true
108 | ij_java_doc_keep_empty_return_tag = true
109 | ij_java_doc_keep_empty_throws_tag = true
110 | ij_java_doc_keep_invalid_tags = true
111 | ij_java_doc_param_description_on_new_line = false
112 | ij_java_doc_preserve_line_breaks = false
113 | ij_java_doc_use_throws_not_exception_tag = true
114 | ij_java_else_on_new_line = false
115 | ij_java_enum_constants_wrap = off
116 | ij_java_extends_keyword_wrap = off
117 | ij_java_extends_list_wrap = off
118 | ij_java_field_annotation_wrap = off
119 | ij_java_finally_on_new_line = false
120 | ij_java_for_brace_force = never
121 | ij_java_for_statement_new_line_after_left_paren = false
122 | ij_java_for_statement_right_paren_on_new_line = false
123 | ij_java_for_statement_wrap = off
124 | ij_java_generate_final_locals = false
125 | ij_java_generate_final_parameters = false
126 | ij_java_if_brace_force = never
127 | ij_java_imports_layout = *, |, javax.**, java.**, |, $*
128 | ij_java_indent_case_from_switch = true
129 | ij_java_insert_inner_class_imports = false
130 | ij_java_insert_override_annotation = true
131 | ij_java_keep_blank_lines_before_right_brace = 2
132 | ij_java_keep_blank_lines_between_package_declaration_and_header = 2
133 | ij_java_keep_blank_lines_in_code = 2
134 | ij_java_keep_blank_lines_in_declarations = 2
135 | ij_java_keep_control_statement_in_one_line = true
136 | ij_java_keep_first_column_comment = true
137 | ij_java_keep_indents_on_empty_lines = false
138 | ij_java_keep_line_breaks = true
139 | ij_java_keep_multiple_expressions_in_one_line = false
140 | ij_java_keep_simple_blocks_in_one_line = false
141 | ij_java_keep_simple_classes_in_one_line = false
142 | ij_java_keep_simple_lambdas_in_one_line = false
143 | ij_java_keep_simple_methods_in_one_line = false
144 | ij_java_label_indent_absolute = false
145 | ij_java_label_indent_size = 0
146 | ij_java_lambda_brace_style = end_of_line
147 | ij_java_layout_static_imports_separately = true
148 | ij_java_line_comment_add_space = false
149 | ij_java_line_comment_at_first_column = true
150 | ij_java_method_annotation_wrap = split_into_lines
151 | ij_java_method_brace_style = end_of_line
152 | ij_java_method_call_chain_wrap = off
153 | ij_java_method_parameters_new_line_after_left_paren = false
154 | ij_java_method_parameters_right_paren_on_new_line = false
155 | ij_java_method_parameters_wrap = off
156 | ij_java_modifier_list_wrap = false
157 | ij_java_names_count_to_use_import_on_demand = 3
158 | ij_java_new_line_after_lparen_in_record_header = false
159 | ij_java_packages_to_use_import_on_demand = java.awt.*, javax.swing.*
160 | ij_java_parameter_annotation_wrap = off
161 | ij_java_parentheses_expression_new_line_after_left_paren = false
162 | ij_java_parentheses_expression_right_paren_on_new_line = false
163 | ij_java_place_assignment_sign_on_next_line = false
164 | ij_java_prefer_longer_names = true
165 | ij_java_prefer_parameters_wrap = false
166 | ij_java_record_components_wrap = normal
167 | ij_java_repeat_synchronized = true
168 | ij_java_replace_instanceof_and_cast = false
169 | ij_java_replace_null_check = true
170 | ij_java_replace_sum_lambda_with_method_ref = true
171 | ij_java_resource_list_new_line_after_left_paren = false
172 | ij_java_resource_list_right_paren_on_new_line = false
173 | ij_java_resource_list_wrap = off
174 | ij_java_rparen_on_new_line_in_record_header = false
175 | ij_java_space_after_closing_angle_bracket_in_type_argument = false
176 | ij_java_space_after_colon = true
177 | ij_java_space_after_comma = true
178 | ij_java_space_after_comma_in_type_arguments = true
179 | ij_java_space_after_for_semicolon = true
180 | ij_java_space_after_quest = true
181 | ij_java_space_after_type_cast = true
182 | ij_java_space_before_annotation_array_initializer_left_brace = false
183 | ij_java_space_before_annotation_parameter_list = false
184 | ij_java_space_before_array_initializer_left_brace = false
185 | ij_java_space_before_catch_keyword = true
186 | ij_java_space_before_catch_left_brace = true
187 | ij_java_space_before_catch_parentheses = true
188 | ij_java_space_before_class_left_brace = true
189 | ij_java_space_before_colon = true
190 | ij_java_space_before_colon_in_foreach = true
191 | ij_java_space_before_comma = false
192 | ij_java_space_before_do_left_brace = true
193 | ij_java_space_before_else_keyword = true
194 | ij_java_space_before_else_left_brace = true
195 | ij_java_space_before_finally_keyword = true
196 | ij_java_space_before_finally_left_brace = true
197 | ij_java_space_before_for_left_brace = true
198 | ij_java_space_before_for_parentheses = true
199 | ij_java_space_before_for_semicolon = false
200 | ij_java_space_before_if_left_brace = true
201 | ij_java_space_before_if_parentheses = true
202 | ij_java_space_before_method_call_parentheses = false
203 | ij_java_space_before_method_left_brace = true
204 | ij_java_space_before_method_parentheses = false
205 | ij_java_space_before_opening_angle_bracket_in_type_parameter = false
206 | ij_java_space_before_quest = true
207 | ij_java_space_before_switch_left_brace = true
208 | ij_java_space_before_switch_parentheses = true
209 | ij_java_space_before_synchronized_left_brace = true
210 | ij_java_space_before_synchronized_parentheses = true
211 | ij_java_space_before_try_left_brace = true
212 | ij_java_space_before_try_parentheses = true
213 | ij_java_space_before_type_parameter_list = false
214 | ij_java_space_before_while_keyword = true
215 | ij_java_space_before_while_left_brace = true
216 | ij_java_space_before_while_parentheses = true
217 | ij_java_space_inside_one_line_enum_braces = false
218 | ij_java_space_within_empty_array_initializer_braces = false
219 | ij_java_space_within_empty_method_call_parentheses = false
220 | ij_java_space_within_empty_method_parentheses = false
221 | ij_java_spaces_around_additive_operators = true
222 | ij_java_spaces_around_assignment_operators = true
223 | ij_java_spaces_around_bitwise_operators = true
224 | ij_java_spaces_around_equality_operators = true
225 | ij_java_spaces_around_lambda_arrow = true
226 | ij_java_spaces_around_logical_operators = true
227 | ij_java_spaces_around_method_ref_dbl_colon = false
228 | ij_java_spaces_around_multiplicative_operators = true
229 | ij_java_spaces_around_relational_operators = true
230 | ij_java_spaces_around_shift_operators = true
231 | ij_java_spaces_around_type_bounds_in_type_parameters = true
232 | ij_java_spaces_around_unary_operator = false
233 | ij_java_spaces_within_angle_brackets = false
234 | ij_java_spaces_within_annotation_parentheses = false
235 | ij_java_spaces_within_array_initializer_braces = false
236 | ij_java_spaces_within_braces = false
237 | ij_java_spaces_within_brackets = false
238 | ij_java_spaces_within_cast_parentheses = false
239 | ij_java_spaces_within_catch_parentheses = false
240 | ij_java_spaces_within_for_parentheses = false
241 | ij_java_spaces_within_if_parentheses = false
242 | ij_java_spaces_within_method_call_parentheses = false
243 | ij_java_spaces_within_method_parentheses = false
244 | ij_java_spaces_within_parentheses = false
245 | ij_java_spaces_within_record_header = false
246 | ij_java_spaces_within_switch_parentheses = false
247 | ij_java_spaces_within_synchronized_parentheses = false
248 | ij_java_spaces_within_try_parentheses = false
249 | ij_java_spaces_within_while_parentheses = false
250 | ij_java_special_else_if_treatment = true
251 | ij_java_subclass_name_suffix = Impl
252 | ij_java_ternary_operation_signs_on_next_line = false
253 | ij_java_ternary_operation_wrap = off
254 | ij_java_test_name_suffix = Test
255 | ij_java_throws_keyword_wrap = off
256 | ij_java_throws_list_wrap = off
257 | ij_java_use_external_annotations = false
258 | ij_java_use_fq_class_names = false
259 | ij_java_use_relative_indents = false
260 | ij_java_use_single_class_imports = true
261 | ij_java_variable_annotation_wrap = off
262 | ij_java_visibility = public
263 | ij_java_while_brace_force = never
264 | ij_java_while_on_new_line = false
265 | ij_java_wrap_comments = false
266 | ij_java_wrap_first_method_in_call_chain = false
267 | ij_java_wrap_long_lines = false
268 |
269 | [*.nbtt]
270 | max_line_length = 150
271 | ij_continuation_indent_size = 4
272 | ij_nbtt_keep_indents_on_empty_lines = false
273 | ij_nbtt_space_after_colon = true
274 | ij_nbtt_space_after_comma = true
275 | ij_nbtt_space_before_colon = true
276 | ij_nbtt_space_before_comma = false
277 | ij_nbtt_spaces_within_brackets = false
278 | ij_nbtt_spaces_within_parentheses = false
279 |
280 | [*.properties]
281 | ij_properties_align_group_field_declarations = false
282 | ij_properties_keep_blank_lines = false
283 | ij_properties_key_value_delimiter = equals
284 | ij_properties_spaces_around_key_value_delimiter = false
285 |
286 | [*.sass]
287 | indent_size = 2
288 | ij_sass_align_closing_brace_with_properties = false
289 | ij_sass_blank_lines_around_nested_selector = 1
290 | ij_sass_blank_lines_between_blocks = 1
291 | ij_sass_brace_placement = 0
292 | ij_sass_enforce_quotes_on_format = false
293 | ij_sass_hex_color_long_format = false
294 | ij_sass_hex_color_lower_case = false
295 | ij_sass_hex_color_short_format = false
296 | ij_sass_hex_color_upper_case = false
297 | ij_sass_keep_blank_lines_in_code = 2
298 | ij_sass_keep_indents_on_empty_lines = false
299 | ij_sass_keep_single_line_blocks = false
300 | ij_sass_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
301 | ij_sass_space_after_colon = true
302 | ij_sass_space_before_opening_brace = true
303 | ij_sass_use_double_quotes = true
304 | ij_sass_value_alignment = 0
305 |
306 | [*.scss]
307 | indent_size = 2
308 | ij_scss_align_closing_brace_with_properties = false
309 | ij_scss_blank_lines_around_nested_selector = 1
310 | ij_scss_blank_lines_between_blocks = 1
311 | ij_scss_brace_placement = 0
312 | ij_scss_enforce_quotes_on_format = false
313 | ij_scss_hex_color_long_format = false
314 | ij_scss_hex_color_lower_case = false
315 | ij_scss_hex_color_short_format = false
316 | ij_scss_hex_color_upper_case = false
317 | ij_scss_keep_blank_lines_in_code = 2
318 | ij_scss_keep_indents_on_empty_lines = false
319 | ij_scss_keep_single_line_blocks = false
320 | ij_scss_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
321 | ij_scss_space_after_colon = true
322 | ij_scss_space_before_opening_brace = true
323 | ij_scss_use_double_quotes = true
324 | ij_scss_value_alignment = 0
325 |
326 | [*.styl]
327 | indent_size = 2
328 | ij_stylus_align_closing_brace_with_properties = false
329 | ij_stylus_blank_lines_around_nested_selector = 1
330 | ij_stylus_blank_lines_between_blocks = 1
331 | ij_stylus_brace_placement = 0
332 | ij_stylus_enforce_quotes_on_format = false
333 | ij_stylus_hex_color_long_format = false
334 | ij_stylus_hex_color_lower_case = false
335 | ij_stylus_hex_color_short_format = false
336 | ij_stylus_hex_color_upper_case = false
337 | ij_stylus_keep_blank_lines_in_code = 2
338 | ij_stylus_keep_indents_on_empty_lines = false
339 | ij_stylus_keep_single_line_blocks = false
340 | ij_stylus_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
341 | ij_stylus_space_after_colon = true
342 | ij_stylus_space_before_opening_brace = true
343 | ij_stylus_use_double_quotes = true
344 | ij_stylus_value_alignment = 0
345 |
346 | [.editorconfig]
347 | ij_editorconfig_align_group_field_declarations = false
348 | ij_editorconfig_space_after_colon = false
349 | ij_editorconfig_space_after_comma = true
350 | ij_editorconfig_space_before_colon = false
351 | ij_editorconfig_space_before_comma = false
352 | ij_editorconfig_spaces_around_assignment_operators = true
353 |
354 | [{*.ant, *.fxml, *.jhm, *.jnlp, *.jrxml, *.pom, *.rng, *.tld, *.wsdl, *.xml, *.xsd, *.xsl, *.xslt, *.xul}]
355 | ij_xml_align_attributes = true
356 | ij_xml_align_text = false
357 | ij_xml_attribute_wrap = normal
358 | ij_xml_block_comment_at_first_column = true
359 | ij_xml_keep_blank_lines = 2
360 | ij_xml_keep_indents_on_empty_lines = false
361 | ij_xml_keep_line_breaks = true
362 | ij_xml_keep_line_breaks_in_text = true
363 | ij_xml_keep_whitespaces = false
364 | ij_xml_keep_whitespaces_around_cdata = preserve
365 | ij_xml_keep_whitespaces_inside_cdata = false
366 | ij_xml_line_comment_at_first_column = true
367 | ij_xml_space_after_tag_name = false
368 | ij_xml_space_around_equals_in_attribute = false
369 | ij_xml_space_inside_empty_tag = false
370 | ij_xml_text_wrap = normal
371 |
372 | [{*.ats, *.ts}]
373 | ij_continuation_indent_size = 4
374 | ij_typescript_align_imports = false
375 | ij_typescript_align_multiline_array_initializer_expression = false
376 | ij_typescript_align_multiline_binary_operation = false
377 | ij_typescript_align_multiline_chained_methods = false
378 | ij_typescript_align_multiline_extends_list = false
379 | ij_typescript_align_multiline_for = true
380 | ij_typescript_align_multiline_parameters = true
381 | ij_typescript_align_multiline_parameters_in_calls = false
382 | ij_typescript_align_multiline_ternary_operation = false
383 | ij_typescript_align_object_properties = 0
384 | ij_typescript_align_union_types = false
385 | ij_typescript_align_var_statements = 0
386 | ij_typescript_array_initializer_new_line_after_left_brace = false
387 | ij_typescript_array_initializer_right_brace_on_new_line = false
388 | ij_typescript_array_initializer_wrap = off
389 | ij_typescript_assignment_wrap = off
390 | ij_typescript_binary_operation_sign_on_next_line = false
391 | ij_typescript_binary_operation_wrap = off
392 | ij_typescript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/**
393 | ij_typescript_blank_lines_after_imports = 1
394 | ij_typescript_blank_lines_around_class = 1
395 | ij_typescript_blank_lines_around_field = 0
396 | ij_typescript_blank_lines_around_field_in_interface = 0
397 | ij_typescript_blank_lines_around_function = 1
398 | ij_typescript_blank_lines_around_method = 1
399 | ij_typescript_blank_lines_around_method_in_interface = 1
400 | ij_typescript_block_brace_style = end_of_line
401 | ij_typescript_call_parameters_new_line_after_left_paren = false
402 | ij_typescript_call_parameters_right_paren_on_new_line = false
403 | ij_typescript_call_parameters_wrap = off
404 | ij_typescript_catch_on_new_line = false
405 | ij_typescript_chained_call_dot_on_new_line = true
406 | ij_typescript_class_brace_style = end_of_line
407 | ij_typescript_comma_on_new_line = false
408 | ij_typescript_do_while_brace_force = never
409 | ij_typescript_else_on_new_line = false
410 | ij_typescript_enforce_trailing_comma = keep
411 | ij_typescript_extends_keyword_wrap = off
412 | ij_typescript_extends_list_wrap = off
413 | ij_typescript_field_prefix = _
414 | ij_typescript_file_name_style = relaxed
415 | ij_typescript_finally_on_new_line = false
416 | ij_typescript_for_brace_force = never
417 | ij_typescript_for_statement_new_line_after_left_paren = false
418 | ij_typescript_for_statement_right_paren_on_new_line = false
419 | ij_typescript_for_statement_wrap = off
420 | ij_typescript_force_quote_style = false
421 | ij_typescript_force_semicolon_style = false
422 | ij_typescript_function_expression_brace_style = end_of_line
423 | ij_typescript_if_brace_force = never
424 | ij_typescript_import_merge_members = global
425 | ij_typescript_import_prefer_absolute_path = global
426 | ij_typescript_import_sort_members = true
427 | ij_typescript_import_sort_module_name = false
428 | ij_typescript_import_use_node_resolution = true
429 | ij_typescript_imports_wrap = on_every_item
430 | ij_typescript_indent_case_from_switch = true
431 | ij_typescript_indent_chained_calls = true
432 | ij_typescript_indent_package_children = 0
433 | ij_typescript_jsdoc_include_types = false
434 | ij_typescript_jsx_attribute_value = braces
435 | ij_typescript_keep_blank_lines_in_code = 2
436 | ij_typescript_keep_first_column_comment = true
437 | ij_typescript_keep_indents_on_empty_lines = false
438 | ij_typescript_keep_line_breaks = true
439 | ij_typescript_keep_simple_blocks_in_one_line = false
440 | ij_typescript_keep_simple_methods_in_one_line = false
441 | ij_typescript_line_comment_add_space = true
442 | ij_typescript_line_comment_at_first_column = false
443 | ij_typescript_method_brace_style = end_of_line
444 | ij_typescript_method_call_chain_wrap = off
445 | ij_typescript_method_parameters_new_line_after_left_paren = false
446 | ij_typescript_method_parameters_right_paren_on_new_line = false
447 | ij_typescript_method_parameters_wrap = off
448 | ij_typescript_object_literal_wrap = on_every_item
449 | ij_typescript_parentheses_expression_new_line_after_left_paren = false
450 | ij_typescript_parentheses_expression_right_paren_on_new_line = false
451 | ij_typescript_place_assignment_sign_on_next_line = false
452 | ij_typescript_prefer_as_type_cast = false
453 | ij_typescript_prefer_explicit_types_function_expression_returns = false
454 | ij_typescript_prefer_explicit_types_function_returns = false
455 | ij_typescript_prefer_explicit_types_vars_fields = false
456 | ij_typescript_prefer_parameters_wrap = false
457 | ij_typescript_reformat_c_style_comments = false
458 | ij_typescript_space_after_colon = true
459 | ij_typescript_space_after_comma = true
460 | ij_typescript_space_after_dots_in_rest_parameter = false
461 | ij_typescript_space_after_generator_mult = true
462 | ij_typescript_space_after_property_colon = true
463 | ij_typescript_space_after_quest = true
464 | ij_typescript_space_after_type_colon = true
465 | ij_typescript_space_after_unary_not = false
466 | ij_typescript_space_before_async_arrow_lparen = true
467 | ij_typescript_space_before_catch_keyword = true
468 | ij_typescript_space_before_catch_left_brace = true
469 | ij_typescript_space_before_catch_parentheses = true
470 | ij_typescript_space_before_class_lbrace = true
471 | ij_typescript_space_before_class_left_brace = true
472 | ij_typescript_space_before_colon = true
473 | ij_typescript_space_before_comma = false
474 | ij_typescript_space_before_do_left_brace = true
475 | ij_typescript_space_before_else_keyword = true
476 | ij_typescript_space_before_else_left_brace = true
477 | ij_typescript_space_before_finally_keyword = true
478 | ij_typescript_space_before_finally_left_brace = true
479 | ij_typescript_space_before_for_left_brace = true
480 | ij_typescript_space_before_for_parentheses = true
481 | ij_typescript_space_before_for_semicolon = false
482 | ij_typescript_space_before_function_left_parenth = true
483 | ij_typescript_space_before_generator_mult = false
484 | ij_typescript_space_before_if_left_brace = true
485 | ij_typescript_space_before_if_parentheses = true
486 | ij_typescript_space_before_method_call_parentheses = false
487 | ij_typescript_space_before_method_left_brace = true
488 | ij_typescript_space_before_method_parentheses = false
489 | ij_typescript_space_before_property_colon = false
490 | ij_typescript_space_before_quest = true
491 | ij_typescript_space_before_switch_left_brace = true
492 | ij_typescript_space_before_switch_parentheses = true
493 | ij_typescript_space_before_try_left_brace = true
494 | ij_typescript_space_before_type_colon = false
495 | ij_typescript_space_before_unary_not = false
496 | ij_typescript_space_before_while_keyword = true
497 | ij_typescript_space_before_while_left_brace = true
498 | ij_typescript_space_before_while_parentheses = true
499 | ij_typescript_spaces_around_additive_operators = true
500 | ij_typescript_spaces_around_arrow_function_operator = true
501 | ij_typescript_spaces_around_assignment_operators = true
502 | ij_typescript_spaces_around_bitwise_operators = true
503 | ij_typescript_spaces_around_equality_operators = true
504 | ij_typescript_spaces_around_logical_operators = true
505 | ij_typescript_spaces_around_multiplicative_operators = true
506 | ij_typescript_spaces_around_relational_operators = true
507 | ij_typescript_spaces_around_shift_operators = true
508 | ij_typescript_spaces_around_unary_operator = false
509 | ij_typescript_spaces_within_array_initializer_brackets = false
510 | ij_typescript_spaces_within_brackets = false
511 | ij_typescript_spaces_within_catch_parentheses = false
512 | ij_typescript_spaces_within_for_parentheses = false
513 | ij_typescript_spaces_within_if_parentheses = false
514 | ij_typescript_spaces_within_imports = false
515 | ij_typescript_spaces_within_interpolation_expressions = false
516 | ij_typescript_spaces_within_method_call_parentheses = false
517 | ij_typescript_spaces_within_method_parentheses = false
518 | ij_typescript_spaces_within_object_literal_braces = false
519 | ij_typescript_spaces_within_object_type_braces = true
520 | ij_typescript_spaces_within_parentheses = false
521 | ij_typescript_spaces_within_switch_parentheses = false
522 | ij_typescript_spaces_within_type_assertion = false
523 | ij_typescript_spaces_within_union_types = true
524 | ij_typescript_spaces_within_while_parentheses = false
525 | ij_typescript_special_else_if_treatment = true
526 | ij_typescript_ternary_operation_signs_on_next_line = false
527 | ij_typescript_ternary_operation_wrap = off
528 | ij_typescript_union_types_wrap = on_every_item
529 | ij_typescript_use_chained_calls_group_indents = false
530 | ij_typescript_use_double_quotes = true
531 | ij_typescript_use_explicit_js_extension = global
532 | ij_typescript_use_path_mapping = always
533 | ij_typescript_use_public_modifier = false
534 | ij_typescript_use_semicolon_after_statement = true
535 | ij_typescript_var_declaration_wrap = normal
536 | ij_typescript_while_brace_force = never
537 | ij_typescript_while_on_new_line = false
538 | ij_typescript_wrap_comments = false
539 |
540 | [{*.bash, *.sh, *.zsh}]
541 | indent_size = 2
542 | tab_width = 2
543 | ij_shell_binary_ops_start_line = false
544 | ij_shell_keep_column_alignment_padding = false
545 | ij_shell_minify_program = false
546 | ij_shell_redirect_followed_by_space = false
547 | ij_shell_switch_cases_indented = false
548 |
549 | [{*.cjs, *.js}]
550 | ij_continuation_indent_size = 4
551 | ij_javascript_align_imports = false
552 | ij_javascript_align_multiline_array_initializer_expression = false
553 | ij_javascript_align_multiline_binary_operation = false
554 | ij_javascript_align_multiline_chained_methods = false
555 | ij_javascript_align_multiline_extends_list = false
556 | ij_javascript_align_multiline_for = true
557 | ij_javascript_align_multiline_parameters = true
558 | ij_javascript_align_multiline_parameters_in_calls = false
559 | ij_javascript_align_multiline_ternary_operation = false
560 | ij_javascript_align_object_properties = 0
561 | ij_javascript_align_union_types = false
562 | ij_javascript_align_var_statements = 0
563 | ij_javascript_array_initializer_new_line_after_left_brace = false
564 | ij_javascript_array_initializer_right_brace_on_new_line = false
565 | ij_javascript_array_initializer_wrap = off
566 | ij_javascript_assignment_wrap = off
567 | ij_javascript_binary_operation_sign_on_next_line = false
568 | ij_javascript_binary_operation_wrap = off
569 | ij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/**
570 | ij_javascript_blank_lines_after_imports = 1
571 | ij_javascript_blank_lines_around_class = 1
572 | ij_javascript_blank_lines_around_field = 0
573 | ij_javascript_blank_lines_around_function = 1
574 | ij_javascript_blank_lines_around_method = 1
575 | ij_javascript_block_brace_style = end_of_line
576 | ij_javascript_call_parameters_new_line_after_left_paren = false
577 | ij_javascript_call_parameters_right_paren_on_new_line = false
578 | ij_javascript_call_parameters_wrap = off
579 | ij_javascript_catch_on_new_line = false
580 | ij_javascript_chained_call_dot_on_new_line = true
581 | ij_javascript_class_brace_style = end_of_line
582 | ij_javascript_comma_on_new_line = false
583 | ij_javascript_do_while_brace_force = never
584 | ij_javascript_else_on_new_line = false
585 | ij_javascript_enforce_trailing_comma = keep
586 | ij_javascript_extends_keyword_wrap = off
587 | ij_javascript_extends_list_wrap = off
588 | ij_javascript_field_prefix = _
589 | ij_javascript_file_name_style = relaxed
590 | ij_javascript_finally_on_new_line = false
591 | ij_javascript_for_brace_force = never
592 | ij_javascript_for_statement_new_line_after_left_paren = false
593 | ij_javascript_for_statement_right_paren_on_new_line = false
594 | ij_javascript_for_statement_wrap = off
595 | ij_javascript_force_quote_style = false
596 | ij_javascript_force_semicolon_style = false
597 | ij_javascript_function_expression_brace_style = end_of_line
598 | ij_javascript_if_brace_force = never
599 | ij_javascript_import_merge_members = global
600 | ij_javascript_import_prefer_absolute_path = global
601 | ij_javascript_import_sort_members = true
602 | ij_javascript_import_sort_module_name = false
603 | ij_javascript_import_use_node_resolution = true
604 | ij_javascript_imports_wrap = on_every_item
605 | ij_javascript_indent_case_from_switch = true
606 | ij_javascript_indent_chained_calls = true
607 | ij_javascript_indent_package_children = 0
608 | ij_javascript_jsx_attribute_value = braces
609 | ij_javascript_keep_blank_lines_in_code = 2
610 | ij_javascript_keep_first_column_comment = true
611 | ij_javascript_keep_indents_on_empty_lines = false
612 | ij_javascript_keep_line_breaks = true
613 | ij_javascript_keep_simple_blocks_in_one_line = false
614 | ij_javascript_keep_simple_methods_in_one_line = false
615 | ij_javascript_line_comment_add_space = true
616 | ij_javascript_line_comment_at_first_column = false
617 | ij_javascript_method_brace_style = end_of_line
618 | ij_javascript_method_call_chain_wrap = off
619 | ij_javascript_method_parameters_new_line_after_left_paren = false
620 | ij_javascript_method_parameters_right_paren_on_new_line = false
621 | ij_javascript_method_parameters_wrap = off
622 | ij_javascript_object_literal_wrap = on_every_item
623 | ij_javascript_parentheses_expression_new_line_after_left_paren = false
624 | ij_javascript_parentheses_expression_right_paren_on_new_line = false
625 | ij_javascript_place_assignment_sign_on_next_line = false
626 | ij_javascript_prefer_as_type_cast = false
627 | ij_javascript_prefer_explicit_types_function_expression_returns = false
628 | ij_javascript_prefer_explicit_types_function_returns = false
629 | ij_javascript_prefer_explicit_types_vars_fields = false
630 | ij_javascript_prefer_parameters_wrap = false
631 | ij_javascript_reformat_c_style_comments = false
632 | ij_javascript_space_after_colon = true
633 | ij_javascript_space_after_comma = true
634 | ij_javascript_space_after_dots_in_rest_parameter = false
635 | ij_javascript_space_after_generator_mult = true
636 | ij_javascript_space_after_property_colon = true
637 | ij_javascript_space_after_quest = true
638 | ij_javascript_space_after_type_colon = true
639 | ij_javascript_space_after_unary_not = false
640 | ij_javascript_space_before_async_arrow_lparen = true
641 | ij_javascript_space_before_catch_keyword = true
642 | ij_javascript_space_before_catch_left_brace = true
643 | ij_javascript_space_before_catch_parentheses = true
644 | ij_javascript_space_before_class_lbrace = true
645 | ij_javascript_space_before_class_left_brace = true
646 | ij_javascript_space_before_colon = true
647 | ij_javascript_space_before_comma = false
648 | ij_javascript_space_before_do_left_brace = true
649 | ij_javascript_space_before_else_keyword = true
650 | ij_javascript_space_before_else_left_brace = true
651 | ij_javascript_space_before_finally_keyword = true
652 | ij_javascript_space_before_finally_left_brace = true
653 | ij_javascript_space_before_for_left_brace = true
654 | ij_javascript_space_before_for_parentheses = true
655 | ij_javascript_space_before_for_semicolon = false
656 | ij_javascript_space_before_function_left_parenth = true
657 | ij_javascript_space_before_generator_mult = false
658 | ij_javascript_space_before_if_left_brace = true
659 | ij_javascript_space_before_if_parentheses = true
660 | ij_javascript_space_before_method_call_parentheses = false
661 | ij_javascript_space_before_method_left_brace = true
662 | ij_javascript_space_before_method_parentheses = false
663 | ij_javascript_space_before_property_colon = false
664 | ij_javascript_space_before_quest = true
665 | ij_javascript_space_before_switch_left_brace = true
666 | ij_javascript_space_before_switch_parentheses = true
667 | ij_javascript_space_before_try_left_brace = true
668 | ij_javascript_space_before_type_colon = false
669 | ij_javascript_space_before_unary_not = false
670 | ij_javascript_space_before_while_keyword = true
671 | ij_javascript_space_before_while_left_brace = true
672 | ij_javascript_space_before_while_parentheses = true
673 | ij_javascript_spaces_around_additive_operators = true
674 | ij_javascript_spaces_around_arrow_function_operator = true
675 | ij_javascript_spaces_around_assignment_operators = true
676 | ij_javascript_spaces_around_bitwise_operators = true
677 | ij_javascript_spaces_around_equality_operators = true
678 | ij_javascript_spaces_around_logical_operators = true
679 | ij_javascript_spaces_around_multiplicative_operators = true
680 | ij_javascript_spaces_around_relational_operators = true
681 | ij_javascript_spaces_around_shift_operators = true
682 | ij_javascript_spaces_around_unary_operator = false
683 | ij_javascript_spaces_within_array_initializer_brackets = false
684 | ij_javascript_spaces_within_brackets = false
685 | ij_javascript_spaces_within_catch_parentheses = false
686 | ij_javascript_spaces_within_for_parentheses = false
687 | ij_javascript_spaces_within_if_parentheses = false
688 | ij_javascript_spaces_within_imports = false
689 | ij_javascript_spaces_within_interpolation_expressions = false
690 | ij_javascript_spaces_within_method_call_parentheses = false
691 | ij_javascript_spaces_within_method_parentheses = false
692 | ij_javascript_spaces_within_object_literal_braces = false
693 | ij_javascript_spaces_within_object_type_braces = true
694 | ij_javascript_spaces_within_parentheses = false
695 | ij_javascript_spaces_within_switch_parentheses = false
696 | ij_javascript_spaces_within_type_assertion = false
697 | ij_javascript_spaces_within_union_types = true
698 | ij_javascript_spaces_within_while_parentheses = false
699 | ij_javascript_special_else_if_treatment = true
700 | ij_javascript_ternary_operation_signs_on_next_line = false
701 | ij_javascript_ternary_operation_wrap = off
702 | ij_javascript_union_types_wrap = on_every_item
703 | ij_javascript_use_chained_calls_group_indents = false
704 | ij_javascript_use_double_quotes = true
705 | ij_javascript_use_explicit_js_extension = global
706 | ij_javascript_use_path_mapping = always
707 | ij_javascript_use_public_modifier = false
708 | ij_javascript_use_semicolon_after_statement = true
709 | ij_javascript_var_declaration_wrap = normal
710 | ij_javascript_while_brace_force = never
711 | ij_javascript_while_on_new_line = false
712 | ij_javascript_wrap_comments = false
713 |
714 | [{*.comp, *.frag, *.fsh, *.geom, *.glsl, *.shader, *.tesc, *.tese, *.vert, *.vsh}]
715 | ij_glsl_keep_indents_on_empty_lines = false
716 |
717 | [{*.gant, *.gradle, *.groovy, *.gy}]
718 | ij_groovy_align_group_field_declarations = false
719 | ij_groovy_align_multiline_array_initializer_expression = false
720 | ij_groovy_align_multiline_assignment = false
721 | ij_groovy_align_multiline_binary_operation = false
722 | ij_groovy_align_multiline_chained_methods = false
723 | ij_groovy_align_multiline_extends_list = false
724 | ij_groovy_align_multiline_for = true
725 | ij_groovy_align_multiline_list_or_map = true
726 | ij_groovy_align_multiline_method_parentheses = false
727 | ij_groovy_align_multiline_parameters = true
728 | ij_groovy_align_multiline_parameters_in_calls = false
729 | ij_groovy_align_multiline_resources = true
730 | ij_groovy_align_multiline_ternary_operation = false
731 | ij_groovy_align_multiline_throws_list = false
732 | ij_groovy_align_named_args_in_map = true
733 | ij_groovy_align_throws_keyword = false
734 | ij_groovy_array_initializer_new_line_after_left_brace = false
735 | ij_groovy_array_initializer_right_brace_on_new_line = false
736 | ij_groovy_array_initializer_wrap = off
737 | ij_groovy_assert_statement_wrap = off
738 | ij_groovy_assignment_wrap = off
739 | ij_groovy_binary_operation_wrap = off
740 | ij_groovy_blank_lines_after_class_header = 0
741 | ij_groovy_blank_lines_after_imports = 1
742 | ij_groovy_blank_lines_after_package = 1
743 | ij_groovy_blank_lines_around_class = 1
744 | ij_groovy_blank_lines_around_field = 0
745 | ij_groovy_blank_lines_around_field_in_interface = 0
746 | ij_groovy_blank_lines_around_method = 1
747 | ij_groovy_blank_lines_around_method_in_interface = 1
748 | ij_groovy_blank_lines_before_imports = 1
749 | ij_groovy_blank_lines_before_method_body = 0
750 | ij_groovy_blank_lines_before_package = 0
751 | ij_groovy_block_brace_style = end_of_line
752 | ij_groovy_block_comment_at_first_column = true
753 | ij_groovy_call_parameters_new_line_after_left_paren = false
754 | ij_groovy_call_parameters_right_paren_on_new_line = false
755 | ij_groovy_call_parameters_wrap = off
756 | ij_groovy_catch_on_new_line = false
757 | ij_groovy_class_annotation_wrap = split_into_lines
758 | ij_groovy_class_brace_style = end_of_line
759 | ij_groovy_class_count_to_use_import_on_demand = 5
760 | ij_groovy_do_while_brace_force = never
761 | ij_groovy_else_on_new_line = false
762 | ij_groovy_enum_constants_wrap = off
763 | ij_groovy_extends_keyword_wrap = off
764 | ij_groovy_extends_list_wrap = off
765 | ij_groovy_field_annotation_wrap = split_into_lines
766 | ij_groovy_finally_on_new_line = false
767 | ij_groovy_for_brace_force = never
768 | ij_groovy_for_statement_new_line_after_left_paren = false
769 | ij_groovy_for_statement_right_paren_on_new_line = false
770 | ij_groovy_for_statement_wrap = off
771 | ij_groovy_if_brace_force = never
772 | ij_groovy_import_annotation_wrap = 2
773 | ij_groovy_imports_layout = *, |, javax.**, java.**, |, $*
774 | ij_groovy_indent_case_from_switch = true
775 | ij_groovy_indent_label_blocks = true
776 | ij_groovy_insert_inner_class_imports = false
777 | ij_groovy_keep_blank_lines_before_right_brace = 2
778 | ij_groovy_keep_blank_lines_in_code = 2
779 | ij_groovy_keep_blank_lines_in_declarations = 2
780 | ij_groovy_keep_control_statement_in_one_line = true
781 | ij_groovy_keep_first_column_comment = true
782 | ij_groovy_keep_indents_on_empty_lines = false
783 | ij_groovy_keep_line_breaks = true
784 | ij_groovy_keep_multiple_expressions_in_one_line = false
785 | ij_groovy_keep_simple_blocks_in_one_line = false
786 | ij_groovy_keep_simple_classes_in_one_line = true
787 | ij_groovy_keep_simple_lambdas_in_one_line = true
788 | ij_groovy_keep_simple_methods_in_one_line = true
789 | ij_groovy_label_indent_absolute = false
790 | ij_groovy_label_indent_size = 0
791 | ij_groovy_lambda_brace_style = end_of_line
792 | ij_groovy_layout_static_imports_separately = true
793 | ij_groovy_line_comment_add_space = false
794 | ij_groovy_line_comment_at_first_column = true
795 | ij_groovy_method_annotation_wrap = split_into_lines
796 | ij_groovy_method_brace_style = end_of_line
797 | ij_groovy_method_call_chain_wrap = off
798 | ij_groovy_method_parameters_new_line_after_left_paren = false
799 | ij_groovy_method_parameters_right_paren_on_new_line = false
800 | ij_groovy_method_parameters_wrap = off
801 | ij_groovy_modifier_list_wrap = false
802 | ij_groovy_names_count_to_use_import_on_demand = 3
803 | ij_groovy_parameter_annotation_wrap = off
804 | ij_groovy_parentheses_expression_new_line_after_left_paren = false
805 | ij_groovy_parentheses_expression_right_paren_on_new_line = false
806 | ij_groovy_prefer_parameters_wrap = false
807 | ij_groovy_resource_list_new_line_after_left_paren = false
808 | ij_groovy_resource_list_right_paren_on_new_line = false
809 | ij_groovy_resource_list_wrap = off
810 | ij_groovy_space_after_assert_separator = true
811 | ij_groovy_space_after_colon = true
812 | ij_groovy_space_after_comma = true
813 | ij_groovy_space_after_comma_in_type_arguments = true
814 | ij_groovy_space_after_for_semicolon = true
815 | ij_groovy_space_after_quest = true
816 | ij_groovy_space_after_type_cast = true
817 | ij_groovy_space_before_annotation_parameter_list = false
818 | ij_groovy_space_before_array_initializer_left_brace = false
819 | ij_groovy_space_before_assert_separator = false
820 | ij_groovy_space_before_catch_keyword = true
821 | ij_groovy_space_before_catch_left_brace = true
822 | ij_groovy_space_before_catch_parentheses = true
823 | ij_groovy_space_before_class_left_brace = true
824 | ij_groovy_space_before_closure_left_brace = true
825 | ij_groovy_space_before_colon = true
826 | ij_groovy_space_before_comma = false
827 | ij_groovy_space_before_do_left_brace = true
828 | ij_groovy_space_before_else_keyword = true
829 | ij_groovy_space_before_else_left_brace = true
830 | ij_groovy_space_before_finally_keyword = true
831 | ij_groovy_space_before_finally_left_brace = true
832 | ij_groovy_space_before_for_left_brace = true
833 | ij_groovy_space_before_for_parentheses = true
834 | ij_groovy_space_before_for_semicolon = false
835 | ij_groovy_space_before_if_left_brace = true
836 | ij_groovy_space_before_if_parentheses = true
837 | ij_groovy_space_before_method_call_parentheses = false
838 | ij_groovy_space_before_method_left_brace = true
839 | ij_groovy_space_before_method_parentheses = false
840 | ij_groovy_space_before_quest = true
841 | ij_groovy_space_before_switch_left_brace = true
842 | ij_groovy_space_before_switch_parentheses = true
843 | ij_groovy_space_before_synchronized_left_brace = true
844 | ij_groovy_space_before_synchronized_parentheses = true
845 | ij_groovy_space_before_try_left_brace = true
846 | ij_groovy_space_before_try_parentheses = true
847 | ij_groovy_space_before_while_keyword = true
848 | ij_groovy_space_before_while_left_brace = true
849 | ij_groovy_space_before_while_parentheses = true
850 | ij_groovy_space_in_named_argument = true
851 | ij_groovy_space_in_named_argument_before_colon = false
852 | ij_groovy_space_within_empty_array_initializer_braces = false
853 | ij_groovy_space_within_empty_method_call_parentheses = false
854 | ij_groovy_spaces_around_additive_operators = true
855 | ij_groovy_spaces_around_assignment_operators = true
856 | ij_groovy_spaces_around_bitwise_operators = true
857 | ij_groovy_spaces_around_equality_operators = true
858 | ij_groovy_spaces_around_lambda_arrow = true
859 | ij_groovy_spaces_around_logical_operators = true
860 | ij_groovy_spaces_around_multiplicative_operators = true
861 | ij_groovy_spaces_around_regex_operators = true
862 | ij_groovy_spaces_around_relational_operators = true
863 | ij_groovy_spaces_around_shift_operators = true
864 | ij_groovy_spaces_within_annotation_parentheses = false
865 | ij_groovy_spaces_within_array_initializer_braces = false
866 | ij_groovy_spaces_within_braces = true
867 | ij_groovy_spaces_within_brackets = false
868 | ij_groovy_spaces_within_cast_parentheses = false
869 | ij_groovy_spaces_within_catch_parentheses = false
870 | ij_groovy_spaces_within_for_parentheses = false
871 | ij_groovy_spaces_within_gstring_injection_braces = false
872 | ij_groovy_spaces_within_if_parentheses = false
873 | ij_groovy_spaces_within_list_or_map = false
874 | ij_groovy_spaces_within_method_call_parentheses = false
875 | ij_groovy_spaces_within_method_parentheses = false
876 | ij_groovy_spaces_within_parentheses = false
877 | ij_groovy_spaces_within_switch_parentheses = false
878 | ij_groovy_spaces_within_synchronized_parentheses = false
879 | ij_groovy_spaces_within_try_parentheses = false
880 | ij_groovy_spaces_within_tuple_expression = false
881 | ij_groovy_spaces_within_while_parentheses = false
882 | ij_groovy_special_else_if_treatment = true
883 | ij_groovy_ternary_operation_wrap = off
884 | ij_groovy_throws_keyword_wrap = off
885 | ij_groovy_throws_list_wrap = off
886 | ij_groovy_use_flying_geese_braces = false
887 | ij_groovy_use_fq_class_names = false
888 | ij_groovy_use_fq_class_names_in_javadoc = true
889 | ij_groovy_use_relative_indents = false
890 | ij_groovy_use_single_class_imports = true
891 | ij_groovy_variable_annotation_wrap = off
892 | ij_groovy_while_brace_force = never
893 | ij_groovy_while_on_new_line = false
894 | ij_groovy_wrap_long_lines = false
895 |
896 | [{*.gradle.kts, *.kt, *.kts, *.main.kts}]
897 | ij_continuation_indent_size = 4
898 | ij_kotlin_align_in_columns_case_branch = false
899 | ij_kotlin_align_multiline_binary_operation = false
900 | ij_kotlin_align_multiline_extends_list = false
901 | ij_kotlin_align_multiline_method_parentheses = false
902 | ij_kotlin_align_multiline_parameters = true
903 | ij_kotlin_align_multiline_parameters_in_calls = false
904 | ij_kotlin_allow_trailing_comma = false
905 | ij_kotlin_allow_trailing_comma_on_call_site = false
906 | ij_kotlin_assignment_wrap = off
907 | ij_kotlin_blank_lines_after_class_header = 0
908 | ij_kotlin_blank_lines_around_block_when_branches = 0
909 | ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
910 | ij_kotlin_block_comment_at_first_column = true
911 | ij_kotlin_call_parameters_new_line_after_left_paren = false
912 | ij_kotlin_call_parameters_right_paren_on_new_line = false
913 | ij_kotlin_call_parameters_wrap = off
914 | ij_kotlin_catch_on_new_line = false
915 | ij_kotlin_class_annotation_wrap = split_into_lines
916 | ij_kotlin_continuation_indent_for_chained_calls = true
917 | ij_kotlin_continuation_indent_for_expression_bodies = true
918 | ij_kotlin_continuation_indent_in_argument_lists = true
919 | ij_kotlin_continuation_indent_in_elvis = true
920 | ij_kotlin_continuation_indent_in_if_conditions = true
921 | ij_kotlin_continuation_indent_in_parameter_lists = true
922 | ij_kotlin_continuation_indent_in_supertype_lists = true
923 | ij_kotlin_else_on_new_line = false
924 | ij_kotlin_enum_constants_wrap = off
925 | ij_kotlin_extends_list_wrap = off
926 | ij_kotlin_field_annotation_wrap = off
927 | ij_kotlin_finally_on_new_line = false
928 | ij_kotlin_if_rparen_on_new_line = false
929 | ij_kotlin_import_nested_classes = false
930 | ij_kotlin_imports_layout = *, java.**, javax.**, kotlin.**, ^
931 | ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
932 | ij_kotlin_keep_blank_lines_before_right_brace = 2
933 | ij_kotlin_keep_blank_lines_in_code = 2
934 | ij_kotlin_keep_blank_lines_in_declarations = 2
935 | ij_kotlin_keep_first_column_comment = true
936 | ij_kotlin_keep_indents_on_empty_lines = false
937 | ij_kotlin_keep_line_breaks = true
938 | ij_kotlin_lbrace_on_next_line = false
939 | ij_kotlin_line_comment_add_space = false
940 | ij_kotlin_line_comment_at_first_column = true
941 | ij_kotlin_method_annotation_wrap = off
942 | ij_kotlin_method_call_chain_wrap = off
943 | ij_kotlin_method_parameters_new_line_after_left_paren = false
944 | ij_kotlin_method_parameters_right_paren_on_new_line = false
945 | ij_kotlin_method_parameters_wrap = off
946 | ij_kotlin_name_count_to_use_star_import = 5
947 | ij_kotlin_name_count_to_use_star_import_for_members = 3
948 | ij_kotlin_packages_to_use_import_on_demand = java.util.*, kotlinx.android.synthetic.**, io.ktor.**
949 | ij_kotlin_parameter_annotation_wrap = off
950 | ij_kotlin_space_after_comma = true
951 | ij_kotlin_space_after_extend_colon = true
952 | ij_kotlin_space_after_type_colon = true
953 | ij_kotlin_space_before_catch_parentheses = true
954 | ij_kotlin_space_before_comma = false
955 | ij_kotlin_space_before_extend_colon = true
956 | ij_kotlin_space_before_for_parentheses = true
957 | ij_kotlin_space_before_if_parentheses = true
958 | ij_kotlin_space_before_lambda_arrow = true
959 | ij_kotlin_space_before_type_colon = false
960 | ij_kotlin_space_before_when_parentheses = true
961 | ij_kotlin_space_before_while_parentheses = true
962 | ij_kotlin_spaces_around_additive_operators = true
963 | ij_kotlin_spaces_around_assignment_operators = true
964 | ij_kotlin_spaces_around_equality_operators = true
965 | ij_kotlin_spaces_around_function_type_arrow = true
966 | ij_kotlin_spaces_around_logical_operators = true
967 | ij_kotlin_spaces_around_multiplicative_operators = true
968 | ij_kotlin_spaces_around_range = false
969 | ij_kotlin_spaces_around_relational_operators = true
970 | ij_kotlin_spaces_around_unary_operator = false
971 | ij_kotlin_spaces_around_when_arrow = true
972 | ij_kotlin_variable_annotation_wrap = off
973 | ij_kotlin_while_on_new_line = false
974 | ij_kotlin_wrap_elvis_expressions = 1
975 | ij_kotlin_wrap_expression_body_functions = 0
976 | ij_kotlin_wrap_first_method_in_call_chain = false
977 |
978 | [{*.har, *.jsb2, *.jsb3, *.json, .babelrc, .eslintrc, .stylelintrc, bowerrc, jest.config, mcmod.info}]
979 | indent_size = 2
980 | ij_json_keep_blank_lines_in_code = 0
981 | ij_json_keep_indents_on_empty_lines = false
982 | ij_json_keep_line_breaks = true
983 | ij_json_space_after_colon = true
984 | ij_json_space_after_comma = true
985 | ij_json_space_before_colon = true
986 | ij_json_space_before_comma = false
987 | ij_json_spaces_within_braces = false
988 | ij_json_spaces_within_brackets = false
989 | ij_json_wrap_long_lines = false
990 |
991 | [{*.htm, *.html, *.sht, *.shtm, *.shtml}]
992 | ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3
993 | ij_html_align_attributes = true
994 | ij_html_align_text = false
995 | ij_html_attribute_wrap = normal
996 | ij_html_block_comment_at_first_column = true
997 | ij_html_do_not_align_children_of_min_lines = 0
998 | ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p
999 | ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot
1000 | ij_html_enforce_quotes = false
1001 | ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var
1002 | ij_html_keep_blank_lines = 2
1003 | ij_html_keep_indents_on_empty_lines = false
1004 | ij_html_keep_line_breaks = true
1005 | ij_html_keep_line_breaks_in_text = true
1006 | ij_html_keep_whitespaces = false
1007 | ij_html_keep_whitespaces_inside = span, pre, textarea
1008 | ij_html_line_comment_at_first_column = true
1009 | ij_html_new_line_after_last_attribute = never
1010 | ij_html_new_line_before_first_attribute = never
1011 | ij_html_quote_style = double
1012 | ij_html_remove_new_line_before_tags = br
1013 | ij_html_space_after_tag_name = false
1014 | ij_html_space_around_equality_in_attribute = false
1015 | ij_html_space_inside_empty_tag = false
1016 | ij_html_text_wrap = normal
1017 | ij_html_uniform_ident = false
1018 |
1019 | [{*.markdown, *.md}]
1020 | ij_markdown_force_one_space_after_blockquote_symbol = true
1021 | ij_markdown_force_one_space_after_header_symbol = true
1022 | ij_markdown_force_one_space_after_list_bullet = true
1023 | ij_markdown_force_one_space_between_words = true
1024 | ij_markdown_keep_indents_on_empty_lines = false
1025 | ij_markdown_max_lines_around_block_elements = 1
1026 | ij_markdown_max_lines_around_header = 1
1027 | ij_markdown_max_lines_between_paragraphs = 1
1028 | ij_markdown_min_lines_around_block_elements = 1
1029 | ij_markdown_min_lines_around_header = 1
1030 | ij_markdown_min_lines_between_paragraphs = 1
1031 |
1032 | [{*.yaml, *.yml}]
1033 | indent_size = 2
1034 | ij_yaml_keep_indents_on_empty_lines = false
1035 | ij_yaml_keep_line_breaks = true
1036 | ij_yaml_space_before_colon = true
1037 | ij_yaml_spaces_within_braces = true
1038 | ij_yaml_spaces_within_brackets = true
1039 |
--------------------------------------------------------------------------------
/.github/workflows/gradle_build.yml:
--------------------------------------------------------------------------------
1 | name: gradle_build
2 |
3 | on:
4 | push:
5 | pull_request:
6 | workflow_dispatch:
7 |
8 | jobs:
9 | build:
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Check out repository
13 | uses: actions/checkout@v2
14 |
15 | - name: Set up JDK
16 | uses: actions/setup-java@v1
17 | with:
18 | java-version: 1.8
19 |
20 | - name: Change wrapper permissions
21 | run: chmod +x ./gradlew
22 |
23 | - name: Gradle cache
24 | uses: actions/cache@v2
25 | with:
26 | path: |
27 | ~/.gradle/caches
28 | ~/.gradle/wrapper
29 | key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
30 | restore-keys: |
31 | ${{ runner.os }}-gradle-
32 |
33 | - name: Gradle build
34 | run: ./gradlew --build-cache build
35 |
36 | - name: Archive artifact
37 | uses: actions/upload-artifact@v2
38 | with:
39 | name: artifact
40 | path: build/libs
41 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.gitignore.io/api/linux,gradle,eclipse,windows,forgegradle,intellij+all,emacs,vim
2 |
3 | # Logs
4 | run/
5 | scripts/jar-shrink/log.txt
6 | logs/
7 |
8 | ### Eclipse ###
9 | .metadata
10 | bin/
11 | tmp/
12 | *.tmp
13 | *.bak
14 | *.swp
15 | *~.nib
16 | local.properties
17 | .settings/
18 | .loadpath
19 | .recommenders
20 | kami_Client.launch
21 | kami_Server.launch
22 | client_Client.launch
23 | client_Server.launch
24 | .classpath
25 | .project
26 |
27 | # External tool builders
28 | .externalToolBuilders/
29 |
30 | # Locally stored "Eclipse launch configurations"
31 | *.launch
32 |
33 | # PyDev specific (Python IDE for Eclipse)
34 | *.pydevproject
35 |
36 | # CDT-specific (C/C++ Development Tooling)
37 | .cproject
38 |
39 | # CDT- autotools
40 | .autotools
41 |
42 | # Java annotation processor (APT)
43 | .factorypath
44 |
45 | # PDT-specific (PHP Development Tools)
46 | .buildpath
47 |
48 | # sbteclipse plugin
49 | .target
50 |
51 | # Tern plugin
52 | .tern-project
53 |
54 | # TeXlipse plugin
55 | .texlipse
56 |
57 | # STS (Spring Tool Suite)
58 | .springBeans
59 |
60 | # Code Recommenders
61 | .recommenders/
62 |
63 | # Annotation Processing
64 | .apt_generated/
65 |
66 | # Scala IDE specific (Scala & Java development for Eclipse)
67 | .cache-main
68 | .scala_dependencies
69 | .worksheet
70 |
71 | ### Eclipse Patch ###
72 |
73 | # Annotation Processing
74 | .apt_generated
75 |
76 | ### Emacs ###
77 | # -*- mode: gitignore; -*-
78 | *~
79 | \#*\#
80 | /.emacs.desktop
81 | /.emacs.desktop.lock
82 | *.elc
83 | auto-save-list
84 | tramp
85 | .\#*
86 |
87 | # Org-mode
88 | .org-id-locations
89 | *_archive
90 |
91 | # flymake-mode
92 | *_flymake.*
93 |
94 | # eshell files
95 | /eshell/history
96 | /eshell/lastdir
97 |
98 | # elpa packages
99 | /elpa/
100 |
101 | # reftex files
102 | *.rel
103 |
104 | # AUCTeX auto folder
105 | /auto/
106 |
107 | # cask packages
108 | .cask/
109 | dist/
110 |
111 | # Flycheck
112 | flycheck_*.el
113 |
114 | # server auth directory
115 | /server/
116 |
117 | # projectiles files
118 | .projectile
119 |
120 | # directory configuration
121 | .dir-locals.el
122 |
123 | ### Intellij+all ###
124 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
125 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
126 |
127 | # User-specific stuff
128 | .idea/**/workspace.xml
129 | .idea/**/tasks.xml
130 | .idea/**/usage.statistics.xml
131 | .idea/**/dictionaries
132 | .idea/**/shelf
133 |
134 | # Sensitive or high-churn files
135 | .idea/**/dataSources/
136 | .idea/**/dataSources.ids
137 | .idea/**/dataSources.local.xml
138 | .idea/**/sqlDataSources.xml
139 | .idea/**/dynamic.xml
140 | .idea/**/uiDesigner.xml
141 | .idea/**/dbnavigator.xml
142 |
143 | # Gradle
144 | .idea/**/gradle.xml
145 | .idea/**/libraries
146 |
147 | # Building
148 | classes
149 |
150 | # Gradle and Maven with auto-import
151 | # When using Gradle or Maven with auto-import, you should exclude module files,
152 | # since they will be recreated, and may cause churn. Uncomment if using
153 | # auto-import.
154 | # .idea/modules.xml
155 | # .idea/*.iml
156 | # .idea/modules
157 |
158 | # CMake
159 | cmake-build-*/
160 |
161 | # Mongo Explorer plugin
162 | .idea/**/mongoSettings.xml
163 |
164 | # File-based project format
165 | *.iws
166 |
167 | # IntelliJ
168 | out/
169 |
170 | # mpeltonen/sbt-idea plugin
171 | .idea_modules/
172 |
173 | # JIRA plugin
174 | atlassian-ide-plugin.xml
175 |
176 | # Cursive Clojure plugin
177 | .idea/replstate.xml
178 |
179 | # Crashlytics plugin (for Android Studio and IntelliJ)
180 | com_crashlytics_export_strings.xml
181 | crashlytics.properties
182 | crashlytics-build.properties
183 | fabric.properties
184 |
185 | # Editor-based Rest Client
186 | .idea/httpRequests
187 |
188 | ### Intellij+all Patch ###
189 | # Ignores the whole .idea folder and all .iml files
190 | # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
191 |
192 | .idea/
193 |
194 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
195 |
196 | *.iml
197 | modules.xml
198 | .idea/misc.xml
199 | *.ipr
200 |
201 | ### Linux ###
202 |
203 | # temporary files which can be created if a process still has a handle open of a deleted file
204 | .fuse_hidden*
205 |
206 | # KDE directory preferences
207 | .directory
208 |
209 | # Linux trash folder which might appear on any partition or disk
210 | .Trash-*
211 |
212 | # .nfs files are created when an open file is removed but is still being accessed
213 | .nfs*
214 |
215 | ### Vim ###
216 | # Swap
217 | [._]*.s[a-v][a-z]
218 | [._]*.sw[a-p]
219 | [._]s[a-rt-v][a-z]
220 | [._]ss[a-gi-z]
221 | [._]sw[a-p]
222 |
223 | # Session
224 | Session.vim
225 |
226 | # Temporary
227 | .netrwhist
228 | # Auto-generated tag files
229 | tags
230 | # Persistent undo
231 | [._]*.un~
232 |
233 | ### Windows ###
234 | # Windows thumbnail cache files
235 | Thumbs.db
236 | ehthumbs.db
237 | ehthumbs_vista.db
238 |
239 | # Dump file
240 | *.stackdump
241 |
242 | # Folder config file
243 | [Dd]esktop.ini
244 |
245 | # Recycle Bin used on file shares
246 | $RECYCLE.BIN/
247 |
248 | # Windows Installer files
249 | *.cab
250 | *.msi
251 | *.msix
252 | *.msm
253 | *.msp
254 |
255 | # Windows shortcuts
256 | *.lnk
257 |
258 | ### Gradle ###
259 | .gradle
260 | /build/
261 |
262 | # Ignore Gradle GUI config
263 | gradle-app.setting
264 |
265 | # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
266 | !gradle-wrapper.jar
267 |
268 | # Cache of project
269 | .gradletasknamecache
270 |
271 | # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
272 | # gradle/wrapper/gradle-wrapper.properties
273 |
274 | # End of https://www.gitignore.io/api/linux,gradle,eclipse,windows,forgegradle,intellij+all,emacs,vim
275 | /target/
276 |
277 | # macOS system generate files
278 | .DS_Store
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 |
6 | Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
7 |
8 | This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.
9 |
10 | 0. Additional Definitions.
11 | As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License.
12 |
13 | “The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.
14 |
15 | An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
16 |
17 | A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.
18 |
19 | The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version.
20 |
21 | The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.
22 |
23 | 1. Exception to Section 3 of the GNU GPL.
24 | You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
25 |
26 | 2. Conveying Modified Versions.
27 | If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:
28 |
29 | a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or
30 | b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
31 | 3. Object Code Incorporating Material from Library Header Files.
32 | The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:
33 |
34 | a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
35 | b) Accompany the object code with a copy of the GNU GPL and this license document.
36 | 4. Combined Works.
37 | You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:
38 |
39 | a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
40 | b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
41 | c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
42 | d) Do one of the following:
43 | 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
44 | 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
45 | e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)
46 | 5. Combined Libraries.
47 | You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:
48 |
49 | a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.
50 | b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
51 | 6. Revised Versions of the GNU Lesser General Public License.
52 | The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
53 |
54 | Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation.
55 |
56 | If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.
57 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PacketFlight plugin for Lambda Client
2 | ##### Tested on 2b2tpvp
3 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | version project.modVersion
2 | group project.modGroup
3 |
4 | buildscript {
5 | repositories {
6 | maven { url = 'https://files.minecraftforge.net/maven' }
7 | maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
8 | }
9 |
10 | dependencies {
11 | classpath 'net.minecraftforge.gradle:ForgeGradle:5.+'
12 | classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
13 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
14 | }
15 | }
16 |
17 | apply plugin: 'idea'
18 | apply plugin: 'kotlin'
19 | apply plugin: 'net.minecraftforge.gradle'
20 | apply plugin: 'org.spongepowered.mixin'
21 |
22 | compileJava {
23 | sourceCompatibility = targetCompatibility = '1.8'
24 | options.encoding = 'UTF-8'
25 | }
26 |
27 | compileKotlin.kotlinOptions {
28 | freeCompilerArgs += '-Xlambdas=indy'
29 | freeCompilerArgs += '-Xopt-in=kotlin.RequiresOptIn'
30 | freeCompilerArgs += '-Xopt-in=kotlin.contracts.ExperimentalContracts'
31 | }
32 |
33 | repositories {
34 | maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
35 | maven { url = 'https://impactdevelopment.github.io/maven/' }
36 | maven { url = "https://jitpack.io" }
37 | mavenCentral()
38 | }
39 |
40 |
41 | minecraft {
42 | mappings channel: "$mappingsChannel", version: "$mappingsVersion"
43 |
44 | runs {
45 | client {
46 | workingDirectory project.file('run')
47 |
48 | property 'fml.coreMods.load', 'com.lambda.client.mixin.MixinLoaderForge'
49 | property 'mixin.env.disableRefMap', 'true' // Disable refmap so we don't get trolled by Baritone
50 |
51 | property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
52 | property 'forge.logging.console.level', 'debug'
53 | }
54 | }
55 | }
56 |
57 | configurations {
58 | jarLibs
59 | // Force choosing the correct nightly build because Mac OS chooses an invalid one
60 | all {
61 | resolutionStrategy {
62 | force 'org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209'
63 | }
64 | }
65 | }
66 |
67 | dependencies {
68 | minecraft "net.minecraftforge:forge:$minecraftVersion-$forgeVersion"
69 |
70 | // Online maven dependency coming soon
71 | implementation files("lib/lambda-3.1-api.jar")
72 |
73 | implementation('org.spongepowered:mixin:0.8.3') {
74 | exclude module: 'commons-io'
75 | exclude module: 'gson'
76 | exclude module: 'guava'
77 | exclude module: 'launchwrapper'
78 | exclude module: 'log4j-core' // we want to exclude this as well because 0.7.11 includes it too new for MC
79 | }
80 |
81 | // Hacky way to get mixin work
82 | annotationProcessor('org.spongepowered:mixin:0.8.3:processor') {
83 | exclude module: 'gson'
84 | }
85 |
86 | // Kotlin libs
87 | // kotlin-stdlib-common and annotations aren't required at runtime
88 | implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion") {
89 | exclude module: 'kotlin-stdlib-common'
90 | exclude module: 'annotations'
91 | }
92 |
93 | implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion") {
94 | exclude module: 'kotlin-stdlib-common'
95 | exclude module: 'annotations'
96 | }
97 |
98 | implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion") {
99 | exclude module: 'kotlin-stdlib-common'
100 | exclude module: 'annotations'
101 | }
102 |
103 | implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") {
104 | exclude module: 'kotlin-stdlib-common'
105 | exclude module: 'annotations'
106 | }
107 |
108 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion") {
109 | exclude module: 'kotlin-stdlib-common'
110 | exclude module: 'annotations'
111 | }
112 |
113 | // Add them back to compileOnly (provided)
114 | compileOnly "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion"
115 | compileOnly 'org.jetbrains:annotations:23.0.0'
116 |
117 | // This Baritone will NOT be included in the jar
118 | implementation 'com.github.cabaletta:baritone:1.2.14'
119 |
120 | // Unit Testing frameworks
121 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
122 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
123 |
124 | // Add your dependencies below
125 | // jarLibs 'com.lambda:example:1.0.0'
126 | }
127 |
128 | mixin {
129 | defaultObfuscationEnv 'searge'
130 | add sourceSets.main, 'mixins.ExamplePlugin.refmap.json'
131 | }
132 |
133 | processResources {
134 | exclude '**/rawimagefiles'
135 |
136 | from(sourceSets.main.resources.srcDirs) {
137 | duplicatesStrategy = DuplicatesStrategy.INCLUDE
138 | include 'plugin_info.json'
139 | expand 'version': project.version
140 | }
141 | }
142 |
143 | test {
144 | useJUnitPlatform()
145 | }
146 |
147 | jar.finalizedBy('reobfJar')
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx3G
2 | org.gradle.parallel=true
3 |
4 | modGroup=com.lambda
5 | modVersion=1.0
6 |
7 | minecraftVersion=1.12.2
8 | forgeVersion=14.23.5.2860
9 | mappingsChannel=stable
10 | mappingsVersion=39-1.12
11 |
12 | kotlinVersion=1.6.20
13 | kotlinxCoroutinesVersion=1.6.1
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Doogie13/LambdaPacketFlyPlugin/7c2971f5b4e2bfc6c9378b52fb904ed9a4d6a687/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 |
86 | # Determine the Java command to use to start the JVM.
87 | if [ -n "$JAVA_HOME" ] ; then
88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89 | # IBM's JDK on AIX uses strange locations for the executables
90 | JAVACMD="$JAVA_HOME/jre/sh/java"
91 | else
92 | JAVACMD="$JAVA_HOME/bin/java"
93 | fi
94 | if [ ! -x "$JAVACMD" ] ; then
95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96 |
97 | Please set the JAVA_HOME variable in your environment to match the
98 | location of your Java installation."
99 | fi
100 | else
101 | JAVACMD="java"
102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103 |
104 | Please set the JAVA_HOME variable in your environment to match the
105 | location of your Java installation."
106 | fi
107 |
108 | # Increase the maximum file descriptors if we can.
109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110 | MAX_FD_LIMIT=`ulimit -H -n`
111 | if [ $? -eq 0 ] ; then
112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113 | MAX_FD="$MAX_FD_LIMIT"
114 | fi
115 | ulimit -n $MAX_FD
116 | if [ $? -ne 0 ] ; then
117 | warn "Could not set maximum file descriptor limit: $MAX_FD"
118 | fi
119 | else
120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121 | fi
122 | fi
123 |
124 | # For Darwin, add options to specify how the application appears in the dock
125 | if $darwin; then
126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127 | fi
128 |
129 | # For Cygwin or MSYS, switch paths to Windows format before running java
130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133 |
134 | JAVACMD=`cygpath --unix "$JAVACMD"`
135 |
136 | # We build the pattern for arguments to be converted via cygpath
137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138 | SEP=""
139 | for dir in $ROOTDIRSRAW ; do
140 | ROOTDIRS="$ROOTDIRS$SEP$dir"
141 | SEP="|"
142 | done
143 | OURCYGPATTERN="(^($ROOTDIRS))"
144 | # Add a user-defined pattern to the cygpath arguments
145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147 | fi
148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
149 | i=0
150 | for arg in "$@" ; do
151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153 |
154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156 | else
157 | eval `echo args$i`="\"$arg\""
158 | fi
159 | i=`expr $i + 1`
160 | done
161 | case $i in
162 | 0) set -- ;;
163 | 1) set -- "$args0" ;;
164 | 2) set -- "$args0" "$args1" ;;
165 | 3) set -- "$args0" "$args1" "$args2" ;;
166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172 | esac
173 | fi
174 |
175 | # Escape application args
176 | save () {
177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178 | echo " "
179 | }
180 | APP_ARGS=`save "$@"`
181 |
182 | # Collect all arguments for the java command, following the shell quoting and substitution rules
183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184 |
185 | exec "$JAVACMD" "$@"
186 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if "%ERRORLEVEL%"=="0" goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 | exit /b 1
85 |
86 | :mainEnd
87 | if "%OS%"=="Windows_NT" endlocal
88 |
89 | :omega
90 |
--------------------------------------------------------------------------------
/lib/lambda-3.1-api-source.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Doogie13/LambdaPacketFlyPlugin/7c2971f5b4e2bfc6c9378b52fb904ed9a4d6a687/lib/lambda-3.1-api-source.jar
--------------------------------------------------------------------------------
/lib/lambda-3.1-api.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Doogie13/LambdaPacketFlyPlugin/7c2971f5b4e2bfc6c9378b52fb904ed9a4d6a687/lib/lambda-3.1-api.jar
--------------------------------------------------------------------------------
/setupWorkspace.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Used to setup workspace and fix building on unix / Git BASH
4 | #
5 | # Usage: "./setupWorkspace.sh"
6 |
7 | #
8 |
9 | # To allow use from outside the lambda directory
10 | cd "$(dirname "$0")" || exit
11 |
12 | echo "[$(date +"%H:%M:%S")] Running gradlew classes without daemon..."
13 | ./gradlew --no-daemon classes || {
14 | echo "[$(date +"%H:%M:%S")] ERROR: Running gradlew build failed! Run './gradlew --no-daemon classes' manually"
15 | exit 1
16 | }
17 |
18 | cat logo_ascii.txt 2>/dev/null
19 | echo "=========================================================================="
20 | echo ""
21 | echo "[$(date +"%H:%M:%S")] Build succeeded! All checks passed, you can build normally now! Welcome to Lambda."
22 | echo ""
23 | echo "=========================================================================="
24 |
--------------------------------------------------------------------------------
/src/main/kotlin/com/lambda/PacketFlightController.kt:
--------------------------------------------------------------------------------
1 | package com.lambda
2 |
3 | import com.lambda.client.plugin.api.Plugin
4 | import com.lambda.modules.PacketFlight
5 |
6 | internal object PacketFlightController : Plugin() {
7 |
8 | override fun onLoad() {
9 | // Load any modules, commands, or HUD elements here
10 | modules.add(PacketFlight)
11 | }
12 | }
--------------------------------------------------------------------------------
/src/main/kotlin/com/lambda/modules/PacketFlight.kt:
--------------------------------------------------------------------------------
1 | package com.lambda.modules
2 |
3 | import com.lambda.PacketFlightController
4 | import com.lambda.client.event.SafeClientEvent
5 | import com.lambda.client.event.events.PacketEvent
6 | import com.lambda.client.event.events.PlayerMoveEvent
7 | import com.lambda.client.mixin.extension.playerPosLookPitch
8 | import com.lambda.client.mixin.extension.playerPosLookYaw
9 | import com.lambda.client.module.Category
10 | import com.lambda.client.plugin.api.PluginModule
11 | import com.lambda.client.util.MovementUtils.calcMoveYaw
12 | import com.lambda.client.util.threads.safeListener
13 | import net.minecraft.client.gui.*
14 | import net.minecraft.client.multiplayer.GuiConnecting
15 | import net.minecraft.network.play.client.CPacketConfirmTeleport
16 | import net.minecraft.network.play.client.CPacketPlayer
17 | import net.minecraft.network.play.server.SPacketPlayerPosLook
18 | import net.minecraft.util.math.Vec3d
19 | import java.util.function.Supplier
20 | import kotlin.math.*
21 |
22 |
23 | /**
24 | * @author Doogie13
25 | * @since 30/05/2022
26 | */
27 | object PacketFlight : PluginModule(
28 | name = "PacketFlight",
29 | category = Category.MOVEMENT,
30 | description = "MOVES YOU",
31 | pluginMain = PacketFlightController
32 | ) {
33 |
34 | private val mode by setting("Mode", Mode.FACTOR)
35 | private val factor by setting("Factor", 1.0, 0.0..3.0, .1)
36 | private val conceal by setting("Conceal", false)
37 | private val timeOut by setting("Lag Back Timeout", 5, 0..50, 1)
38 | private val shouldAntiKick by setting("AntiKick", false)
39 |
40 | @Suppress("Unused")
41 | enum class Mode {
42 | FAST, FACTOR, SETBACK
43 | }
44 |
45 | private var allowed: ArrayList = ArrayList()
46 |
47 | // history of packets we are yet to respond to
48 | private var history: HashMap = HashMap()
49 |
50 | // base move speed
51 | private const val MOVE_SPEED = .2873
52 |
53 | // .0001 slower than server will check for
54 | private const val CONCEAL_SPEED = .0624
55 |
56 | private val walls: Supplier = Supplier { mc.world.collidesWithAnyBlock(mc.player.entityBoundingBox) }
57 |
58 | private val antiKick: Supplier = Supplier {
59 | shouldAntiKick &&
60 | !(mc.player.posY % 1 == 0.0 && mc.world.collidesWithAnyBlock(mc.player.entityBoundingBox.offset(0.0, -.01, 0.0))) && !walls.get()
61 | }
62 |
63 | private var tpID = -69
64 |
65 | private var timer = 0
66 |
67 | init {
68 |
69 | onEnable {
70 | allowed = ArrayList()
71 |
72 | tpID = -69
73 |
74 | history.clear()
75 | }
76 |
77 | onDisable {
78 | if (mc.player != null) {
79 | mc.player.connection.sendPacket(CPacketPlayer.Rotation(mc.player.rotationYaw, mc.player.rotationPitch, mc.player.onGround))
80 | mc.player.setVelocity(0.0, 0.0, 0.0)
81 | }
82 | }
83 |
84 | safeListener {
85 |
86 | if (mc.currentScreen is GuiMainMenu || mc.currentScreen is GuiDisconnected || mc.currentScreen is GuiConnecting || mc.currentScreen is GuiDownloadTerrain) {
87 | disable()
88 | return@safeListener
89 | }
90 |
91 | timer--
92 |
93 | // never apply speed when concealing due to the fact concealing is unrelated to anticheat move check
94 | var speed = if (conceal || walls.get() || timer > 0) CONCEAL_SPEED else MOVE_SPEED
95 |
96 | var thisFactor = floor(factor).toInt()
97 |
98 | if (mode == Mode.FACTOR) {
99 | if (mc.player.ticksExisted % 10 < 10 * (factor - floor(factor))) thisFactor++
100 | if (mc.player.moveStrafing == 0f && mc.player.moveForward == 0f) {
101 | if (!mc.gameSettings.keyBindJump.isKeyDown && !mc.gameSettings.keyBindSneak.isKeyDown) thisFactor = 1
102 | }
103 | } else thisFactor = 1
104 |
105 | var y = 0.0
106 |
107 | if (mc.gameSettings.keyBindJump.isKeyDown) {
108 | if (!walls.get()) {
109 | y = CONCEAL_SPEED
110 | speed = 0.0
111 | } else {
112 | // 0.707 is sqrt(2)/2
113 | speed = CONCEAL_SPEED * 0.707
114 | y = speed
115 | }
116 | } else if (mc.gameSettings.keyBindSneak.isKeyDown) {
117 | if (!walls.get()) {
118 | y = -CONCEAL_SPEED
119 | } else {
120 | y = -CONCEAL_SPEED * 0.707
121 | speed = CONCEAL_SPEED * 0.707
122 | }
123 | }
124 |
125 | val antiKicks = mc.player.ticksExisted % 40 == 0 && antiKick.get()
126 |
127 | if (hypot(speed, y) > .2873) {
128 | speed = sqrt(speed * speed - y * y)
129 | }
130 |
131 | sendPackets(speed, y, thisFactor, antiKicks)
132 |
133 | mc.player.noClip = true
134 |
135 | }
136 |
137 | safeListener { event ->
138 |
139 | if (event.packet is CPacketPlayer) {
140 | if (event.packet !is CPacketPlayer.Position) {
141 | event.cancel()
142 | return@safeListener
143 | }
144 | if (!allowed.contains(event.packet as CPacketPlayer.Position)) {
145 | event.cancel()
146 | } else {
147 | allowed.remove(event.packet as CPacketPlayer.Position)
148 | }
149 | }
150 |
151 | }
152 |
153 | safeListener { event ->
154 |
155 | if (event.packet is SPacketPlayerPosLook) {
156 |
157 | val packet = event.packet as SPacketPlayerPosLook
158 | val id = packet.teleportId
159 |
160 | if (history.containsKey(id)) {
161 |
162 | val vec : Vec3d = history[id] ?: return@safeListener
163 |
164 | if (vec.x == packet.x && vec.y == packet.y && vec.z == packet.z) {
165 |
166 | if (mode != Mode.SETBACK)
167 | event.cancel()
168 |
169 | history.remove(id)
170 |
171 | mc.player.connection.sendPacket(CPacketConfirmTeleport(id))
172 |
173 | return@safeListener
174 |
175 | }
176 |
177 | }
178 |
179 | packet.playerPosLookYaw = (mc.player.rotationYaw)
180 | packet.playerPosLookPitch = (mc.player.rotationPitch)
181 |
182 | mc.player.connection.sendPacket(CPacketConfirmTeleport(id))
183 |
184 | timer = timeOut
185 |
186 | tpID = id
187 |
188 | }
189 |
190 | }
191 |
192 | }
193 |
194 | private fun SafeClientEvent.sendPackets(speed: Double, y: Double, factor: Int, antiKicking: Boolean) {
195 |
196 | val yaw = calcMoveYaw()
197 | var motionX = -sin(yaw)
198 | var motionZ = cos(yaw)
199 |
200 | if (factor == 0) {
201 | mc.player.setVelocity(0.0, 0.0, 0.0)
202 | return
203 | }
204 |
205 | if (mc.player.moveForward == 0f && mc.player.moveStrafing == 0f) {
206 | motionX = .0
207 | motionZ = .0
208 | }
209 |
210 | for (currentFactor in 1 until factor + 1) {
211 | var thisY = y
212 |
213 | if (antiKicking) {
214 | thisY = -.04
215 | } else {
216 | thisY *= currentFactor
217 | }
218 |
219 | val moveVec = Vec3d(
220 | mc.player.posX + (motionX * speed * currentFactor),
221 | mc.player.posY + (thisY),
222 | mc.player.posZ + (motionZ * speed * currentFactor)
223 | )
224 |
225 | mc.player.setVelocity(moveVec.x - mc.player.posX, moveVec.y - mc.player.posY, moveVec.z - mc.player.posZ)
226 |
227 | val bounds = CPacketPlayer.Position(
228 | mc.player.posX,
229 | mc.player.posY - 1337,
230 | mc.player.posZ, true
231 | )
232 |
233 | val thisPacket = CPacketPlayer.Position(moveVec.x, moveVec.y, moveVec.z, true)
234 | allowed.add(thisPacket)
235 | mc.player.connection.sendPacket(thisPacket)
236 | allowed.add(bounds)
237 | mc.player.connection.sendPacket(bounds)
238 | history[++tpID] = moveVec
239 | mc.player.connection.sendPacket(CPacketConfirmTeleport(tpID))
240 | }
241 |
242 | }
243 |
244 | }
--------------------------------------------------------------------------------
/src/main/resources/plugin_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "PacketFlightModule",
3 | "version": "1.0",
4 | "description": "Added packetfly to rival future",
5 | "url": "https://github.com/Doogie13/LambdaPacketFlyPlugin",
6 | "authors": [ "Doogie13" ],
7 | "main_class": "com.lambda.PacketFlightController",
8 | "min_api_version": "3.0",
9 | "required_plugins": []
10 | }
--------------------------------------------------------------------------------
/src/test/kotlin/ClassTest.kt:
--------------------------------------------------------------------------------
1 | import org.junit.jupiter.api.Test
2 | import org.junit.jupiter.api.fail
3 | import com.google.gson.JsonParser
4 | import com.lambda.client.commons.utils.ClassUtils.instance
5 | import com.lambda.client.plugin.api.Plugin
6 |
7 | class ClassTest {
8 |
9 | @Test
10 | fun testPluginClass() {
11 | val gson = JsonParser()
12 |
13 | val pluginInfo = this.javaClass.classLoader.getResourceAsStream("plugin_info.json")
14 | ?: fail("plugin_info.json not found.")
15 |
16 | val pluginInfoJson = gson.parse(pluginInfo.reader()).asJsonObject.get("main_class")?.asString
17 | ?: fail("main_class key not found in plugin_info.json.")
18 |
19 | try {
20 | Class.forName(pluginInfoJson)
21 | } catch (e: ClassNotFoundException) {
22 | fail("Class $pluginInfoJson not found in the plugin classpath.")
23 | }
24 |
25 | if (Class.forName(pluginInfoJson).instance !is Plugin) {
26 | fail("Class $pluginInfoJson is not a subclass of Plugin.")
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------