This commit is contained in:
2
.github/workflows/ci_build.yml
vendored
2
.github/workflows/ci_build.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Build1.21
|
||||
name: Build
|
||||
|
||||
on: push
|
||||
|
||||
|
2
.idea/compiler.xml
generated
2
.idea/compiler.xml
generated
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="17" />
|
||||
<bytecodeTargetLevel target="21" />
|
||||
</component>
|
||||
</project>
|
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" project-jdk-name="liberica-21" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="liberica-21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
6
.idea/modules.xml
generated
6
.idea/modules.xml
generated
@ -2,14 +2,8 @@
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MCTools.main.iml" filepath="$PROJECT_DIR$/.idea/modules/MCTools.main.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MCTools.main~1.iml" filepath="$PROJECT_DIR$/.idea/modules/MCTools.main~1.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MCTools.test.iml" filepath="$PROJECT_DIR$/.idea/modules/MCTools.test.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MCTools.test~1.iml" filepath="$PROJECT_DIR$/.idea/modules/MCTools.test~1.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MinecraftProjects.MCTools.main.iml" filepath="$PROJECT_DIR$/.idea/modules/MinecraftProjects.MCTools.main.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/MinecraftProjects.MCTools.test.iml" filepath="$PROJECT_DIR$/.idea/modules/MinecraftProjects.MCTools.test.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/com.expvintl.MCTools.main.iml" filepath="$PROJECT_DIR$/.idea/modules/com.expvintl.MCTools.main.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/com.expvintl.MCTools.test.iml" filepath="$PROJECT_DIR$/.idea/modules/com.expvintl.MCTools.test.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
2
.idea/runConfigurations/Minecraft_Server.xml
generated
2
.idea/runConfigurations/Minecraft_Server.xml
generated
@ -12,5 +12,5 @@
|
||||
|
||||
</envs>
|
||||
<shortenClasspath name="ARGS_FILE"/>
|
||||
<classpathModifications><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.mojang\text2speech\1.17.9\3cad216e3a7f0c19b4b394388bc9ffc446f13b14\text2speech-1.17.9.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\29589b5f87ed335a6c7e7ee6a5775f81f97ecb84\lwjgl-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.26.0\659feffdd12280201c8aacb8f7be94f9a883c824\commons-compress-1.26.0.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\efa1eb78c5ccd840e9f329717109b5e892d72f8e\lwjgl-glfw-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.mojang\patchy\2.2.10\da05971b07cbb379d002cf7eaec6a2048211fefc\patchy-2.2.10.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\82d755ca94b102e9ca77283b9e2dc46d1b15fbe5\lwjgl-tinyfd-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.jcraft\jorbis\0.0.17\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\jorbis-0.0.17.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\25dd6161988d7e65f71d5065c99902402ee32746\lwjgl-stb-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\2f6b0147078396a58979125a4c947664e98293a\lwjgl-opengl-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\daada81ceb5fc0c291fbfdd4433cb8d9423577f2\lwjgl-openal-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.ibm.icu\icu4j\73.2\61ad4ef7f9131fcf6d25c34b817f90d6da06c9e9\icu4j-73.2.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.mojang\blocklist\1.0.10\5c685c5ffa94c4cd39496c7184c1d122e515ecef\blocklist-1.0.10.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\a0db6c84a8becc8ca05f9dbfa985edc348a824c7\lwjgl-freetype-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.16.0\4e3eb3d79888d76b54e28b350915b5dc3919c9de\commons-codec-1.16.0.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\b543467b7ff3c6920539a88ee602d34098628be5\lwjgl-jemalloc-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.2\4bfc12adfe4842bf07b657f0369c4cb522955686\commons-logging-1.2.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.13\e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada\httpclient-4.5.13.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.16\51cf043c87253c9f58b539c9f7e44c8894223850\httpcore-4.4.16.jar"/></classpathModifications></configuration>
|
||||
<classpathModifications><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-stb\3.3.3\25dd6161988d7e65f71d5065c99902402ee32746\lwjgl-stb-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-glfw\3.3.3\efa1eb78c5ccd840e9f329717109b5e892d72f8e\lwjgl-glfw-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.3.4\b9fc14968d63a8b8a8a2c1885fe3e90564239708\commons-logging-1.3.4.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.4.16\51cf043c87253c9f58b539c9f7e44c8894223850\httpcore-4.4.16.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.mojang\patchy\2.2.10\da05971b07cbb379d002cf7eaec6a2048211fefc\patchy-2.2.10.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.5.14\1194890e6f56ec29177673f2f12d0b8e627dec98\httpclient-4.5.14.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.mojang\text2speech\1.18.11\e853a12cdd6ba4f4836e8f4bf3b37844a13482b6\text2speech-1.18.11.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-jemalloc\3.3.3\b543467b7ff3c6920539a88ee602d34098628be5\lwjgl-jemalloc-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.17.1\973638b7149d333563584137ebf13a691bb60579\commons-codec-1.17.1.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-openal\3.3.3\daada81ceb5fc0c291fbfdd4433cb8d9423577f2\lwjgl-openal-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-tinyfd\3.3.3\82d755ca94b102e9ca77283b9e2dc46d1b15fbe5\lwjgl-tinyfd-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.ibm.icu\icu4j\76.1\215f3a8e936d4069344bd75f2b1368fd58112894\icu4j-76.1.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-opengl\3.3.3\2f6b0147078396a58979125a4c947664e98293a\lwjgl-opengl-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.27.1\a19151084758e2fbb6b41eddaa88e7b8ff4e6599\commons-compress-1.27.1.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\com.mojang\blocklist\1.0.10\5c685c5ffa94c4cd39496c7184c1d122e515ecef\blocklist-1.0.10.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl\3.3.3\29589b5f87ed335a6c7e7ee6a5775f81f97ecb84\lwjgl-3.3.3.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.jcraft\jorbis\0.0.17\8872d22b293e8f5d7d56ff92be966e6dc28ebdc6\jorbis-0.0.17.jar"/><entry exclude="true" path="C:\Users\expvintl\.gradle\caches\modules-2\files-2.1\org.lwjgl\lwjgl-freetype\3.3.3\a0db6c84a8becc8ca05f9dbfa985edc348a824c7\lwjgl-freetype-3.3.3.jar"/></classpathModifications></configuration>
|
||||
</component>
|
@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx2G
|
||||
|
||||
# Fabric Properties
|
||||
# check these on https://modmuss50.me/fabric.html
|
||||
minecraft_version=1.21
|
||||
yarn_mappings=1.21+build.9
|
||||
loader_version=0.16.0
|
||||
minecraft_version=1.21.5
|
||||
yarn_mappings=1.21.5+build.1
|
||||
loader_version=0.16.12
|
||||
|
||||
#Fabric api
|
||||
fabric_version=0.100.8+1.21
|
||||
fabric_version=0.119.9+1.21.5
|
||||
|
||||
# Mod Properties
|
||||
mod_version = 1.0
|
||||
|
@ -30,9 +30,9 @@ public class CAutoFishCommand {
|
||||
private static int execute(CommandContext<FabricClientCommandSource> context) {
|
||||
Globals.autoFish.set(context.getArgument("开关", Boolean.class));
|
||||
if(Globals.autoFish.get()){
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用自动钓鱼!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用自动钓鱼!"),false);
|
||||
}else{
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用自动钓鱼!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用自动钓鱼!"),false);
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
|
@ -28,9 +28,9 @@ public class CAutoRespawnCommand {
|
||||
private static int execute(CommandContext<FabricClientCommandSource> context) {
|
||||
Globals.autoRespawn.set(context.getArgument("开关", Boolean.class));
|
||||
if(Globals.autoRespawn.get()){
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用自动重生!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用自动重生!"),false);
|
||||
}else{
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用自动重生!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用自动重生!"),false);
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
|
@ -26,6 +26,8 @@ import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.*;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.argument;
|
||||
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal;
|
||||
|
||||
@ -41,9 +43,9 @@ public class CAutoToolCommand {
|
||||
private static int execute(CommandContext<FabricClientCommandSource> context) {
|
||||
Globals.autoTool.set(context.getArgument("开关", Boolean.class));
|
||||
if(Globals.autoTool.get()){
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用智能工具!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用智能工具!"),false);
|
||||
}else{
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用智能工具!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用智能工具!"),false);
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
@ -52,11 +54,12 @@ public class CAutoToolCommand {
|
||||
if(!Globals.autoTool.get()) return;
|
||||
MinecraftClient mc=MinecraftClient.getInstance();
|
||||
if (mc.world == null||mc.player==null) return;
|
||||
if (lastSlot!=-1){
|
||||
//破坏方块后切换回去
|
||||
mc.player.getInventory().selectedSlot=lastSlot;
|
||||
lastSlot=-1;
|
||||
}
|
||||
//TODO: 因bug禁用
|
||||
// if (lastSlot!=-1){
|
||||
// //破坏方块后切换回去
|
||||
// mc.player.getInventory().setSelectedSlot(lastSlot);
|
||||
// lastSlot=-1;
|
||||
// }
|
||||
}
|
||||
@Subscribe
|
||||
private void onAttackEntity(PlayerAttackEntityEvent event){
|
||||
@ -80,7 +83,7 @@ public class CAutoToolCommand {
|
||||
//低耐久测试
|
||||
if(!lowDurability(currentItem)) {
|
||||
//切换过去
|
||||
event.player.getInventory().selectedSlot = slot;
|
||||
event.player.getInventory().setSelectedSlot(slot);
|
||||
MinecraftClient mc=MinecraftClient.getInstance();
|
||||
if(mc.interactionManager!=null) {
|
||||
((ClientPlayerInteractionManagerAccessor) mc.interactionManager).syncSelectedSlot();
|
||||
@ -116,17 +119,27 @@ public class CAutoToolCommand {
|
||||
//确定已经选择好了工具就切换
|
||||
if(!lowDurability(currentItem)) {
|
||||
//记住上一次的槽方便恢复
|
||||
lastSlot=mc.player.getInventory().selectedSlot;
|
||||
lastSlot=mc.player.getInventory().getSelectedSlot();
|
||||
//切换过去
|
||||
mc.player.getInventory().selectedSlot = slot;
|
||||
mc.player.getInventory().setSelectedSlot(slot);
|
||||
if(mc.interactionManager!=null) {
|
||||
((ClientPlayerInteractionManagerAccessor) mc.interactionManager).syncSelectedSlot();
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean isSwordItem(Item item){
|
||||
return item==Items.STONE_SWORD||item==Items.DIAMOND_SWORD||item==Items.GOLDEN_SWORD||item==Items.IRON_SWORD||item==Items.NETHERITE_SWORD||item==Items.WOODEN_SWORD;
|
||||
}
|
||||
public boolean isToolItem(Item item){
|
||||
return item == Items.WOODEN_PICKAXE || item == Items.STONE_PICKAXE || item == Items.IRON_PICKAXE || item == Items.GOLDEN_PICKAXE || item == Items.DIAMOND_PICKAXE || item == Items.NETHERITE_PICKAXE
|
||||
|| item == Items.WOODEN_AXE || item == Items.STONE_AXE || item == Items.IRON_AXE || item == Items.GOLDEN_AXE || item == Items.DIAMOND_AXE || item == Items.NETHERITE_AXE
|
||||
|| item == Items.WOODEN_SHOVEL || item == Items.STONE_SHOVEL || item == Items.IRON_SHOVEL || item == Items.GOLDEN_SHOVEL || item == Items.DIAMOND_SHOVEL || item == Items.NETHERITE_SHOVEL
|
||||
|| item == Items.WOODEN_HOE || item == Items.STONE_HOE || item == Items.IRON_HOE || item == Items.GOLDEN_HOE || item == Items.DIAMOND_HOE || item == Items.NETHERITE_HOE
|
||||
|| item == Items.WOODEN_SWORD || item == Items.STONE_SWORD || item == Items.IRON_SWORD || item == Items.GOLDEN_SWORD || item == Items.DIAMOND_SWORD || item == Items.NETHERITE_SWORD;
|
||||
}
|
||||
public float getToolsScore(ItemStack item, BlockState state){
|
||||
float score=0;
|
||||
if(item.getItem() instanceof ToolItem || item.getItem() instanceof ShearsItem){
|
||||
if(isToolItem(item.getItem())||item.getItem() instanceof ShearsItem){
|
||||
//根据挖掘速度提升评分
|
||||
score+=item.getMiningSpeedMultiplier(state)*30;
|
||||
//附魔加分
|
||||
@ -136,10 +149,10 @@ public class CAutoToolCommand {
|
||||
score+=Utils.GetEnchantLevel(Enchantments.EFFICIENCY,item);
|
||||
//经验修补
|
||||
score+=Utils.GetEnchantLevel(Enchantments.MENDING,item);
|
||||
if (item.getItem() instanceof SwordItem item1 && (state.getBlock() instanceof BambooBlock|| state.getBlock() instanceof BambooShootBlock)) {
|
||||
if((item1.getComponents().get(DataComponentTypes.TOOL)!=null)){
|
||||
if (isSwordItem(item.getItem()) && (state.getBlock() instanceof BambooBlock|| state.getBlock() instanceof BambooShootBlock)) {
|
||||
if((item.getItem().getComponents().get(DataComponentTypes.TOOL)!=null)){
|
||||
//根据挖掘等级加分
|
||||
score += 90 + (item1.getComponents().get(DataComponentTypes.TOOL).getSpeed(state) * 10);
|
||||
score += 90 + (item.getItem().getComponents().get(DataComponentTypes.TOOL).getSpeed(state) * 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -149,10 +162,10 @@ public class CAutoToolCommand {
|
||||
float damageScore = 0;
|
||||
ItemStack item = player.getInventory().getStack(slot);
|
||||
//剑优先
|
||||
if(item.getItem() instanceof SwordItem) damageScore+=10;
|
||||
if(isSwordItem(item.getItem())) damageScore+=10;
|
||||
//使用所有工具组
|
||||
if (item.getItem() instanceof ToolItem tool) {
|
||||
damageScore += tool.getMaterial().getAttackDamage();
|
||||
if (isToolItem(item.getItem())) {
|
||||
damageScore += item.getDamage();
|
||||
//锋利加分
|
||||
damageScore += Utils.GetEnchantLevel(Enchantments.SHARPNESS, item) * 2;
|
||||
//精修
|
||||
|
@ -36,12 +36,12 @@ public class CFastDropCommand {
|
||||
for(Item i:trashItem){
|
||||
sb.append(i.getName().getString()).append(",");
|
||||
}
|
||||
context.getSource().getPlayer().sendMessage(Text.literal(sb.toString()));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal(sb.toString()),false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}))));
|
||||
dispatcher.register(literal("cfastdrop").then(literal("clear").executes((context -> {
|
||||
trashItem.clear();
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已清除全部物品!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已清除全部物品!"),false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}))));
|
||||
dispatcher.register(literal("cfastdrop").then(literal("del").then(argument("物品", ItemStackArgumentType.itemStack(access)).suggests(((context, builder) -> suggestItems(builder))).executes(cmd->{
|
||||
@ -49,12 +49,12 @@ public class CFastDropCommand {
|
||||
if (item != Items.AIR) { // 确保找到的物品是有效的
|
||||
if (trashItem.contains(item)) {
|
||||
trashItem.remove(item);
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("已移除 " + item.getName().getString()));
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("已移除 " + item.getName().getString()),false);
|
||||
}else{
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("没有找到 " + item.getName().getString()));
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("没有找到 " + item.getName().getString()),false);
|
||||
}
|
||||
}else{
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("无效物品!"));
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("无效物品!"),false);
|
||||
return 0;
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
@ -63,13 +63,13 @@ public class CFastDropCommand {
|
||||
Item item=ItemStackArgumentType.getItemStackArgument(cmd,"物品").getItem();
|
||||
if (item != Items.AIR) { // 确保找到的物品是有效的
|
||||
if(trashItem.contains(item)){
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal( item.getName().getString() + " 已存在!"));
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal( item.getName().getString() + " 已存在!"),false);
|
||||
}else {
|
||||
trashItem.add(item);
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("已添加 " + item.getName().getString() + " 到垃圾物品列表"));
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("已添加 " + item.getName().getString() + " 到垃圾物品列表"),false);
|
||||
}
|
||||
}else{
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("无效物品!"));
|
||||
cmd.getSource().getPlayer().sendMessage(Text.literal("无效物品!"),false);
|
||||
return 0;
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
@ -104,15 +104,15 @@ public class CFastDropCommand {
|
||||
return 0;
|
||||
}
|
||||
PlayerInventory inv=player.getInventory();
|
||||
for(int i=0;i<inv.main.size();i++) {
|
||||
ItemStack item = inv.main.get(i);
|
||||
for(int i=0;i<inv.size();i++) {
|
||||
ItemStack item = inv.getStack(i);
|
||||
for (Item trash : trashItem) {
|
||||
if (item.getItem() == trash) {
|
||||
PlayerUtils.DropItem(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
player.sendMessage(Text.literal("已丢弃无用物品!"));
|
||||
player.sendMessage(Text.literal("已丢弃无用物品!"),false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ public class CFullbirghtCommand{
|
||||
|
||||
private static int execute(CommandContext<FabricClientCommandSource> context) {
|
||||
((SimpleOptionAccessor)(Object)context.getSource().getClient().options.getGamma()).forceSetValue(32767.0);
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已应用高亮"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已应用高亮"),false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -31,9 +31,9 @@ public class CNoFallPacketCommand {
|
||||
private static int execute(CommandContext<FabricClientCommandSource> context) {
|
||||
Globals.noFallPacket.set(context.getArgument("开关", Boolean.class));
|
||||
if(Globals.noFallPacket.get()){
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用摔落伤害!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用摔落伤害!"),false);
|
||||
}else{
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用摔落伤害!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用摔落伤害!"),false);
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
@ -43,7 +43,7 @@ public class CNoFallPacketCommand {
|
||||
if(!(event.packet instanceof PlayerMoveC2SPacket)) return;
|
||||
//跳过创造
|
||||
if(Globals.noFallPacket.get()&& !mc.player.getAbilities().creativeMode){
|
||||
if(mc.player.isFallFlying()) return;
|
||||
if(mc.player.fallDistance<=mc.player.getSafeFallDistance()) return;
|
||||
if(mc.player.getVelocity().y> -0.5) return;
|
||||
//直接发送在地面的数据包来免伤
|
||||
((PlayerMoveC2SPacketAccessor)event.packet).setOnGround(true);
|
||||
|
@ -52,7 +52,7 @@ public class CQServerPluginsCommand {
|
||||
buf.append('[').append(s.getText()).append(']').append(' ');
|
||||
}
|
||||
if(MinecraftClient.getInstance().player!=null){
|
||||
MinecraftClient.getInstance().player.sendMessage(Text.literal(buf.toString()));
|
||||
MinecraftClient.getInstance().player.sendMessage(Text.literal(buf.toString()),false);
|
||||
}
|
||||
Globals.checkBukkitPlugins.set(false);
|
||||
//取消事件注册
|
||||
|
@ -22,9 +22,9 @@ public class CSafeWalkCommand {
|
||||
private static int execute(CommandContext<FabricClientCommandSource> context) {
|
||||
Globals.selfWalk.set(context.getArgument("开关", Boolean.class));
|
||||
if(Globals.selfWalk.get()){
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用自动挂边!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已启用自动挂边!"),false);
|
||||
}else{
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用自动挂边!"));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("已禁用自动挂边!"),false);
|
||||
}
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}
|
||||
|
@ -17,11 +17,7 @@ import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
||||
public class ChatHudMixin {
|
||||
@ModifyReceiver(method = "render",at=@At(value = "INVOKE",target = "Lnet/minecraft/client/gui/DrawContext;drawTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/OrderedText;III)I"))
|
||||
private DrawContext onRenderDrawTextWithShadow(DrawContext context, TextRenderer renderer, OrderedText text, int x, int y, int color, @Local ChatHudLine.Visible line){
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.setShaderColor(1,1,1,((color >> 24) & 0x000000FF)/255f);
|
||||
Utils.DrawHeadIcon(context,line,y);
|
||||
RenderSystem.setShaderColor(1,1,1,1);
|
||||
RenderSystem.disableBlend();
|
||||
return context;
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,8 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Colors;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class MCInfo {
|
||||
private static String gameDayToRealTimeFormat(long gameDays) {
|
||||
// 游戏 1 小时等于 20 分钟
|
||||
@ -69,8 +71,8 @@ public class MCInfo {
|
||||
DrawUtils.AddLeftText(drawContext,String.format("世界时间: %d天 (%s)",mc.world.getTimeOfDay()/24000,gameDayToRealTimeFormat(mc.world.getTimeOfDay()/24000)));
|
||||
DrawUtils.AddLeftText(drawContext,String.format("当前区块: [%d,%d]",mc.player.getChunkPos().x,mc.player.getChunkPos().z));
|
||||
DrawUtils.AddLeftText(drawContext,String.format("本地难度:%.2f",mc.world.getLocalDifficulty(mc.player.getBlockPos()).getLocalDifficulty()));
|
||||
ItemStack currentItem=p.getInventory().getMainHandStack();
|
||||
if(currentItem!=null&¤tItem.isDamageable()){
|
||||
ItemStack currentItem=p.getMainHandStack();
|
||||
if(Objects.nonNull(currentItem)&¤tItem.isDamageable()){
|
||||
DrawUtils.AddLeftText(drawContext,String.format("耐久度:%d/%d",currentItem.getMaxDamage()-currentItem.getDamage(),currentItem.getMaxDamage()));
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.lit
|
||||
public class CommandUtils {
|
||||
public static void CreateStatusCommand(String cmd, Setting toggle, CommandDispatcher<FabricClientCommandSource> dispatcher){
|
||||
dispatcher.register(literal(cmd).executes((context -> {
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("当前启用状态: "+toggle.get()));
|
||||
context.getSource().getPlayer().sendMessage(Text.literal("当前启用状态: "+toggle.get()),false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
})));
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.hud.ChatHudLine;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.client.network.PlayerListEntry;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.Enchantments;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -30,6 +31,7 @@ import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.Timer;
|
||||
import java.util.function.Function;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@ -220,7 +222,7 @@ public class Utils {
|
||||
for (int z = (int) -pos.z; z < (pos.z + radius); z++) {
|
||||
BlockState b = mc.world.getBlockState(new BlockPos(x, hight, z));
|
||||
if (b.getBlock().asItem().getName().getString().equals(itemName)) {
|
||||
mc.player.sendMessage(Text.literal(String.format("找到方块:%d,%d,%d", x, hight, z)));
|
||||
mc.player.sendMessage(Text.literal(String.format("找到方块:%d,%d,%d", x, hight, z)),false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -244,9 +246,7 @@ public class Utils {
|
||||
if (entry == null) return;
|
||||
|
||||
Identifier skin = entry.getSkinTextures().texture();
|
||||
|
||||
draw.drawTexture(skin, 0, y, 8, 8, 8, 8, 8, 8, 64, 64);
|
||||
draw.drawTexture(skin, 0, y, 8, 8, 40, 8, 8, 8, 64, 64);
|
||||
draw.drawTexture(RenderLayer::getGuiTextured, skin,0, y, 8, 8, 8, 8, 8, 8, 64, 64);
|
||||
draw.getMatrices().translate(10, 0, 0);
|
||||
}
|
||||
public static GameProfile getChatSender(String text){
|
||||
|
Reference in New Issue
Block a user