diff --git a/scripts/rename.sh b/scripts/rename.sh new file mode 100755 index 00000000..b28b8125 --- /dev/null +++ b/scripts/rename.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -euo pipefail +pushd $(dirname "$0")/.. + + +export LOBBY_ADDRESS=$(cat ./target/dev/manifest.json | jq -r '.contracts[] | select(.name == "lobby" ).address') + + +sozo execute $LOBBY_ADDRESS set_name -c $1,$2,0x2a2a2a2a2a2a2a \ No newline at end of file diff --git a/src/systems/lobby.cairo b/src/systems/lobby.cairo index c06c78a5..94e2f26e 100644 --- a/src/systems/lobby.cairo +++ b/src/systems/lobby.cairo @@ -7,7 +7,7 @@ trait ILobby { self: @TContractState, game_mode: GameMode, player_name: felt252, avatar_id: u8, mainnet_address: ContractAddress ) -> (u32, ContractAddress); - fn set_name(self: @TContractState, game_id: u32, player_name: felt252); + fn set_name(self: @TContractState, game_id: u32, player_id: ContractAddress, player_name: felt252); } @@ -15,6 +15,7 @@ trait ILobby { mod lobby { use starknet::ContractAddress; use starknet::get_caller_address; + use starknet::get_contract_address; use starknet::get_block_timestamp; use starknet::info::get_tx_info; @@ -143,14 +144,18 @@ mod lobby { (game_id, caller) } - fn set_name(self: @ContractState, game_id: u32, player_name: felt252) { - // assert_valid_name(player_name); + fn set_name(self: @ContractState, game_id: u32, player_id: ContractAddress, player_name: felt252) { + assert_valid_name(player_name); + + assert( + self.world().is_owner(get_caller_address(), get_contract_address().into()), + 'CALLER_IS_NOT_OWNER' + ); - // let player_id = get_caller_address(); - // let mut player = get!(self.world(), (game_id, player_id), Player); - // player.name = player_name; + let mut player = get!(self.world(), (game_id, player_id), Player); + player.name = player_name; - // set!(self.world(), (player)) + set!(self.world(), (player)) } } diff --git a/src/systems/ryo.cairo b/src/systems/ryo.cairo index 4d42fc9d..6b3a7d27 100644 --- a/src/systems/ryo.cairo +++ b/src/systems/ryo.cairo @@ -32,6 +32,7 @@ mod ryo { #[external(v0)] impl RyoExternalImpl of IRyo { fn initialize(self: @ContractState) { + //todo check caller is world owner let meta_manager = RyoMetaManagerTrait::new(self.world()); let mut metas = meta_manager.get(); diff --git a/web/package.json b/web/package.json index 3971f226..aadd50fc 100644 --- a/web/package.json +++ b/web/package.json @@ -23,7 +23,6 @@ "@chakra-ui/react": "^2.8.1", "@dojoengine/core": "^0.1.30", "@dojoengine/create-burner": "0.1.30", - "@dojoengine/torii": "link:../../dojo-packages/packages/torii", "@dojoengine/utils": "0.1.30", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", diff --git a/web/src/pages/[gameId]/logs.tsx b/web/src/pages/[gameId]/logs.tsx index 0314ea79..1c5c6c91 100644 --- a/web/src/pages/[gameId]/logs.tsx +++ b/web/src/pages/[gameId]/logs.tsx @@ -208,7 +208,7 @@ function renderDay(log: LogByDay) { break; case WorldEvents.GameOver: - return renderGameOver(i as GameOverEventData, key); + // return renderGameOver(i as GameOverEventData, key); break; case WorldEvents.AtPawnshop: diff --git a/web/yarn.lock b/web/yarn.lock index 4010c91b..345a63f5 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -2250,9 +2250,6 @@ get-starknet-core "^3.2.0" js-cookie "^3.0.5" -"@dojoengine/torii@link:../../dojo-packages/packages/torii": - version "0.0.0" - uid "" "@dojoengine/utils@0.1.30": version "0.1.30"