0
0
mirror of https://github.com/Wurst-Imperium/Wurst7.git synced 2024-09-19 17:02:13 +02:00

Merge tag 'v7.41.2' into 1.20

This commit is contained in:
Alexander01998 2024-03-27 15:52:52 +01:00
commit 1be820df41
7 changed files with 209 additions and 212 deletions

View File

@ -11,7 +11,7 @@ jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@main - uses: actions/stale@v9
with: with:
stale-issue-message: | stale-issue-message: |
This issue has been open for a while with no recent activity. If this issue is still important to you, please add a comment within the next 7 days to keep it open. Otherwise, the issue will be automatically closed to free up time for other tasks. This issue has been open for a while with no recent activity. If this issue is still important to you, please add a comment within the next 7 days to keep it open. Otherwise, the issue will be automatically closed to free up time for other tasks.
@ -31,7 +31,9 @@ jobs:
- They have bugs or conflicts that won't be resolved - They have bugs or conflicts that won't be resolved
days-before-stale: 60 days-before-stale: 60
days-before-close: 7 days-before-close: 7
exempt-issue-labels: "status:never-stale"
exempt-pr-labels: "status:never-stale"
stale-issue-label: "status:stale" stale-issue-label: "status:stale"
stale-pr-label: "status:stale" stale-pr-label: "status:stale"
operations-per-run: 50 operations-per-run: 200
enable-statistics: true enable-statistics: true

View File

