コンテンツへスキップ
物置っぽい何か
まったり まったり
  • このサイトについて
  • Minecraft Java版 データパック
  • プライバシーポリシー

CRP_ResourcePack 1.0

投稿者: 百日紅 | 2022-03-21
0件のコメント

データパック全体の説明はMinecraft Java版 データパックを参照ください。

CRP_ResourcePack 1.0版の更新履歴:

  • 新規作成
CRP_ResourcePack_1_0ダウンロード
カテゴリー: CRP_ResourcePack
投稿ナビゲーション
← CRP_MassStorage 1.0 CRP_ItemTube 1.1 →

カテゴリ一覧

  • ActivityPub (2)
  • Android (1)
    • Rotation Control (1)
  • Minecraft (24)
    • Datapack (24)
      • CRP_AutoBox (4)
      • CRP_ItemTube (7)
      • CRP_MassStorage (3)
      • CRP_ResourcePack (3)
      • CRP_Teleporter (2)
      • CRP_Utility (4)
      • 小物データパック (1)
  • Misskey (6)
    • MisskeyカスタムCSS (6)
  • Tips (28)
    • Linux (9)
    • ソフトウェア (14)
    • プログラミング (5)
  • トラブル解決 (4)
    • サーバ (1)
    • その他 (3)
  • 一般 (15)
    • 雑記 (15)

Misskey

