Skip to content

Commit

Permalink
Data changes and minor fixes to effects and jump squat fix
Browse files Browse the repository at this point in the history
  • Loading branch information
bartdebever committed Jan 7, 2025
1 parent 8b8e31e commit d0e2117
Show file tree
Hide file tree
Showing 16 changed files with 780 additions and 547 deletions.
1,188 changes: 666 additions & 522 deletions package-lock.json

Large diffs are not rendered by default.

28 changes: 14 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fightcore.bot",
"version": "2.5.2",
"version": "2.5.4",
"description": "FightCore Discord bot to display frame data",
"main": "index.js",
"scripts": {
Expand All @@ -26,26 +26,26 @@
},
"homepage": "https://github.com/FightCore/bot-js#readme",
"dependencies": {
"@apollo/client": "^3.11.3",
"@apollo/client": "^3.12.4",
"@datalust/winston-seq": "^2.0.0",
"@elastic/elasticsearch": "^8.14.0",
"axios": "^1.7.3",
"discord.js": "^14.15.3",
"dotenv": "^16.4.5",
"inversify": "^6.0.2",
"@elastic/elasticsearch": "^8.17.0",
"axios": "^1.7.9",
"discord.js": "^14.17.2",
"dotenv": "^16.4.7",
"inversify": "^6.2.1",
"jaro-winkler-typescript": "^1.0.1",
"reflect-metadata": "^0.1.14",
"reflect-metadata": "^0.2.2",
"sqlite3": "^5.1.7",
"winston": "^3.13.1"
"winston": "^3.17.0"
},
"devDependencies": {
"@jest/globals": "^29.7.0",
"@types/node": "^16.18.104",
"@types/node": "^16.18.123",
"@typescript-eslint/eslint-plugin": "^6.21.0",
"@typescript-eslint/parser": "^6.21.0",
"eslint": "^8.57.0",
"eslint": "^8.57.1",
"jest": "^29.7.0",
"ts-jest": "^29.2.4",
"typescript": "^5.5.4"
"ts-jest": "^29.2.5",
"typescript": "^5.7.2"
}
}
}
2 changes: 1 addition & 1 deletion src/assets/framedata.json

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions src/assets/names.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@
"names": [
"kirby"
],
"moves": {
"suck": "neutralb",
"succ": "neutralb",
"inhale": "neutralb",
"swallow": "neutralb",
"copy": "neutralb",
"absorb": "neutralb",
"ingest": "neutralb"
},
"fightCoreId": 210
},
{
Expand Down
3 changes: 1 addition & 2 deletions src/discord-client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Message, Client, Interaction, PartialMessage, Partials, GatewayIntentBits } from 'discord.js';
import { Container, inject } from 'inversify';
import { injectable } from 'inversify/lib/annotation/injectable';
import { Container, inject, injectable } from 'inversify';
import { Logger } from 'winston';
import { RegisterCommands } from './commands/register-commands';
import { Symbols } from './config/symbols';
Expand Down
2 changes: 1 addition & 1 deletion src/embeds/character-embed-creator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export class CharacterEmbedCreator extends BaseEmbedCreator {
{ title: 'Weight', value: characterStatistics.weight },
{ title: 'Gravity', value: characterStatistics.gravity },
{ title: 'Can wall jump', value: characterStatistics.canWallJump },
{ title: 'Jump squad frames', value: characterStatistics.jumpSquat },
{ title: 'Jump squat frames', value: characterStatistics.jumpSquat },
];
return {
name: 'Frame data',
Expand Down
5 changes: 4 additions & 1 deletion src/embeds/formatting/body-formatter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ export class BodyFormatter {
}

properties = properties.filter((property) => !!property.value);
return properties.map(InfoLine.createLine).join('\n');
return properties
.map(InfoLine.createLine)
.filter((value) => !!value)
.join('\n');
}
}
4 changes: 4 additions & 0 deletions src/embeds/formatting/info-line.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ export class InfoLine {
return undefined;
}

if (typeof value === 'string' && value.indexOf('/') === 0) {
return undefined;
}

return `**${title}**: ${value}`;
}

