senseiwells / EssentialClient

EssentialClient is a client side mod originally forked from Carpet Client for 1.15.2 that implements new client side features
MIT License
77 stars 14 forks source link

Just title it Feature Request: ... (sry bad joke) #105

Open pierrelasse opened 1 year ago

pierrelasse commented 1 year ago

Welcome to epic feature request!

Text/Drawing Utilities A way to draw text on the screen. Example:

  screen = Screen.get("ingame");
  screen.drawText("§a§nSome text", 1 (x), 100 (z));
  someText = screen.drawTextWithShadow("§aSome text", 1 (x), 100 (z));

  fun tick() {
    someText.setText("§7Players near you: §a" + Player.get().getWorld().getAllPlayers());
  }

Both of them don't work:

Java.valueOf(MinecraftClient.get()).textRenderer.draw("LOL", Java.floatOf(1), Java.floatOf(20), -1, true);
Java.valueOf(MinecraftClient.get()).textRenderer.draw("LOL", Java.floatOf(1), Java.floatOf(20), Java.intOf(-1), true, null, null, true, Java.intOf(-1), Java.intOf(-1));

Completions Get command completions

  command = Command.get("kit");
  completions = command.getTabCompletions();
  print("Available kits: " + completions.toString());

Config thing

configHandler.getConfig("Some Config").setDisplay(false); // Does not display it in a config screen

More events & SetVelocity "onEntityAttacks" maybe be a prroblem cuz serversidfe This event is fired when a entity attacks the player Cancellable: false

new GameEvent("onEntityAttacks", fun(entity) {
    if (entity.getId() == "player") {
      item = entity.getHeldItem();
      if (item.getMaterial() == "stick" && item.getEnchantments().contains("knockback")) { // never tested this line
        player.setVelocity(0, 0, 0); // Another feature request
      }
    }
});

Thing

list = ['a', 'b', 'c']
list.forEach((i) -> {
  print(i);
});

Another thing

print("Test: " + ("a" * 3)); // Output: Test: aaa

Text n stuff image Like in the image above some text stuff without needing to use .setStyle and .withClickEvent. Would be really cool!

Operator

("Hello" * 3) # Output: HelloHelloHello

Title

<player>.sendTitle("hello");
<player>.sendTitle("hello", 20 (time in ticks), 10 (fadein in ticks), 10 (fadeout in ticks));