posted by @crpmrtl@misskey.io
  • 6月 7

    ​:ohayoo:​
    週課のジョギング!
    と言っても諸事情で3週間ぶりになっちゃったけど

  • 6月 5

    FFTのリマスター出るんか
    リマスターとかあまり興味なかったけど、FFTはもう一回やりたいから買いたいなぁ

    算術無双は変わらずなんだろうか
    そして源氏シリーズは盗めるのだろうかw

  • 6月 2

    今回の攻撃エフェクト集は
    2025/04/18~2025/05/21 実装のキャラ!

    https://youtu.be/HUKoMUbKZcQ

    #クルスタ #ティンクルスターナイツ

  • 5月 17

    ​:ohayoo:​
    週課のジョギング!

    2週連続の雨の中のジョギング…
    来週は晴れるといいなぁ

  • 7月 10, 2024

    凝り出したら改修が止まらない
    殆ど見ることはないと思うんだけどw

  • 7月 9, 2024

    色々バグはあるだろうな
    使ってて気になるところは修正して後でちゃんとページにまとめよう(いつになるやら

  • 7月 9, 2024

    /// @ 0.18.0
    /// 文字数カウンターを表示するだけです
    
    let SCOPE:arr<str> = ['LetterCounter']
    
    let g = {
      registry: {}
      counter: {}
    }
    
    @getCounter():void {
      let domains = []
      g.registry = {}
      g.counter = {}
    
      let targetScope = SCOPE.concat([USER_ID])
      let targetScopeLen = targetScope.len
    
      let res1 = Mk:api('i/registry/scopes-with-domain', {})
      if (Core:type(res1) == 'error') {
        return false
      }
    
      each(let registry, res1) {
        let found = registry.scopes.some(@(scope, sIndex) {
          return (scope.len == targetScopeLen && scope.every(@(item, iIndex){ return item == targetScope[iIndex] }))
        })
    
        if (found) {
          domains.push(registry.domain)
          Obj:set(g.registry, registry.domain, {})
        }
      }
      
      each(let domain, domains) {
        Core:sleep(500)
        let res2 = Mk:api('i/registry/get-all', { domain: domain, scope: targetScope })
        if (Core:type(res2) == 'error') continue
    
        each(let kv, Obj:kvs(res2)) {
          Obj:set(Obj:get(g.registry, domain), kv[0], kv[1])
    
          if (Obj:get(g.counter, kv[0]) == null) {
            Obj:set(g.counter, kv[0], { note: 0, letter: 0})
          }
          let data = Obj:get(g.counter, kv[0])
          data.note += kv[1].note
          data.letter += kv[1].letter
        }
      }
      
      return true
    }
    
    @uiCounterAll():obj {
      let result = []
      each(let kv, Obj:kvs(g.counter)) {
        result.push(uiCounter(kv[0], kv[1]))
      }
      return result
    }
    
    @uiCounter(date:str, data:obj):obj {
      return Ui:C:mfm({
        text: `{date}: {data.note}<small>ノート </small>{data.letter}<small>文字</small>`
      })
    }
    
    @consolidateRegistry():void {
      let domains = Obj:keys(g.registry)
      if (domains.len <= 1) {
        return true
      }
    
      let targetDomain = domains[domains.len - 1]
      let targetScope = SCOPE.concat([USER_ID])
    
      domains.pop()
      each(let domain, domains) {
        each(let kv, Obj:kvs(Obj:get(g.registry, domain))) {
          let date = kv[0]
          let counter = kv[1]
    
          let counter2 = Obj:get(Obj:get(g.registry, targetDomain), date)
          if (counter2 != null) {
            counter.note += counter2.note
            counter.letter += counter2.letter
          }
    
          Core:sleep(500)
          let response = Mk:api('i/registry/set', {
            domain: targetDomain
            scope: targetScope
            key: date
            value: counter
          })
    
          if (Core:type(response) != 'error') {
            Core:sleep(500)
            Mk:api('i/registry/remove', { domain: domain, scope: targetScope, key: date })
          }
        }
      }
    }
    
    @uiDomain():obj {
      let result = []
      let domainCount = Obj:keys(g.registry).len
      result.push(
        Ui:C:mfm({text: `<small>データ保存レジストリ: {domainCount} ドメイン</small>`})
      )
      if (domainCount > 1) {
        result.push(
          Ui:C:button({
            text: '最新ドメインへ集約'
            onClick: consolidateRegistry
          })
        )
      }
      return result
    }
    
    @renderAll():void {
      uiDomain()
    
      Ui:render(
        uiCounterAll().concat(uiDomain())
      )
    }
    
    @main():void {
      if (getCounter()) {
        renderAll()
      }
    }
    
    main()

  • 7月 9, 2024

    /// @ 0.18.0
    ### {
      name: '文字数カウンター'
      version: 1
      author: '@crpmrtl@misskey.io'
      description: '投稿ノートの文字数をカウントするだけです。ノートを削除してもカウントは減らせません。'
      permissions: [
        'read:account'
        'write:account'
    ]
    }
    
    /*******************************************************************************
     * 定数
     *******************************************************************************/
    let SCOPE:arr<str> = ['LetterCounter']
    
    // domainは無視されるが将来のことを考えて設定しておく
    let DOMAIN:str = '@crpmrtl@misskey.io'
    
    let DELAY:num = 100
    let STR_ERR_H:str = '文字数カウンター エラー'
    let STR_ERR:str = 'エラーが発生して文字数カウントが出来ませんでした'
    
    /*******************************************************************************
     * 便利関数
     *******************************************************************************/
    :: Util {
      /** デバッグ出力するかどうか */
      let debug_:bool = false
      
      /**
       * debug=trueの場合に標準出力に出力する
       * @param obj 出力するデータ
       */
      let debug:void = @(obj:obj) {
        if (debug_) {
          print(obj)
        }
      }
    }
    
    /*******************************************************************************
     * 関数定義
     *******************************************************************************/
    @countUp(note) {
      Util:debug(`countUp: {Json:stringify(note)}`)
    
      let scope = SCOPE.concat([USER_ID])
    
      let date = Date:to_iso_str(Date:now(), 0).slice(0, 10)
      var response = Mk:api('i/registry/get', {
        key: date
        scope: scope
        domain: DOMAIN
      })
    
      let count = {
        note: 0
        letter: 0
      }
      if (Core:type(response) == 'error') {
        Util:debug(`{response.name}, {response.info}`)
        if (response.info.code != 'NO_SUCH_KEY') {
          Mk:dialog(STR_ERR_H, STR_ERR)
          return null
        }
      } else {
        Util:debug(Json:stringify(response))
        count.note = response.note
        count.letter = response.letter
      }
      
      var letter = 0
      if (note.text != null) letter += note.text.len
      if (note.cw != null) letter += note.cw.len
    
      count.note += 1
      count.letter += letter
    
      response = Mk:api('i/registry/set', {
        key: date
        scope: scope
        domain: DOMAIN
        value: count
      })
    
      if (Core:type(response) == 'error') {
        Util:debug(`{response.name}, {response.info}`)
        Mk:dialog(STR_ERR_H, STR_ERR)
        return null
      } else {
        Util:debug(Json:stringify(response))
      }
    }
    
    /*******************************************************************************
     * メイン処理
     *******************************************************************************/
    Plugin:register_note_post_interruptor(@(note){
      Async:timeout(DELAY, @(){ countUp(note) })
      return note
    })

  • 7月 9, 2024

    多分上手く出来たっぽい?

  • 7月 9, 2024

    Pluginで割り当てられたdomainは i/registry/scopes-with-domainで一致するscope探すことで見つけることは出来るけど、コレジャナイ感
    ま、試しにやってみるけどw

ログイン
Copyright © 2022 物置っぽい何か. All Rights Reserved
Iconic One Theme | Powered by Wordpress