Expand Down
2 changes: 1 addition & 1 deletion src/embeds/move-embed-creator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ export class MoveEmbedCreator extends BaseEmbedCreator {
{
title: 'Effect',
// Filter out the "Normal" effects cause they don't say anything.
value: hitboxes.map((hitbox) => (hitbox.effect === 'Normal' ? null : hitbox.effect)).join('/'),
value: hitboxes.map((hitbox) => (hitbox.effect === 'Normal' || hitbox.effect == '' ? null : hitbox.effect)).join('/'),
},
{
title: 'Base knockback',
Expand Down
5 changes: 4 additions & 1 deletion src/interactions/message-interaction-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ export class MessageInteractionHandler extends BaseInteractionHandler {
if (!messageSearchResult.shouldRespond) {
return;
}
await message.channel.sendTyping();

if (message.channel.isSendable()) {
await message.channel.sendTyping();
}

if (messageSearchResult.isRoleMessage) {
await message.reply({ embeds: RoleEmbedCreator.createErrorEmbed() });
Expand Down
2 changes: 1 addition & 1 deletion src/meta-data.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const versionNumber = '2.5.3';
export const versionNumber = '2.5.4';
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions tests/move-embed.test.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { expect, test } from '@jest/globals';
import { MoveEmbedCreator } from '../src/embeds/move-embed-creator';
import { createCharacter, createMove } from './create-test-data';
import { createCharacter, createMove } from './create-data.test';
import { versionNumber } from '../src/meta-data';
import { getEmbedJson, getMarth, getMarthFTilt } from './move-embed-test-data';
import { getEmbedJson, getMarth, getMarthFTilt } from './move-embed-data.test';

test('Ensure correct gif is added to embed', async () => {
const baseUrl = 'https://i.fightcore.gg/moves/1.gif';
Expand Down
70 changes: 70 additions & 0 deletions tests/search.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import 'reflect-metadata';
import winston from 'winston';
import { Loader } from '../src/data/loader';
import { Search } from '../src/data/search';
import { AliasParser } from '../src/data/alias-parser';
import { expect, test } from '@jest/globals';
import { SearchResultType } from '../src/models/search/search-result-type';
import { describe } from 'node:test';

test('Ensure search works with characters', async () => {
const search = await setupSearch();
const marth = search.searchCharacter(['Marth']);
expect(marth).toBeDefined();
expect(marth!.name).toBe('Marth');
expect(marth!.normalizedName).toBe('marth');
});

test('Ensure search works with an alias', async () => {
const search = await setupSearch();
const marth = search.searchCharacter(['Puff']);
expect(marth).toBeDefined();
expect(marth!.name).toBe('Jigglypuff');
expect(marth!.normalizedName).toBe('jigglypuff');
});

test('Ensure move search works for a basic move', async () => {
const search = await setupSearch();
const move = search.search('marth fsmash');
expect(move).toBeDefined();
expect(move.type).toBe(SearchResultType.Move);
expect(move.move.name).toBe('Forward Smash');
expect(move.character.name).toBe('Marth');
});

describe('Ensure move search works with different cases', () => {
const cases = [
['Marth usmash', 'Marth', 'Up Smash'],
['fox shine', 'Fox', 'Reflector'],
['shine', 'Fox', 'Reflector'],
['falcon knee', 'Captain Falcon', 'Forward Air'],
['gnw hammer', 'Mr. Game & Watch', 'Judgement'],
['rest', 'Jigglypuff', 'Rest'],
];

test.each(cases)('Ensure move search works for %s', async (query: string, expectedCharacter: string, expectedMove: string) => {
const search = await setupSearch();
const move = search.search(query);
expect(move).toBeDefined();
expect(move.type).toBe(SearchResultType.Move);
expect(move.move.name).toBe(expectedMove);
expect(move.character.name).toBe(expectedCharacter);
});
});

async function setupSearch(): Promise<Search> {
// Create a silent unit test logger.
const logger = winston.createLogger({
transports: [
new winston.transports.Console({
// Set the level to silent to prevent any output
level: 'silent',
}),
],
});

const loader = new Loader(logger);
await loader.ensureLoaded();
const aliasParser = new AliasParser(loader);
return new Search(aliasParser);
}
3 changes: 2 additions & 1 deletion tsconfig-build.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"rootDir": "./src",
},
"exclude": [
"tests/**/*.test.ts"
"tests/**/*.test.ts",
"tests/**/*-test.ts"
]
}

0 comments on commit d0e2117

Please sign in to comment.