@ -1,144 +1,147 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="2"> <profiles version="2">
<profile kind="CleanUpProfile" name="Wurst-Imperium 2022-06" version="2"> <profile kind="CleanUpProfile" name="Wurst-Imperium" version="2">
<setting id="cleanup.array_with_curly" value="true"/>
<setting id="cleanup.use_autoboxing" value="true"/> <setting id="cleanup.use_autoboxing" value="true"/>
<setting id="cleanup.remove_redundant_semicolons" value="true"/>
<setting id="cleanup.system_property_file_separator" value="true"/>
<setting id="cleanup.objects_equals" value="true"/>
<setting id="cleanup.primitive_parsing" value="true"/>
<setting id="cleanup.remove_trailing_whitespaces" value="true"/>
<setting id="cleanup.remove_unused_private_fields" value="true"/>
<setting id="cleanup.try_with_resource" value="true"/>
<setting id="cleanup.system_property" value="false"/>
<setting id="cleanup.add_missing_nls_tags" value="false"/>
<setting id="cleanup.stringbuilder" value="false"/>
<setting id="cleanup.push_down_negation" value="false"/>
<setting id="cleanup.system_property_path_separator" value="true"/>
<setting id="cleanup.use_var" value="false"/>
<setting id="cleanup.use_blocks_only_for_return_and_throw" value="false"/>
<setting id="cleanup.convert_functional_interfaces" value="true"/>
<setting id="cleanup.make_type_abstract_if_missing_method" value="false"/>
<setting id="cleanup.remove_private_constructors" value="true"/>
<setting id="cleanup.evaluate_nullable" value="true"/>
<setting id="cleanup.strictly_equal_or_different" value="false"/>
<setting id="cleanup.system_property_boolean" value="true"/>
<setting id="cleanup.embedded_if" value="true"/>
<setting id="cleanup.join" value="true"/>
<setting id="cleanup.return_expression" value="false"/>
<setting id="cleanup.remove_unnecessary_casts" value="true"/>
<setting id="cleanup.redundant_falling_through_block_end" value="true"/>
<setting id="cleanup.overridden_assignment_move_decl" value="true"/> <setting id="cleanup.overridden_assignment_move_decl" value="true"/>
<setting id="cleanup.always_use_parentheses_in_expressions" value="false"/>
<setting id="cleanup.use_parentheses_in_expressions" value="true"/>
<setting id="cleanup.multi_catch" value="true"/>
<setting id="cleanup.if_condition" value="true"/>
<setting id="cleanup.comparison_statement" value="true"/>
<setting id="cleanup.use_this_for_non_static_method_access_only_if_necessary" value="true"/>
<setting id="cleanup.use_unboxing" value="true"/>
<setting id="cleanup.bitwise_conditional_expression" value="false"/>
<setting id="cleanup.remove_trailing_whitespaces_ignore_empty" value="false"/>
<setting id="cleanup.instanceof" value="false"/>
<setting id="cleanup.correct_indentation" value="true"/>
<setting id="cleanup.make_private_fields_final" value="true"/>
<setting id="cleanup.boolean_value_rather_than_comparison" value="true"/>
<setting id="cleanup.qualify_static_member_accesses_with_declaring_class" value="true"/>
<setting id="cleanup.no_string_creation" value="true"/>
<setting id="cleanup.add_missing_override_annotations_interface_methods" value="true"/>
<setting id="cleanup.substring" value="true"/>
<setting id="cleanup.lazy_logical_operator" value="false"/>
<setting id="cleanup.remove_unused_method_parameters" value="false"/>
<setting id="cleanup.valueof_rather_than_instantiation" value="true"/>
<setting id="cleanup.qualify_static_field_accesses_with_declaring_class" value="false"/>
<setting id="cleanup.pull_out_if_from_if_else" value="false"/>
<setting id="cleanup.use_anonymous_class_creation" value="false"/>
<setting id="cleanup.convert_to_enhanced_for_loop_if_loop_var_used" value="false"/>
<setting id="cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class" value="true"/>
<setting id="cleanup.break_loop" value="false"/>
<setting id="cleanup.useless_continue" value="true"/>
<setting id="cleanup.instanceof_keyword" value="false"/>
<setting id="cleanup.standard_comparison" value="false"/>
<setting id="cleanup.format_source_code" value="true"/>
<setting id="cleanup.remove_unused_imports" value="true"/>
<setting id="cleanup.use_lambda" value="true"/>
<setting id="cleanup.map_cloning" value="true"/>
<setting id="cleanup.no_super" value="true"/>
<setting id="cleanup.extract_increment" value="false"/>
<setting id="cleanup.always_use_this_for_non_static_field_access" value="false"/>
<setting id="cleanup.add_missing_annotations" value="true"/>
<setting id="cleanup.primitive_rather_than_wrapper" value="false"/>
<setting id="cleanup.remove_unnecessary_nls_tags" value="true"/>
<setting id="cleanup.remove_unused_private_methods" value="true"/>
<setting id="cleanup.primitive_serialization" value="true"/>
<setting id="cleanup.always_use_this_for_non_static_method_access" value="false"/> <setting id="cleanup.always_use_this_for_non_static_method_access" value="false"/>
<setting id="cleanup.qualify_static_member_accesses_through_instances_with_declaring_class" value="true"/> <setting id="cleanup.remove_trailing_whitespaces_ignore_empty" value="false"/>
<setting id="cleanup.primitive_comparison" value="true"/>
<setting id="cleanup.system_property_file_encoding" value="true"/>
<setting id="cleanup.format_source_code_changes_only" value="false"/>
<setting id="cleanup.remove_redundant_semicolons" value="true"/>
<setting id="cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class" value="true"/>
<setting id="cleanup.useless_continue" value="true"/>
<setting id="cleanup.remove_redundant_type_arguments" value="true"/>
<setting id="cleanup.remove_unused_imports" value="true"/>
<setting id="cleanup.break_loop" value="false"/>
<setting id="cleanup.pull_up_assignment" value="false"/>
<setting id="cleanup.stringbuilder" value="false"/>
<setting id="cleanup.no_super" value="true"/>
<setting id="cleanup.arrays_fill" value="true"/>
<setting id="cleanup.use_lambda" value="true"/>
<setting id="cleanup.operand_factorization" value="true"/>
<setting id="cleanup.simplify_lambda_expression_and_method_ref" value="true"/>
<setting id="cleanup.always_use_blocks" value="false"/>
<setting id="cleanup.stringconcat_to_textblock" value="false"/>
<setting id="cleanup.sort_members_all" value="false"/>
<setting id="cleanup.system_property_path_separator" value="true"/>
<setting id="cleanup.instanceof" value="false"/>
<setting id="cleanup.add_missing_annotations" value="true"/>
<setting id="cleanup.precompile_regex" value="true"/>
<setting id="cleanup.always_use_this_for_non_static_field_access" value="false"/>
<setting id="cleanup.boolean_literal" value="true"/>
<setting id="cleanup.always_use_parentheses_in_expressions" value="false"/>
<setting id="cleanup.sort_members" value="false"/> <setting id="cleanup.sort_members" value="false"/>
<setting id="cleanup.insert_inferred_type_arguments" value="false"/> <setting id="cleanup.remove_unused_method_parameters" value="false"/>
<setting id="cleanup.add_missing_override_annotations" value="true"/> <setting id="cleanup.remove_unused_local_variables" value="true"/>
<setting id="cleanup.add_missing_deprecated_annotations" value="true"/>
<setting id="cleanup.no_string_creation" value="true"/>
<setting id="cleanup.use_unboxing" value="true"/>
<setting id="cleanup.use_blocks_only_for_return_and_throw" value="false"/>
<setting id="cleanup.standard_comparison" value="false"/>
<setting id="cleanup.if_condition" value="true"/>
<setting id="cleanup.system_property_line_separator" value="true"/> <setting id="cleanup.system_property_line_separator" value="true"/>
<setting id="cleanup.static_inner_class" value="true"/> <setting id="cleanup.remove_trailing_whitespaces" value="true"/>
<setting id="cleanup.map_cloning" value="true"/>
<setting id="cleanup.add_serial_version_id" value="false"/>
<setting id="cleanup.try_with_resource" value="true"/>
<setting id="cleanup.use_this_for_non_static_method_access" value="true"/>
<setting id="cleanup.use_this_for_non_static_method_access_only_if_necessary" value="true"/>
<setting id="cleanup.single_used_field" value="false"/>
<setting id="cleanup.reduce_indentation" value="true"/>
<setting id="cleanup.primitive_parsing" value="true"/>
<setting id="cleanup.make_local_variable_final" value="false"/>
<setting id="cleanup.add_missing_methods" value="true"/>
<setting id="cleanup.qualify_static_member_accesses_with_declaring_class" value="true"/>
<setting id="cleanup.add_missing_override_annotations" value="true"/>
<setting id="cleanup.use_blocks" value="true"/>
<setting id="cleanup.multi_catch" value="true"/>
<setting id="cleanup.pull_out_if_from_if_else" value="false"/>
<setting id="cleanup.collection_cloning" value="true"/>
<setting id="cleanup.convert_to_enhanced_for_loop_if_loop_var_used" value="false"/>
<setting id="cleanup.make_variable_declarations_final" value="false"/>
<setting id="cleanup.redundant_comparator" value="true"/>
<setting id="cleanup.remove_unused_private_types" value="true"/>
<setting id="cleanup.system_property_boolean" value="true"/>
<setting id="cleanup.qualify_static_method_accesses_with_declaring_class" value="false"/>
<setting id="cleanup.organize_imports" value="true"/>
<setting id="cleanup.lazy_logical_operator" value="false"/>
<setting id="cleanup.bitwise_conditional_expression" value="false"/>
<setting id="cleanup.use_directly_map_method" value="true"/> <setting id="cleanup.use_directly_map_method" value="true"/>
<setting id="cleanup.add_all" value="false"/> <setting id="cleanup.add_all" value="false"/>
<setting id="cleanup.convert_to_enhanced_for_loop" value="true"/> <setting id="cleanup.system_property_file_separator" value="true"/>
<setting id="cleanup.single_used_field" value="false"/> <setting id="cleanup.qualify_static_field_accesses_with_declaring_class" value="false"/>
<setting id="cleanup.collection_cloning" value="true"/>
<setting id="cleanup.comparing_on_criteria" value="true"/>
<setting id="cleanup.stringbuffer_to_stringbuilder" value="false"/>
<setting id="cleanup.do_while_rather_than_while" value="true"/>
<setting id="cleanup.remove_unused_private_types" value="true"/>
<setting id="cleanup.make_variable_declarations_final" value="false"/>
<setting id="cleanup.merge_conditional_blocks" value="false"/>
<setting id="cleanup.never_use_parentheses_in_expressions" value="true"/>
<setting id="cleanup.use_blocks" value="true"/>
<setting id="cleanup.array_with_curly" value="true"/>
<setting id="cleanup.remove_unnecessary_array_creation" value="true"/>
<setting id="cleanup.add_missing_deprecated_annotations" value="true"/>
<setting id="cleanup.operand_factorization" value="true"/>
<setting id="cleanup.qualify_static_method_accesses_with_declaring_class" value="false"/>
<setting id="cleanup.remove_trailing_whitespaces_all" value="true"/>
<setting id="cleanup.convert_to_switch_expressions" value="false"/>
<setting id="cleanup.remove_redundant_type_arguments" value="true"/>
<setting id="cleanup.number_suffix" value="true"/>
<setting id="cleanup.redundant_comparator" value="true"/>
<setting id="cleanup.remove_unused_private_members" value="true"/>
<setting id="cleanup.never_use_blocks" value="true"/>
<setting id="cleanup.organize_imports" value="true"/>
<setting id="cleanup.switch" value="false"/>
<setting id="cleanup.stringbuilder_for_local_vars" value="true"/> <setting id="cleanup.stringbuilder_for_local_vars" value="true"/>
<setting id="cleanup.make_parameters_final" value="false"/>
<setting id="cleanup.ternary_operator" value="true"/>
<setting id="cleanup.controlflow_merge" value="false"/>
<setting id="cleanup.unreachable_block" value="false"/>
<setting id="cleanup.always_use_blocks" value="false"/>
<setting id="cleanup.add_serial_version_id" value="false"/>
<setting id="cleanup.stringconcat_to_textblock" value="false"/>
<setting id="cleanup.invert_equals" value="false"/>
<setting id="cleanup.use_string_is_blank" value="true"/>
<setting id="cleanup.remove_unused_local_variables" value="true"/>
<setting id="cleanup.remove_redundant_modifiers" value="false"/>
<setting id="cleanup.system_property_file_encoding" value="true"/>
<setting id="cleanup.sort_members_all" value="false"/>
<setting id="cleanup.double_negation" value="true"/>
<setting id="cleanup.format_source_code_changes_only" value="false"/>
<setting id="cleanup.arrays_fill" value="true"/>
<setting id="cleanup.add_generated_serial_version_id" value="true"/> <setting id="cleanup.add_generated_serial_version_id" value="true"/>
<setting id="cleanup.plain_replacement" value="true"/> <setting id="cleanup.controlflow_merge" value="false"/>
<setting id="cleanup.precompile_regex" value="true"/> <setting id="cleanup.primitive_serialization" value="true"/>
<setting id="cleanup.comparing_on_criteria" value="true"/>
<setting id="cleanup.do_while_rather_than_while" value="true"/>
<setting id="cleanup.comparison_statement" value="true"/>
<setting id="cleanup.extract_increment" value="false"/>
<setting id="cleanup.stringbuffer_to_stringbuilder" value="false"/>
<setting id="cleanup.insert_inferred_type_arguments" value="false"/>
<setting id="cleanup.make_private_fields_final" value="true"/>
<setting id="cleanup.useless_return" value="true"/> <setting id="cleanup.useless_return" value="true"/>
<setting id="cleanup.simplify_lambda_expression_and_method_ref" value="true"/> <setting id="cleanup.instanceof_keyword" value="false"/>
<setting id="cleanup.unlooped_while" value="true"/>
<setting id="cleanup.make_local_variable_final" value="false"/>
<setting id="cleanup.pull_up_assignment" value="false"/>
<setting id="cleanup.overridden_assignment" value="false"/>
<setting id="cleanup.else_if" value="true"/>
<setting id="cleanup.reduce_indentation" value="true"/>
<setting id="cleanup.use_this_for_non_static_method_access" value="true"/>
<setting id="cleanup.use_this_for_non_static_field_access" value="true"/>
<setting id="cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true"/> <setting id="cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true"/>
<setting id="cleanup.hash" value="true"/> <setting id="cleanup.remove_trailing_whitespaces_all" value="true"/>
<setting id="cleanup.boolean_literal" value="true"/>
<setting id="cleanup.add_default_serial_version_id" value="false"/>
<setting id="cleanup.add_missing_methods" value="true"/>
<setting id="cleanup.primitive_comparison" value="true"/>
<setting id="cleanup.one_if_rather_than_duplicate_blocks_that_fall_through" value="false"/> <setting id="cleanup.one_if_rather_than_duplicate_blocks_that_fall_through" value="false"/>
<setting id="cleanup.valueof_rather_than_instantiation" value="true"/>
<setting id="cleanup.plain_replacement" value="true"/>
<setting id="cleanup.remove_unnecessary_array_creation" value="true"/>
<setting id="cleanup.remove_private_constructors" value="true"/>
<setting id="cleanup.make_parameters_final" value="false"/>
<setting id="cleanup.substring" value="true"/>
<setting id="cleanup.ternary_operator" value="true"/>
<setting id="cleanup.replace_deprecated_calls" value="false"/>
<setting id="cleanup.merge_conditional_blocks" value="false"/>
<setting id="cleanup.return_expression" value="false"/>
<setting id="cleanup.system_property" value="false"/>
<setting id="cleanup.unlooped_while" value="true"/>
<setting id="cleanup.convert_to_enhanced_for_loop" value="true"/>
<setting id="cleanup.remove_unused_private_fields" value="true"/>
<setting id="cleanup.never_use_blocks" value="true"/>
<setting id="cleanup.remove_redundant_modifiers" value="false"/>
<setting id="cleanup.unreachable_block" value="false"/>
<setting id="cleanup.redundant_falling_through_block_end" value="true"/>
<setting id="cleanup.switch" value="false"/>
<setting id="cleanup.also_simplify_lambda" value="true"/>
<setting id="cleanup.number_suffix" value="true"/>
<setting id="cleanup.remove_unnecessary_nls_tags" value="true"/>
<setting id="cleanup.convert_to_switch_expressions" value="false"/>
<setting id="cleanup.use_this_for_non_static_field_access" value="true"/>
<setting id="cleanup.static_inner_class" value="true"/>
<setting id="cleanup.use_string_is_blank" value="true"/>
<setting id="cleanup.add_missing_nls_tags" value="false"/>
<setting id="cleanup.qualify_static_member_accesses_through_instances_with_declaring_class" value="true"/>
<setting id="cleanup.remove_unnecessary_casts" value="true"/>
<setting id="cleanup.objects_equals" value="true"/>
<setting id="cleanup.convert_functional_interfaces" value="true"/>
<setting id="cleanup.format_source_code" value="true"/>
<setting id="cleanup.else_if" value="true"/>
<setting id="cleanup.boolean_value_rather_than_comparison" value="true"/>
<setting id="cleanup.add_default_serial_version_id" value="false"/>
<setting id="cleanup.remove_unused_private_methods" value="true"/>
<setting id="cleanup.make_type_abstract_if_missing_method" value="false"/>
<setting id="cleanup.join" value="true"/>
<setting id="cleanup.embedded_if" value="true"/>
<setting id="cleanup.use_anonymous_class_creation" value="false"/>
<setting id="cleanup.invert_equals" value="false"/>
<setting id="cleanup.add_missing_override_annotations_interface_methods" value="true"/>
<setting id="cleanup.remove_unused_private_members" value="true"/>
<setting id="cleanup.strictly_equal_or_different" value="false"/>
<setting id="cleanup.never_use_parentheses_in_expressions" value="true"/>
<setting id="cleanup.push_down_negation" value="false"/>
<setting id="cleanup.evaluate_nullable" value="true"/>
<setting id="cleanup.use_parentheses_in_expressions" value="true"/>
<setting id="cleanup.hash" value="true"/>
<setting id="cleanup.stringconcat_stringbuffer_stringbuilder" value="false"/>
<setting id="cleanup.double_negation" value="true"/>
<setting id="cleanup.overridden_assignment" value="false"/>
<setting id="cleanup.primitive_rather_than_wrapper" value="false"/>
<setting id="cleanup.correct_indentation" value="true"/>
<setting id="cleanup.use_var" value="false"/>
</profile> </profile>
</profiles> </profiles>

