Skip to content

Commit

Permalink
pagemenu bugfix, player autofill dialog changed from menu to listmenu
Browse files Browse the repository at this point in the history
  • Loading branch information
Jurorno9 authored and BalaM314 committed Jan 26, 2025
1 parent 6988841 commit c4a5a15
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 7 deletions.
8 changes: 7 additions & 1 deletion build/scripts/commands.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions build/scripts/menus.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This file contains the commands system.

import { FColor, Gamemode, GamemodeName, text } from "./config";
import { ipPattern, uuidPattern } from "./globals";
import { GUI_Cancel, GUI_Container, menu } from "./menus";
import { GUI_Cancel, GUI_Container, listMenu, menu, pageMenu } from "./menus";
import { FishPlayer } from "./players";
import { Rank, RankName, RoleFlag } from "./ranks";
import type { ClientCommandHandler, CommandArg, FishCommandArgType, FishCommandData, FishCommandHandlerData, FishCommandHandlerUtils, FishConsoleCommandData, Formattable, PartialFormatString, SelectEnumClassKeys, ServerCommandHandler } from "./types";
Expand Down Expand Up @@ -676,10 +676,16 @@ function resolveArgsRecursive(processedArgs: Record<string, FishCommandArgType>,
case "player": Groups.player.each(player => optionsList.push(player)); break;
default: crash(`Unable to resolve arg of type ${argToResolve.type}`);
}
/*
menu(`Select a player`, `Select a player for the argument "${argToResolve.name}"`, [new GUI_Container(optionsList, "auto", player => Strings.stripColors(player.name).length >= 3 ? Strings.stripColors(player.name) : escapeStringColorsClient(player.name)), new GUI_Cancel()], sender, ({data}) => {
processedArgs[argToResolve.name] = FishPlayer.get(data);
resolveArgsRecursive(processedArgs, unresolvedArgs, sender, callback);
}, )
*/
listMenu(`Select a player`, `Select a player for the argument ${argToResolve.name}`,new GUI_Container(optionsList, "auto", (player:Player) => {return player.name}), sender, ({data}) => {
processedArgs[argToResolve.name] = FishPlayer.get(data);
resolveArgsRecursive(processedArgs, unresolvedArgs, sender, callback);
})

}

Expand Down
6 changes: 3 additions & 3 deletions src/menus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ export function pageMenu(title: string, description: string, elements: GUI_Eleme
callback(res);
}
} else {
callback(res.data);
callback(res);
}
})
return;
Expand All @@ -160,13 +160,13 @@ export function listMenu(title: string, description: string, list: GUI_Container
let pagedData: any[][] = pooledData.reduce((res, _, index) => { if (index % pageSize === 0) { res.push(pooledData.slice(index, index + pageSize)); } return res; }, [] as any[][]);
let pagesElements: GUI_Element[][] = [];
pagedData.forEach(pageData => pagesElements.push([new GUI_Container(pageData, 1, list.stringifier)]));
pageMenu(title, description, pagesElements, target, callback);
pageMenu(title, description, pagesElements, target, (res) => {Log.info(`${res.data}`);callback(res)})
}
//#endregion
//#region GUI Elements

interface GUI_Element {
format(): string[][],
format(): string[][], // honestly should have made this a 1d array for simplicity, but 2d lets you define multi-row elements
data(): any[][]
}
export class GUI_Container implements GUI_Element {
Expand Down

0 comments on commit c4a5a15

Please sign in to comment.