return (dispatch: (action: any) => any) => {
    dispatch(init());

    // Update avatar
    client.OnEnemyTargetGenderChanged((gender: Gender) =>
      client.OnEnemyTargetRaceChanged((race: Race) => {
        dispatch(onAvatarChanged(getAvatar(gender, race)));
      }),
    );
    client.OnEnemyTargetRaceChanged((race: Race) =>
      client.OnEnemyTargetGenderChanged((gender: Gender) => {
        dispatch(onAvatarChanged(getAvatar(gender, race)));
      }),
    );

    client.OnCharacterPositionChanged(_.throttle((x: number, y: number) =>
      dispatch(onCharacterPositionChanged({ x, y })), 250));

    client.OnEnemyTargetPositionChanged(_.throttle((x: number, y: number) =>
      dispatch(onTargetPositionChanged({ x, y })), 250));

    // init handlers / events
    events.on(events.clientEventTopics.handlesEnemyTarget, (player: Player) => dispatch(onCharacterUpdate(player)));

  };
Beispiel #2
0
 registerSlashCommand('reloadui', 'reload the ui, or a single module if a name is provided', (params: string = '') => {
   if (params.length > 0) {
     client.ReloadUI(params);
   } else {
     client.ReloadAllUI();
   }
 });
 registerSlashCommand('var', 'Buildvar control: No params = help, var name only = get value, var name and value = set value', (params: string) => {
   if (params.length == 0) {
     client.SendSlashCommand('help');
   } else {
     client.SendSlashCommand(params);
   }
 });
export const inputOwnership = (e: React.FocusEvent): void => {
  if (e.type === "focus") {
    if (timer) {  // don't release input ownership if focus moving to another field
      clearTimeout(timer);
      timer = undefined;
    } else {
      client.RequestInputOwnership();
    }
  }
  else if (e.type === "blur") {
    // release input ownership after short delay allowing next field
    // to cancel the release
    timer = setTimeout(() => {
      client.ReleaseInputOwnership()
      timer = undefined;
    }, 10);
  }
  else if (e.type === "click" && (e.target as HTMLElement).nodeName === 'BUTTON') {
    client.ReleaseInputOwnership();
    if (timer) {  // we released it already
      clearTimeout(timer);
      timer = undefined;
    }
  }
}
 reducer: (s, a) => {
   if (s.locked) {
     if (typeof client.RequestInputOwnership === 'function') client.RequestInputOwnership();
   } else {
     if (typeof client.ReleaseInputOwnership === 'function') client.ReleaseInputOwnership();
   }
   return {
     locked: !s.locked,
   };
 },
Beispiel #6
0
export default () => {
  slashCommands();

  if (!hasClientAPI()) return;
  // hook up for console messages to system messages
  client.OnConsoleText((text: string) => events.fire('system_message', text));
}
Beispiel #7
0
  return (dispatch: (action: any) => any) => {
    dispatch(init());

    if (!hasClientAPI()) return;

    // init handlers / events
    client.OnCharacterStaminaChanged((current: number, max: number) => dispatch(staminaChanged(current, max)));
    client.OnCharacterHealthChanged((current: number, max: number) => dispatch(healthChanged(current, max, BodyParts.Torso)));

    client.OnCharacterNameChanged((name: string) => dispatch(nameChanged(name)));
    client.OnCharacterRaceChanged((race: race) => dispatch(raceChanged(race)));
    client.OnCharacterFactionChanged((faction: faction) => dispatch(factionChanged(faction)));

    events.on(events.clientEventTopics.handlesCharacter, (player: Player) => dispatch(characterUpdate(player)));

  };
 registerSlashCommand('loopability', 'Loops specified Ability at Interval', (params: string) => {
   if (params.length == 0) return;
   const argv = parseArgs(params);
   if(argv._.length >= 2){
     client.LoopAbility(argv._[0], argv._[1]);
   }
 });
 'replace blocks with type args[0] with blocks with type of args[1]', (params: string = '') => {
   if (params.length === 0) return;
   const argv = parseArgs(params);
   if (argv._.length >= 2) {
     client.ReplaceSubstance(argv._[0], argv._[1]);
   }
   return;
 });
 registerSlashCommand('replaceshape', 'replace blocks with shape args[0] with blocks with shape of args[1]', (params: string) => {
   if (params.length == 0) return;
   const argv = parseArgs(params);
   if(argv._.length >= 2){
     client.ReplaceShapes(argv._[0], argv._[1]);
   }
   return;
 });