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

Merge v7.41.2 into 1.20.1

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

View File

@ -11,7 +11,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@main
- uses: actions/stale@v9
with:
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.
@ -31,7 +31,9 @@ jobs:
- They have bugs or conflicts that won't be resolved
days-before-stale: 60
days-before-close: 7
exempt-issue-labels: "status:never-stale"
exempt-pr-labels: "status:never-stale"
stale-issue-label: "status:stale"
stale-pr-label: "status:stale"
operations-per-run: 50
operations-per-run: 200
enable-statistics: true

View File

@ -1,144 +1,147 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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.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.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.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.insert_inferred_type_arguments" value="false"/>
<setting id="cleanup.add_missing_override_annotations" value="true"/>
<setting id="cleanup.remove_unused_method_parameters" value="false"/>
<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.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.add_all" value="false"/>
<setting id="cleanup.convert_to_enhanced_for_loop" value="true"/>
<setting id="cleanup.single_used_field" 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.system_property_file_separator" value="true"/>
<setting id="cleanup.qualify_static_field_accesses_with_declaring_class" value="false"/>
<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.plain_replacement" value="true"/>
<setting id="cleanup.precompile_regex" value="true"/>
<setting id="cleanup.controlflow_merge" value="false"/>
<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.simplify_lambda_expression_and_method_ref" value="true"/>
<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.instanceof_keyword" value="false"/>
<setting id="cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true"/>
<setting id="cleanup.hash" 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.remove_trailing_whitespaces_all" value="true"/>
<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>
</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.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.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_before_string_concatenation" 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_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.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_additive_operator" value="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.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.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.alignment_for_shift_operator" value="0"/>
<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;
import java.util.List;
import java.util.ArrayList;
import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.item.ItemStack;
import net.minecraft.item.PotionItem;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtList;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionUtil;
import net.minecraft.potion.Potions;
import net.minecraft.registry.Registries;
import net.minecraft.util.Identifier;
import net.minecraft.util.InvalidIdentifierException;
@ -60,15 +60,18 @@ public final class PotionCmd extends Command
throw new CmdSyntaxError();
// get effects to start with
NbtList effects;
ArrayList<StatusEffectInstance> effects;
Potion potion;
switch(args[0].toLowerCase())
{
case "add":
effects = convertEffectsToNbt(stack);
effects = new ArrayList<>(PotionUtil.getCustomPotionEffects(stack));
potion = PotionUtil.getPotion(stack);
break;
case "set":
effects = new NbtList();
effects = new ArrayList<>();
potion = Potions.EMPTY;
break;
default:
@ -78,96 +81,75 @@ public final class PotionCmd extends Command
// add new effects
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]));
effect.putInt("Amplifier", parseInt(args[2 + i * 3]) - 1);
effect.putInt("Duration", parseInt(args[3 + i * 3]) * 20);
effects.add(effect);
effects.add(new StatusEffectInstance(effect, duration, amplifier));
}
NbtCompound nbt = new NbtCompound();
nbt.put("CustomPotionEffects", effects);
stack.setNbt(nbt);
PotionUtil.setPotion(stack, potion);
setCustomPotionEffects(stack, effects);
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
{
if(args.length != 2)
throw new CmdSyntaxError();
int id = parseEffectId(args[1]);
StatusEffect targetEffect = parseEffect(args[1]);
List<StatusEffectInstance> oldEffects =
PotionUtil.getCustomPotionEffects(stack);
Potion oldPotion = PotionUtil.getPotion(stack);
boolean mainPotionContainsTargetEffect = oldPotion.getEffects().stream()
.anyMatch(effect -> effect.getEffectType() == targetEffect);
NbtList newEffects = new NbtList();
for(StatusEffectInstance oldEffect : oldEffects)
{
int oldId = StatusEffect.getRawId(oldEffect.getEffectType());
if(oldId == id)
continue;
NbtCompound effect = new NbtCompound();
effect.putInt("Id", oldId);
effect.putInt("Amplifier", oldEffect.getAmplifier());
effect.putInt("Duration", oldEffect.getDuration());
newEffects.add(effect);
}
ArrayList<StatusEffectInstance> newEffects = new ArrayList<>();
if(mainPotionContainsTargetEffect)
PotionUtil.getPotionEffects(stack).forEach(newEffects::add);
else
PotionUtil.getCustomPotionEffects(stack).forEach(newEffects::add);
newEffects.removeIf(effect -> effect.getEffectType() == targetEffect);
NbtCompound nbt = new NbtCompound();
nbt.put("CustomPotionEffects", newEffects);
stack.setNbt(nbt);
Potion newPotion =
mainPotionContainsTargetEffect ? Potions.EMPTY : oldPotion;
PotionUtil.setPotion(stack, newPotion);
setCustomPotionEffects(stack, newEffects);
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))
id = Integer.parseInt(input);
effect = Registries.STATUS_EFFECT.get(Integer.parseInt(input));
else
try
{
Identifier identifier = new Identifier(input);
StatusEffect effect = Registries.STATUS_EFFECT.get(identifier);
id = StatusEffect.getRawId(effect);
effect = Registries.STATUS_EFFECT.get(identifier);
}catch(InvalidIdentifierException e)
{
throw new CmdSyntaxError("Invalid effect: " + input);
}
if(id < 1)
throw new CmdSyntaxError();
if(effect == null)
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

View File

@ -135,7 +135,17 @@ public final class AntiSpamHack extends Hack implements ChatInputListener
}
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)
{
ItemStack stack = tradeOffer.getSellItem();
if(!(stack.getItem() instanceof EnchantedBookItem book))
if(!(stack.getItem() instanceof EnchantedBookItem))
continue;
NbtList enchantmentNbt = EnchantedBookItem.getEnchantmentNbt(stack);

View File

@ -7,8 +7,6 @@
*/
package net.wurstclient.mixin;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
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.Maps;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.minecraft.InsecurePublicKeyException;
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
@ -35,6 +31,8 @@ import net.minecraft.client.MinecraftClient;
import net.minecraft.client.texture.PlayerSkinProvider;
import net.minecraft.util.Identifier;
import net.minecraft.util.Util;
import net.wurstclient.util.json.JsonUtils;
import net.wurstclient.util.json.WsonObject;
@Mixin(PlayerSkinProvider.class)
public abstract class PlayerSkinProviderMixin
@ -43,7 +41,7 @@ public abstract class PlayerSkinProviderMixin
@Final
private MinecraftSessionService sessionService;
private static JsonObject capes;
private static HashMap<String, String> capes;
@Inject(at = @At("HEAD"),
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)
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));
}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));
}
@ -140,12 +138,11 @@ public abstract class PlayerSkinProviderMixin
{
try
{
// TODO: download capes to file
URL url = new URL("https://www.wurstclient.net/api/v1/capes.json");
// download cape list from wurstclient.net
WsonObject rawCapes = JsonUtils.parseURLToObject(
"https://www.wurstclient.net/api/v1/capes.json");
capes =
JsonParser.parseReader(new InputStreamReader(url.openStream()))
.getAsJsonObject();
capes = rawCapes.getAllStrings();
}catch(Exception e)
{