Часть функционала 1.21 fabric подсказки для чата при .

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
16 Сен 2023
Сообщения
129
Реакции
6
Выберите загрузчик игры
  1. Fabric
хз насколько говнокод, но вот так вот:

код:
Expand Collapse Copy
import com.mojang.brigadier.context.StringRange;
import com.mojang.brigadier.suggestion.Suggestion;
import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;

@Mixin(ChatInputSuggestor.class)
public class CommandSuggestorMixin {

    [USER=8455]@Shadow[/USER] [USER=346354]@FINAL[/USER]
    TextFieldWidget textField;

    [USER=8455]@Shadow[/USER] private CompletableFuture<Suggestions> pendingSuggestions;

    @Inject(method = "refresh", at = @At("HEAD"), cancellable = true)
    private void onRefresh(CallbackInfo ci) {
        String text = textField.getText();
        
        if (text.startsWith(".")) {
            List<Suggestion> suggestions = new ArrayList<>();
            StringRange range = StringRange.at(text.length());
            
            if (text.equals(".")) {
                suggestions.add(new Suggestion(range, "gps off"));
                suggestions.add(new Suggestion(range, "gps <x> <z>"));
            }
            
            if (!suggestions.isEmpty()) {
                this.pendingSuggestions = CompletableFuture.completedFuture(
                    new Suggestions(range, suggestions)
                );
                ((ChatInputSuggestor)(Object)this).show(true);
                ci.cancel();
            }
        }
    }
}
1740055896977.png

кстати это 1 тема с fabric после очищения всего
 
хз насколько говнокод, но вот так вот:

код:
Expand Collapse Copy
import com.mojang.brigadier.context.StringRange;
import com.mojang.brigadier.suggestion.Suggestion;
import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;

@Mixin(ChatInputSuggestor.class)
public class CommandSuggestorMixin {

    [USER=8455]@Shadow[/USER] [USER=346354]@FINAL[/USER]
    TextFieldWidget textField;

    [USER=8455]@Shadow[/USER] private CompletableFuture<Suggestions> pendingSuggestions;

    @Inject(method = "refresh", at = @At("HEAD"), cancellable = true)
    private void onRefresh(CallbackInfo ci) {
        String text = textField.getText();
       
        if (text.startsWith(".")) {
            List<Suggestion> suggestions = new ArrayList<>();
            StringRange range = StringRange.at(text.length());
           
            if (text.equals(".")) {
                suggestions.add(new Suggestion(range, "gps off"));
                suggestions.add(new Suggestion(range, "gps <x> <z>"));
            }
           
            if (!suggestions.isEmpty()) {
                this.pendingSuggestions = CompletableFuture.completedFuture(
                    new Suggestions(range, suggestions)
                );
                ((ChatInputSuggestor)(Object)this).show(true);
                ci.cancel();
            }
        }
    }
}
Посмотреть вложение 299080
кстати это 1 тема с fabric после очищения всего
легко, но полезно
 
хз насколько говнокод, но вот так вот:

код:
Expand Collapse Copy
import com.mojang.brigadier.context.StringRange;
import com.mojang.brigadier.suggestion.Suggestion;
import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;

@Mixin(ChatInputSuggestor.class)
public class CommandSuggestorMixin {

    [USER=8455]@Shadow[/USER] [USER=346354]@FINAL[/USER]
    TextFieldWidget textField;

    [USER=8455]@Shadow[/USER] private CompletableFuture<Suggestions> pendingSuggestions;

    @Inject(method = "refresh", at = @At("HEAD"), cancellable = true)
    private void onRefresh(CallbackInfo ci) {
        String text = textField.getText();
       
        if (text.startsWith(".")) {
            List<Suggestion> suggestions = new ArrayList<>();
            StringRange range = StringRange.at(text.length());
           
            if (text.equals(".")) {
                suggestions.add(new Suggestion(range, "gps off"));
                suggestions.add(new Suggestion(range, "gps <x> <z>"));
            }
           
            if (!suggestions.isEmpty()) {
                this.pendingSuggestions = CompletableFuture.completedFuture(
                    new Suggestions(range, suggestions)
                );
                ((ChatInputSuggestor)(Object)this).show(true);
                ci.cancel();
            }
        }
    }
}
Посмотреть вложение 299080
кстати это 1 тема с fabric после очищения всего
не сложно делается но для пастеров на фабрике будет шикардос
 
хз насколько говнокод, но вот так вот:

код:
Expand Collapse Copy
import com.mojang.brigadier.context.StringRange;
import com.mojang.brigadier.suggestion.Suggestion;
import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;

@Mixin(ChatInputSuggestor.class)
public class CommandSuggestorMixin {

    [USER=8455]@Shadow[/USER] [USER=346354]@FINAL[/USER]
    TextFieldWidget textField;

    [USER=8455]@Shadow[/USER] private CompletableFuture<Suggestions> pendingSuggestions;

    @Inject(method = "refresh", at = @At("HEAD"), cancellable = true)
    private void onRefresh(CallbackInfo ci) {
        String text = textField.getText();
       
        if (text.startsWith(".")) {
            List<Suggestion> suggestions = new ArrayList<>();
            StringRange range = StringRange.at(text.length());
           
            if (text.equals(".")) {
                suggestions.add(new Suggestion(range, "gps off"));
                suggestions.add(new Suggestion(range, "gps <x> <z>"));
            }
           
            if (!suggestions.isEmpty()) {
                this.pendingSuggestions = CompletableFuture.completedFuture(
                    new Suggestions(range, suggestions)
                );
                ((ChatInputSuggestor)(Object)this).show(true);
                ci.cancel();
            }
        }
    }
}
Посмотреть вложение 299080
кстати это 1 тема с fabric после очищения всего
мне заплатили эвелон и рома не вообще так то годна
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
на мцп бы...
 
это бригадиром делается пиздец
 
хз насколько говнокод, но вот так вот:

код:
Expand Collapse Copy
import com.mojang.brigadier.context.StringRange;
import com.mojang.brigadier.suggestion.Suggestion;
import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;

@Mixin(ChatInputSuggestor.class)
public class CommandSuggestorMixin {

    [USER=8455]@Shadow[/USER] [USER=346354]@FINAL[/USER]
    TextFieldWidget textField;

    [USER=8455]@Shadow[/USER] private CompletableFuture<Suggestions> pendingSuggestions;

    @Inject(method = "refresh", at = @At("HEAD"), cancellable = true)
    private void onRefresh(CallbackInfo ci) {
        String text = textField.getText();
       
        if (text.startsWith(".")) {
            List<Suggestion> suggestions = new ArrayList<>();
            StringRange range = StringRange.at(text.length());
           
            if (text.equals(".")) {
                suggestions.add(new Suggestion(range, "gps off"));
                suggestions.add(new Suggestion(range, "gps <x> <z>"));
            }
           
            if (!suggestions.isEmpty()) {
                this.pendingSuggestions = CompletableFuture.completedFuture(
                    new Suggestions(range, suggestions)
                );
                ((ChatInputSuggestor)(Object)this).show(true);
                ci.cancel();
            }
        }
    }
}
Посмотреть вложение 299080
кстати это 1 тема с fabric после очищения всего
какая есть база на 1.21.1 фабрик?
 
п
хз насколько говнокод, но вот так вот:

код:
Expand Collapse Copy
import com.mojang.brigadier.context.StringRange;
import com.mojang.brigadier.suggestion.Suggestion;
import com.mojang.brigadier.suggestion.Suggestions;
import net.minecraft.client.gui.screen.ChatInputSuggestor;
import net.minecraft.client.gui.widget.TextFieldWidget;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;

@Mixin(ChatInputSuggestor.class)
public class CommandSuggestorMixin {

    [USER=8455]@Shadow[/USER] [USER=346354]@FINAL[/USER]
    TextFieldWidget textField;

    [USER=8455]@Shadow[/USER] private CompletableFuture<Suggestions> pendingSuggestions;

    @Inject(method = "refresh", at = @At("HEAD"), cancellable = true)
    private void onRefresh(CallbackInfo ci) {
        String text = textField.getText();
        
        if (text.startsWith(".")) {
            List<Suggestion> suggestions = new ArrayList<>();
            StringRange range = StringRange.at(text.length());
            
            if (text.equals(".")) {
                suggestions.add(new Suggestion(range, "gps off"));
                suggestions.add(new Suggestion(range, "gps <x> <z>"));
            }
            
            if (!suggestions.isEmpty()) {
                this.pendingSuggestions = CompletableFuture.completedFuture(
                    new Suggestions(range, suggestions)
                );
                ((ChatInputSuggestor)(Object)this).show(true);
                ci.cancel();
            }
        }
    }
}
Посмотреть вложение 299080
кстати это 1 тема с fabric после очищения всего
поч в экспе ошибок много как фикс
 
Назад
Сверху Снизу