View File

@ -200,6 +200,7 @@
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/> <setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/> <setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case_after_arrow" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
@ -280,6 +281,7 @@
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/> <setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
@ -310,6 +312,7 @@
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/> <setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="false"/> <setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/> <setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>

View File

@ -7,15 +7,15 @@
*/ */
package net.wurstclient.commands; package net.wurstclient.commands;
import java.util.List; import java.util.ArrayList;
import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.PotionItem; import net.minecraft.item.PotionItem;
import net.minecraft.nbt.NbtCompound; import net.minecraft.potion.Potion;
import net.minecraft.nbt.NbtList;
import net.minecraft.potion.PotionUtil; import net.minecraft.potion.PotionUtil;
import net.minecraft.potion.Potions;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.InvalidIdentifierException; import net.minecraft.util.InvalidIdentifierException;
@ -60,15 +60,18 @@ public final class PotionCmd extends Command
throw new CmdSyntaxError(); throw new CmdSyntaxError();
// get effects to start with // get effects to start with
NbtList effects; ArrayList<StatusEffectInstance> effects;
Potion potion;
switch(args[0].toLowerCase()) switch(args[0].toLowerCase())
{ {
case "add": case "add":
effects = convertEffectsToNbt(stack); effects = new ArrayList<>(PotionUtil.getCustomPotionEffects(stack));
potion = PotionUtil.getPotion(stack);
break; break;
case "set": case "set":
effects = new NbtList(); effects = new ArrayList<>();
potion = Potions.EMPTY;
break; break;
default: default:
@ -78,96 +81,75 @@ public final class PotionCmd extends Command
// add new effects // add new effects
for(int i = 0; i < (args.length - 1) / 3; i++) for(int i = 0; i < (args.length - 1) / 3; i++)
{ {
NbtCompound effect = new NbtCompound(); StatusEffect effect = parseEffect(args[1 + i * 3]);
int amplifier = parseInt(args[2 + i * 3]) - 1;
int duration = parseInt(args[3 + i * 3]) * 20;
effect.putInt("Id", parseEffectId(args[1 + i * 3])); effects.add(new StatusEffectInstance(effect, duration, amplifier));
effect.putInt("Amplifier", parseInt(args[2 + i * 3]) - 1);
effect.putInt("Duration", parseInt(args[3 + i * 3]) * 20);
effects.add(effect);
} }
NbtCompound nbt = new NbtCompound(); PotionUtil.setPotion(stack, potion);
nbt.put("CustomPotionEffects", effects); setCustomPotionEffects(stack, effects);
stack.setNbt(nbt);
ChatUtils.message("Potion modified."); ChatUtils.message("Potion modified.");
} }
private NbtList convertEffectsToNbt(ItemStack stack)
{
NbtList nbt = new NbtList();
List<StatusEffectInstance> effects =
PotionUtil.getCustomPotionEffects(stack);
for(StatusEffectInstance effect : effects)
{
NbtCompound tag = new NbtCompound();
int id = StatusEffect.getRawId(effect.getEffectType());
tag.putInt("Id", id);
tag.putInt("Amplifier", effect.getAmplifier());
tag.putInt("Duration", effect.getDuration());
nbt.add(tag);
}
return nbt;
}
private void remove(ItemStack stack, String[] args) throws CmdSyntaxError private void remove(ItemStack stack, String[] args) throws CmdSyntaxError
{ {
if(args.length != 2) if(args.length != 2)
throw new CmdSyntaxError(); throw new CmdSyntaxError();
int id = parseEffectId(args[1]); StatusEffect targetEffect = parseEffect(args[1]);
List<StatusEffectInstance> oldEffects = Potion oldPotion = PotionUtil.getPotion(stack);
PotionUtil.getCustomPotionEffects(stack); boolean mainPotionContainsTargetEffect = oldPotion.getEffects().stream()
.anyMatch(effect -> effect.getEffectType() == targetEffect);
NbtList newEffects = new NbtList(); ArrayList<StatusEffectInstance> newEffects = new ArrayList<>();
for(StatusEffectInstance oldEffect : oldEffects) if(mainPotionContainsTargetEffect)
{ PotionUtil.getPotionEffects(stack).forEach(newEffects::add);
int oldId = StatusEffect.getRawId(oldEffect.getEffectType()); else
PotionUtil.getCustomPotionEffects(stack).forEach(newEffects::add);
if(oldId == id) newEffects.removeIf(effect -> effect.getEffectType() == targetEffect);
continue;
NbtCompound effect = new NbtCompound();
effect.putInt("Id", oldId);
effect.putInt("Amplifier", oldEffect.getAmplifier());
effect.putInt("Duration", oldEffect.getDuration());
newEffects.add(effect);
}
NbtCompound nbt = new NbtCompound(); Potion newPotion =
nbt.put("CustomPotionEffects", newEffects); mainPotionContainsTargetEffect ? Potions.EMPTY : oldPotion;
stack.setNbt(nbt);
PotionUtil.setPotion(stack, newPotion);
setCustomPotionEffects(stack, newEffects);
ChatUtils.message("Effect removed."); ChatUtils.message("Effect removed.");
} }
private int parseEffectId(String input) throws CmdSyntaxError private StatusEffect parseEffect(String input) throws CmdSyntaxError
{ {
int id = 0; StatusEffect effect;
if(MathUtils.isInteger(input)) if(MathUtils.isInteger(input))
id = Integer.parseInt(input); effect = Registries.STATUS_EFFECT.get(Integer.parseInt(input));
else else
try try
{ {
Identifier identifier = new Identifier(input); Identifier identifier = new Identifier(input);
StatusEffect effect = Registries.STATUS_EFFECT.get(identifier); effect = Registries.STATUS_EFFECT.get(identifier);
id = StatusEffect.getRawId(effect);
}catch(InvalidIdentifierException e) }catch(InvalidIdentifierException e)
{ {
throw new CmdSyntaxError("Invalid effect: " + input); throw new CmdSyntaxError("Invalid effect: " + input);
} }
if(id < 1) if(effect == null)
throw new CmdSyntaxError(); throw new CmdSyntaxError("Invalid effect: " + input);
return id; return Registries.STATUS_EFFECT.getEntry(effect).value();
}
private void setCustomPotionEffects(ItemStack stack,
ArrayList<StatusEffectInstance> effects)
{
// PotionUtil doesn't remove effects when passing an empty list to it
if(effects.isEmpty())
stack.removeSubNbt("CustomPotionEffects");
else
PotionUtil.setCustomPotionEffects(stack, effects);
} }
private int parseInt(String s) throws CmdSyntaxError private int parseInt(String s) throws CmdSyntaxError

View File

@ -135,7 +135,17 @@ public final class AntiSpamHack extends Hack implements ChatInputListener
} }
if(spamCounter > 1) if(spamCounter > 1)
event.setComponent(((MutableText)event.getComponent()) {
.append(" [x" + spamCounter + "]")); // Someone, somewhere, is creating a MutableText object with an
// immutable List<Text> siblings parameter, which causes the game to
// crash when calling append(). So we always have to create a new
// MutableText object to avoid that.
MutableText oldText = (MutableText)event.getComponent();
MutableText newText = MutableText.of(oldText.getContent());
newText.setStyle(oldText.getStyle());
oldText.getSiblings().forEach(newText::append);
event.setComponent(newText.append(" [x" + spamCounter + "]"));
}
} }
} }

View File

@ -418,7 +418,7 @@ public final class AutoLibrarianHack extends Hack
for(TradeOffer tradeOffer : tradeOffers) for(TradeOffer tradeOffer : tradeOffers)
{ {
ItemStack stack = tradeOffer.getSellItem(); ItemStack stack = tradeOffer.getSellItem();
if(!(stack.getItem() instanceof EnchantedBookItem book)) if(!(stack.getItem() instanceof EnchantedBookItem))
continue; continue;
NbtList enchantmentNbt = EnchantedBookItem.getEnchantmentNbt(stack); NbtList enchantmentNbt = EnchantedBookItem.getEnchantmentNbt(stack);

View File

@ -7,8 +7,6 @@
*/ */
package net.wurstclient.mixin; package net.wurstclient.mixin;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -22,8 +20,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import com.mojang.authlib.minecraft.InsecurePublicKeyException; import com.mojang.authlib.minecraft.InsecurePublicKeyException;
import com.mojang.authlib.minecraft.MinecraftProfileTexture; import com.mojang.authlib.minecraft.MinecraftProfileTexture;
@ -35,6 +31,8 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.texture.PlayerSkinProvider; import net.minecraft.client.texture.PlayerSkinProvider;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.Util; import net.minecraft.util.Util;
import net.wurstclient.util.json.JsonUtils;
import net.wurstclient.util.json.WsonObject;
@Mixin(PlayerSkinProvider.class) @Mixin(PlayerSkinProvider.class)
public abstract class PlayerSkinProviderMixin public abstract class PlayerSkinProviderMixin
@ -43,7 +41,7 @@ public abstract class PlayerSkinProviderMixin
@Final @Final
private MinecraftSessionService sessionService; private MinecraftSessionService sessionService;
private static JsonObject capes; private static HashMap<String, String> capes;
@Inject(at = @At("HEAD"), @Inject(at = @At("HEAD"),
method = "loadSkin(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$SkinTextureAvailableCallback;Z)V", method = "loadSkin(Lcom/mojang/authlib/GameProfile;Lnet/minecraft/client/texture/PlayerSkinProvider$SkinTextureAvailableCallback;Z)V",
@ -116,14 +114,14 @@ public abstract class PlayerSkinProviderMixin
if(capes == null) if(capes == null)
setupWurstCapes(); setupWurstCapes();
if(capes.has(name)) if(capes.containsKey(name))
{ {
String capeURL = capes.get(name).getAsString(); String capeURL = capes.get(name);
map.put(Type.CAPE, new MinecraftProfileTexture(capeURL, null)); map.put(Type.CAPE, new MinecraftProfileTexture(capeURL, null));
}else if(capes.has(uuid)) }else if(capes.containsKey(uuid))
{ {
String capeURL = capes.get(uuid).getAsString(); String capeURL = capes.get(uuid);
map.put(Type.CAPE, new MinecraftProfileTexture(capeURL, null)); map.put(Type.CAPE, new MinecraftProfileTexture(capeURL, null));
} }
@ -140,12 +138,11 @@ public abstract class PlayerSkinProviderMixin
{ {
try try
{ {
// TODO: download capes to file // download cape list from wurstclient.net
URL url = new URL("https://www.wurstclient.net/api/v1/capes.json"); WsonObject rawCapes = JsonUtils.parseURLToObject(
"https://www.wurstclient.net/api/v1/capes.json");
capes = capes = rawCapes.getAllStrings();
JsonParser.parseReader(new InputStreamReader(url.openStream()))
.getAsJsonObject();
}catch(Exception e) }catch(Exception e)
{ {